Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore14
-rw-r--r--doc/org.eclipse.emf.parsley.doc/.classpath8
-rw-r--r--doc/org.eclipse.emf.parsley.doc/.gitignore2
-rw-r--r--doc/org.eclipse.emf.parsley.doc/.project35
-rw-r--r--doc/org.eclipse.emf.parsley.doc/META-INF/MANIFEST.MF14
-rw-r--r--doc/org.eclipse.emf.parsley.doc/attempts/customBuildCallbacks.xml9
-rw-r--r--doc/org.eclipse.emf.parsley.doc/build.properties2
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/00-Main.html161
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/00-Main_4.html132
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/00-Main_5.html40
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/01-Introduction.html33
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/02-GettingStarted.html437
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/03-Components.html184
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/04-Customization.html580
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/05-DSL.html16
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/06-AdvancedComponents.html14
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/07-Eclipse4.html321
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/GettingSources.html207
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/book.css215
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/code.css55
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/03-components-form.pngbin0 -> 6115 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/03-components-table.pngbin0 -> 8484 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/03-components-tree.pngbin0 -> 6407 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/03-components-treeform.pngbin0 -> 15662 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/07-eclipse4-part.pngbin0 -> 24939 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/createWriter.pngbin0 -> 10177 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/eclipseModelingTools.pngbin0 -> 5296 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/emf-components-update-site.pngbin0 -> 8808 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/first-example-launch.pngbin0 -> 16890 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/first-example-run.pngbin0 -> 10153 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/install-buckminster.pngbin0 -> 83344 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/labelCustomization.pngbin0 -> 11779 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/materialized.pngbin0 -> 147359 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery-edit-property.pngbin0 -> 18580 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery-edit-property1.pngbin0 -> 18873 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery-new-property.pngbin0 -> 18740 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery-new-property1.pngbin0 -> 19062 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery.pngbin0 -> 98606 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery1.pngbin0 -> 76265 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/images/resolving-cquery.pngbin0 -> 34000 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/samples.html120
-rw-r--r--doc/org.eclipse.emf.parsley.doc/contents/toc.xml151
-rw-r--r--doc/org.eclipse.emf.parsley.doc/plugin.xml12
-rw-r--r--doc/org.eclipse.emf.parsley.doc/src/workflow/GenerateDocs.mwe217
-rw-r--r--doc/org.eclipse.emf.parsley.doc/website/.gitignore2
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/00-Main.xdoc47
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/01-Introduction.xdoc19
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/02-GettingStarted.xdoc267
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/03-Components.xdoc108
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/03bis-SampleImplementations.xdoc400
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/04-Customization.xdoc452
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/05-DSL.xdoc4
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/06-AdvancedComponents.xdoc1
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/07-Eclipse4.xdoc223
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/GettingSources.xdoc109
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/images/03-components-form.pngbin0 -> 6115 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/images/03-components-table.pngbin0 -> 8484 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/images/03-components-tree.pngbin0 -> 6407 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/images/03-components-treeform.pngbin0 -> 15662 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/images/07-eclipse4-part.pngbin0 -> 24939 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/images/createWriter.pngbin0 -> 10177 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/images/eclipseModelingTools.pngbin0 -> 5296 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/images/emf-components-update-site.pngbin0 -> 8808 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/images/first-example-launch.pngbin0 -> 16890 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/images/first-example-run.pngbin0 -> 10153 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/images/install-buckminster.pngbin0 -> 83344 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/images/labelCustomization.pngbin0 -> 11779 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/images/materialized.pngbin0 -> 147359 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/images/open-cquery-new-property.pngbin0 -> 18740 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/images/open-cquery-new-property1.pngbin0 -> 19062 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/images/open-cquery.pngbin0 -> 98606 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/images/open-cquery1.pngbin0 -> 76265 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/images/resolving-cquery.pngbin0 -> 34000 bytes
-rw-r--r--doc/org.eclipse.emf.parsley.doc/xdoc/samples.xdoc63
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/.classpath9
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/.project34
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/EmfComponentsDslAllTests.launch15
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/META-INF/MANIFEST.MF27
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/build.properties6
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/it.rcpvision.emf.components.dsl.tests.launch13
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDslInjectorProvider.java45
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDslUiInjectorProvider.java16
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EClassTests.java20
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslAbstractTests.xtend67
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslAllTests.java31
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslGeneratorTests.xtend704
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslJvmModelInferrerTests.xtend95
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslParserTests.xtend103
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslPluginXmlGeneratorTests.xtend159
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslValidatorTests.xtend51
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfParsleyDslScopingTests.xtend43
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/additional/MyTestGuiceModule.java20
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/inputs/TestInputs.xtend244
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/inputs/TestInputsWithErrors.xtend82
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/util/CustomCompilationTestHelper.java99
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/util/CustomOnTheFlyJavaCompiler.java246
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslAbstractTests.java110
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslGeneratorTests.java1493
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslJvmModelInferrerTests.java106
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslParserTests.java122
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslPluginXmlGeneratorTests.java289
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslValidatorTests.java54
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfParsleyDslScopingTests.java89
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/inputs/TestInputs.java536
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/inputs/TestInputsWithErrors.java168
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/.classpath9
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/.project40
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.jdt.core.prefs85
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.pde.prefs32
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.xtend.shared.ui.prefs3
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/META-INF/MANIFEST.MF35
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/build.properties9
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/icons/sample.gifbin0 -> 983 bytes
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/plugin.xml558
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/plugin.xml_gen557
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/AbstractEmfParsleyDslUiModule.java360
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/EmfParsleyDslExecutableExtensionFactory.java29
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/AbstractEmfParsleyDslProposalProvider.java188
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/EmfParsleyDslParser.java452
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/PartialEmfParsleyDslContentAssistParser.java37
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g21571
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.tokens185
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDslLexer.java4190
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDslParser.java67579
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/internal/EmfParsleyDslActivator.java95
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProjectWizard.java39
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectCreator.java61
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/EmfParsleyDslUiModule.java28
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/builder/EmfParsleyDslDerivedResourceMarkers.java38
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/contentassist/EmfParsleyDslProposalProvider.java101
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/labeling/EmfParsleyDslDescriptionLabelProvider.java27
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/labeling/EmfParsleyDslLabelProvider.java34
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/outline/EmfParsleyDslOutlineTreeProvider.java14
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/quickfix/EmfParsleyDslQuickfixProvider.java19
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProject.xpt28
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProjectFiles.xtend14
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectCreatorCustom.java88
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectInfo.java7
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/templates/templates.xml5
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/xtend-gen/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProjectFiles.java26
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/.antlr-generator-3.2.0.jarbin0 -> 1482584 bytes
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/.classpath9
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/.launch/Generate Language Infrastructure (it.rcpvision.emf.components.dsl).launch18
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/.project34
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/.settings/org.eclipse.jdt.core.prefs91
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/META-INF/MANIFEST.MF39
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/build.properties6
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/plugin.xml18
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/plugin.xml_gen18
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/AbstractEmfParsleyDslRuntimeModule.java352
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDsl.ecore101
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDsl.genmodel80
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDsl.xtextbinbin0 -> 16786 bytes
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDslStandaloneSetupGenerated.java46
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/EmfFeatureAccess.java53
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ExtendsClause.java53
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/FeatureSpecification.java43
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/FeaturesProvider.java43
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/FormControlFactory.java43
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/FormControlSpecification.java107
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/LabelProvider.java60
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/LabelSpecification.java109
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/Model.java80
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ModelFactory.java196
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ModelPackage.java1803
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/Module.java257
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/PartSpecification.java19
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/PropertyDescriptionProvider.java43
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/PropertyDescriptionSpecification.java80
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ProposalCreator.java43
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ProposalSpecification.java80
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ViewSpecification.java132
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ViewerContentProvider.java43
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/WithExtendsClause.java19
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/EmfFeatureAccessImpl.java195
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ExtendsClauseImpl.java195
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/FeatureSpecificationImpl.java146
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/FeaturesProviderImpl.java167
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/FormControlFactoryImpl.java167
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/FormControlSpecificationImpl.java332
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/LabelProviderImpl.java205
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/LabelSpecificationImpl.java339
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ModelFactoryImpl.java310
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ModelImpl.java267
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ModelPackageImpl.java989
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ModuleImpl.java743
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/PartSpecificationImpl.java44
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/PropertyDescriptionProviderImpl.java167
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/PropertyDescriptionSpecificationImpl.java261
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ProposalCreatorImpl.java167
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ProposalSpecificationImpl.java261
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ViewSpecificationImpl.java377
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ViewerContentProviderImpl.java167
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/WithExtendsClauseImpl.java44
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/util/ModelAdapterFactory.java472
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/util/ModelSwitch.java516
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/EmfParsleyDslAntlrTokenFileProvider.java15
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/EmfParsleyDslParser.java39
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g6806
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.tokens185
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDslLexer.java4185
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDslParser.java24813
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/serializer/EmfParsleyDslSemanticSequencer.java1297
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/serializer/EmfParsleyDslSyntacticSequencer.java353
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/services/EmfParsleyDslGrammarAccess.java1975
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/validation/AbstractEmfParsleyDslJavaValidator.java23
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/EmfParsleyDsl.xtext150
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/EmfParsleyDslRuntimeModule.java61
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/EmfParsleyDslStandaloneSetup.java14
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/GenerateEmfParsleyDsl.mwe2139
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/formatting/EmfParsleyDslFormatter.java27
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslGenerator.xtend24
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslOutputConfigurationProvider.java46
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslPluginXmlGenerator.xtend70
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/jvmmodel/EmfParsleyDslJvmModelInferrer.xtend469
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/jvmmodel/GeneratorUtils.java22
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslImplicitlyImportedTypes.xtend12
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslImportedNamespaceScopeProvider.java26
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslScopeProvider.java155
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslScopeProviderHelper.xtend76
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslXbaseBatchScopeProvider.xtend19
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/util/EmfParsleyDslModelUtil.xtend13
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/validation/EmfParsleyDslJavaValidator.java58
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/validation/EmfParsleyDslTypeSystem.xtend43
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/temp/EmfComponentsDslJvmModelInferrer.xtend172
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslGenerator.java26
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslPluginXmlGenerator.java186
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/jvmmodel/EmfParsleyDslJvmModelInferrer.java922
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslImplicitlyImportedTypes.java20
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslScopeProviderHelper.java196
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslXbaseBatchScopeProvider.java31
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/util/EmfParsleyDslModelUtil.java13
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/validation/EmfParsleyDslTypeSystem.java51
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/.classpath7
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/.project46
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/META-INF/MANIFEST.MF16
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/about.html28
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/build.properties9
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_borrowers_Borrower.gifbin0 -> 223 bytes
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_branches_Library.gifbin0 -> 223 bytes
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_employees_Employee.gifbin0 -> 223 bytes
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_Book.gifbin0 -> 223 bytes
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_BookOnTape.gifbin0 -> 223 bytes
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_VideoCassette.gifbin0 -> 223 bytes
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_writers_Writer.gifbin0 -> 223 bytes
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Book.gifbin0 -> 129 bytes
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/BookOnTape.gifbin0 -> 129 bytes
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Borrower.gifbin0 -> 129 bytes
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/CirculatingItem.gifbin0 -> 129 bytes
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Employee.gifbin0 -> 129 bytes
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Library.gifbin0 -> 129 bytes
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Person.gifbin0 -> 129 bytes
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/VideoCassette.gifbin0 -> 129 bytes
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Writer.gifbin0 -> 129 bytes
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/plugin.properties79
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/plugin.xml18
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/AudioVisualItemItemProvider.java199
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/BookItemProvider.java235
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/BookOnTapeItemProvider.java176
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/BorrowerItemProvider.java152
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/CirculatingItemItemProvider.java187
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/EXTLibraryEditPlugin.java104
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/EXTLibraryItemProviderAdapterFactory.java405
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/EmployeeItemProvider.java152
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/ItemItemProvider.java166
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/LibraryItemProvider.java307
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/PeriodicalItemProvider.java174
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/PersonItemProvider.java226
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/VideoCassetteItemProvider.java152
-rw-r--r--examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/WriterItemProvider.java185
-rw-r--r--examples/org.eclipse.emf.examples.library/.classpath7
-rw-r--r--examples/org.eclipse.emf.examples.library/.project46
-rw-r--r--examples/org.eclipse.emf.examples.library/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--examples/org.eclipse.emf.examples.library/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--examples/org.eclipse.emf.examples.library/META-INF/MANIFEST.MF17
-rw-r--r--examples/org.eclipse.emf.examples.library/about.html28
-rw-r--r--examples/org.eclipse.emf.examples.library/build.properties9
-rw-r--r--examples/org.eclipse.emf.examples.library/model/extlibrary.ecore105
-rw-r--r--examples/org.eclipse.emf.examples.library/model/extlibrary.genmodel79
-rw-r--r--examples/org.eclipse.emf.examples.library/plugin.properties17
-rw-r--r--examples/org.eclipse.emf.examples.library/plugin.xml32
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Addressable.java57
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/AudioVisualItem.java100
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Book.java156
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/BookCategory.java244
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/BookOnTape.java77
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Borrower.java49
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/CirculatingItem.java27
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/EXTLibraryFactory.java116
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/EXTLibraryPackage.java1845
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Employee.java54
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Item.java59
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Lendable.java74
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Library.java181
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Periodical.java77
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Person.java77
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/VideoCassette.java47
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Writer.java72
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/AudioVisualItemImpl.java297
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/BookImpl.java462
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/BookOnTapeImpl.java248
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/BorrowerImpl.java192
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/CirculatingItemImpl.java306
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/EXTLibraryFactoryImpl.java258
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/EXTLibraryPackageImpl.java925
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/EmployeeImpl.java181
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/ItemImpl.java188
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/LibraryImpl.java670
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/PeriodicalImpl.java241
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/PersonImpl.java298
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/VideoCassetteImpl.java153
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/WriterImpl.java278
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/util/EXTLibraryAdapterFactory.java402
-rw-r--r--examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/util/EXTLibrarySwitch.java471
-rw-r--r--examples/org.eclipse.emf.parsley.examples.firstexample/.classpath8
-rw-r--r--examples/org.eclipse.emf.parsley.examples.firstexample/.project34
-rw-r--r--examples/org.eclipse.emf.parsley.examples.firstexample/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.firstexample/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--examples/org.eclipse.emf.parsley.examples.firstexample/META-INF/MANIFEST.MF17
-rw-r--r--examples/org.eclipse.emf.parsley.examples.firstexample/build.properties5
-rw-r--r--examples/org.eclipse.emf.parsley.examples.firstexample/emfparsley-gen/org/eclipse/emf/parsley/examples/firstexample/EmfComponentsGuiceModuleGen.java35
-rw-r--r--examples/org.eclipse.emf.parsley.examples.firstexample/emfparsley-gen/org/eclipse/emf/parsley/examples/firstexample/ui/provider/FeaturesProviderGen.java19
-rw-r--r--examples/org.eclipse.emf.parsley.examples.firstexample/emfparsley-gen/org/eclipse/emf/parsley/examples/firstexample/ui/provider/LabelProviderGen.java36
-rw-r--r--examples/org.eclipse.emf.parsley.examples.firstexample/emfparsley-gen/org/eclipse/emf/parsley/examples/firstexample/ui/provider/PropertyDescriptionProviderGen.java15
-rw-r--r--examples/org.eclipse.emf.parsley.examples.firstexample/plugin.xml14
-rw-r--r--examples/org.eclipse.emf.parsley.examples.firstexample/plugin.xml_emfparsley_gen14
-rw-r--r--examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/FirstexampleActivator.java57
-rw-r--r--examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/FirstexampleExecutableExtensionFactory.java27
-rw-r--r--examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/FirstexampleGuiceModule.java19
-rw-r--r--examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/LibraryEmptyResourceInitializer.java18
-rw-r--r--examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/module.parsley41
-rw-r--r--examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/views/LibraryTreeFormView.java13
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/.classpath8
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/.project28
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/.settings/org.eclipse.jdt.core.prefs85
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/META-INF/MANIFEST.MF24
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/build.properties5
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/plugin.xml280
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/AbstractStatemachineUiModule.java242
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/StatemachineExecutableExtensionFactory.java27
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/AbstractStatemachineProposalProvider.java75
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/PartialStatemachineContentAssistParser.java37
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/StatemachineParser.java91
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g1404
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.tokens25
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachineLexer.java1072
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachineParser.java3740
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/internal/StatemachineActivator.java95
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/StatemachineUiModule.java15
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/StatemachineProposalProvider.java12
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/labeling/StatemachineDescriptionLabelProvider.java27
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/labeling/StatemachineLabelProvider.java34
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/outline/StatemachineOutlineTreeProvider.java14
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/quickfix/StatemachineQuickfixProvider.java19
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/.classpath9
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/.launch/Generate Language Infrastructure (it.rcpvision.emf.components.examples.fowlerdsl).launch18
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/.launch/Launch Runtime Eclipse.launch35
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/.project34
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/META-INF/MANIFEST.MF36
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/build.properties6
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/plugin.xml17
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/AbstractStatemachineRuntimeModule.java172
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.ecore36
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.genmodel36
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.xmi280
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/StatemachineStandaloneSetupGenerated.java43
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/StatemachineAntlrTokenFileProvider.java15
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/StatemachineParser.java39
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g453
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.tokens25
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachineLexer.java1072
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachineParser.java1099
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/serializer/AbstractStatemachineSemanticSequencer.java159
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/serializer/AbstractStatemachineSyntacticSequencer.java40
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/services/StatemachineGrammarAccess.java391
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/Command.java81
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/Event.java81
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/State.java90
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/Statemachine.java97
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/StatemachineFactory.java82
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/StatemachinePackage.java647
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/Transition.java81
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/CommandImpl.java236
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/EventImpl.java236
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/StateImpl.java281
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/StatemachineFactoryImpl.java157
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/StatemachineImpl.java285
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/StatemachinePackageImpl.java421
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/TransitionImpl.java242
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/util/StatemachineAdapterFactory.java215
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/util/StatemachineSwitch.java214
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/validation/AbstractStatemachineJavaValidator.java18
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/GenerateStatemachine.mwe2138
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.xtext36
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/StatemachineRuntimeModule.java11
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/StatemachineStandaloneSetup.java16
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/formatting/StatemachineFormatter.java27
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/generator/StatemachineGenerator.xtend15
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/scoping/StatemachineScopeProvider.java17
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/validation/StatemachineJavaValidator.java15
-rw-r--r--examples/org.eclipse.emf.parsley.examples.fowlerdsl/xtend-gen/org/eclipse/emf/parsley/examples/fowlerdsl/generator/StatemachineGenerator.java14
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/.classpath7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/.project28
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/META-INF/MANIFEST.MF16
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/about.html28
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/build.properties9
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_borrowers_Borrower.gifbin0 -> 223 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_branches_Library.gifbin0 -> 223 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_employees_Employee.gifbin0 -> 223 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_Book.gifbin0 -> 223 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_BookOnTape.gifbin0 -> 223 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_VideoCassette.gifbin0 -> 223 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_writers_Writer.gifbin0 -> 223 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Book.gifbin0 -> 129 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/BookOnTape.gifbin0 -> 129 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Borrower.gifbin0 -> 129 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/CirculatingItem.gifbin0 -> 129 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Employee.gifbin0 -> 129 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Library.gifbin0 -> 129 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Person.gifbin0 -> 129 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/VideoCassette.gifbin0 -> 129 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Writer.gifbin0 -> 129 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/custom_book.pngbin0 -> 629 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/plugin.properties85
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/plugin.xml18
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/AudioVisualItemItemProvider.java206
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/BookItemProvider.java242
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/BookOnTapeItemProvider.java183
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/BorrowerItemProvider.java159
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/CirculatingItemItemProvider.java194
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/EXTLibraryEditPlugin.java110
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/EXTLibraryItemProviderAdapterFactory.java412
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/EmployeeItemProvider.java159
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/ItemItemProvider.java173
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/LibraryItemProvider.java314
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/PeriodicalItemProvider.java181
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/PersonItemProvider.java233
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/VideoCassetteItemProvider.java159
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/WriterItemProvider.java192
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/.classpath7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/.project28
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/META-INF/MANIFEST.MF21
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/about.html28
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/build.properties9
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/icons/full/obj16/EXTLibraryModelFile.gifbin0 -> 346 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/icons/full/wizban/NewEXTLibrary.gifbin0 -> 2462 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/plugin.properties69
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/plugin.xml32
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/AddLibraryCommand.java84
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/CreateLibraryAction.java62
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/EXTLibraryExtendedActionBarContributor.java121
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/ExtendedDeleteAction.java103
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/RemoveLibraryCommand.java87
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryActionBarContributor.java483
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryEditor.java2056
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryEditorPlugin.java114
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryModelWizard.java702
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.ui/.classpath7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.ui/.project28
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.ui/META-INF/MANIFEST.MF14
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.ui/build.properties6
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.ui/icons/book.pngbin0 -> 693 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.ui/icons/library.gifbin0 -> 338 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.ui/icons/person.gifbin0 -> 307 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.ui/plugin.xml39
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/Activator.java50
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/CustomEStructuralFeaturesProvider.java26
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/CustomFeatureLabelProvider.java23
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/CustomLabelProvider.java35
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/EmfComponentsGuiceModule.java30
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/ExecutableExtensionFactory.java21
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/.classpath7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/.project28
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/META-INF/MANIFEST.MF17
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/about.html28
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/build.properties9
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/model/Library.xmi5
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/model/extlibrary.ecore105
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/model/extlibrary.genmodel79
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/plugin.properties23
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/plugin.xml32
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Addressable.java63
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/AudioVisualItem.java106
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Book.java162
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/BookCategory.java250
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/BookOnTape.java83
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Borrower.java55
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/CirculatingItem.java33
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/EXTLibraryFactory.java122
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/EXTLibraryPackage.java1851
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Employee.java60
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Item.java65
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Lendable.java80
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Library.java187
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Periodical.java83
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Person.java83
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/VideoCassette.java53
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Writer.java78
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/AudioVisualItemImpl.java304
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/BookImpl.java469
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/BookOnTapeImpl.java255
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/BorrowerImpl.java199
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/CirculatingItemImpl.java313
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/EXTLibraryFactoryImpl.java265
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/EXTLibraryPackageImpl.java932
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/EmployeeImpl.java188
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/ItemImpl.java195
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/LibraryImpl.java677
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/PeriodicalImpl.java248
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/PersonImpl.java305
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/VideoCassetteImpl.java160
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/WriterImpl.java285
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/util/EXTLibraryAdapterFactory.java409
-rw-r--r--examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/util/EXTLibrarySwitch.java478
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/.classpath8
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/.project34
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/META-INF/MANIFEST.MF18
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/build.properties7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/accountsview/EmfComponentsGuiceModuleGen.java28
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/accountsview/edit/ui/provider/ViewerContentProviderGen.java20
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/accountsview/ui/provider/LabelProviderGen.java59
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/account.gifbin0 -> 376 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/folder.gifbin0 -> 219 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/inbox.gifbin0 -> 327 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/sample.gifbin0 -> 983 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/sent.pngbin0 -> 694 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/trash.pngbin0 -> 666 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/plugin.xml19
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/plugin.xml_emfparsley_gen14
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/AccountsviewActivator.java57
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/AccountsviewExecutableExtensionFactory.java27
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/AccountsviewGuiceModule.java20
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/custom/MailEmptyResourceInitializer.java84
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/module.parsley40
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/views/AccountsView.java35
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.mailsview/.classpath8
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.mailsview/.project34
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.mailsview/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.mailsview/META-INF/MANIFEST.MF17
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.mailsview/build.properties7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.mailsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/mailsview/EmfComponentsGuiceModuleGen.java21
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.mailsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/mailsview/ui/provider/FeaturesProviderGen.java15
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.mailsview/icons/sample.gifbin0 -> 983 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.mailsview/plugin.xml31
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.mailsview/plugin.xml_emfparsley_gen14
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/MailsviewActivator.java57
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/MailsviewExecutableExtensionFactory.java27
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/MailsviewGuiceModule.java14
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/module.parsley18
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/views/MailsView.java30
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/.classpath8
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/.project34
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/META-INF/MANIFEST.MF17
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/build.properties7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/EmfComponentsGuiceModuleGen.java42
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/binding/FormFeatureControlFactoryGen.java38
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/ui/provider/FeaturesProviderGen.java15
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/ui/provider/LabelProviderGen.java23
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/ui/provider/PropertyDescriptionProviderGen.java11
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/icons/email.pngbin0 -> 641 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/icons/sample.gifbin0 -> 983 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/plugin.xml32
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/plugin.xml_emfparsley_gen14
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/MessageviewActivator.java57
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/MessageviewExecutableExtensionFactory.java27
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/MessageviewGuiceModule.java14
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/module.parsley44
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/views/MessageView.java32
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/.classpath7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/.project28
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/META-INF/MANIFEST.MF15
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/build.properties10
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/model/mail.ecore27
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/model/mail.ecorediag123
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/model/mail.genmodel27
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/plugin.properties4
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/plugin.xml16
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/Account.java96
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/Folder.java84
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/FolderContent.java18
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/Mail.java123
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/MailContent.java17
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/MailFactory.java69
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/MailPackage.java558
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/AccountImpl.java276
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/FolderContentImpl.java41
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/FolderImpl.java257
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/MailContentImpl.java39
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/MailFactoryImpl.java128
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/MailImpl.java314
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/MailPackageImpl.java363
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/util/MailAdapterFactory.java192
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/util/MailSwitch.java196
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/.classpath7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/.project28
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/EmfComponentsMail.launch37
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/META-INF/MANIFEST.MF13
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/build.properties8
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/mail.icobin0 -> 26694 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/sample.gifbin0 -> 983 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/sample.icnsbin0 -> 35301 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/sample2.gifbin0 -> 318 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/sample3.gifbin0 -> 173 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/old/NavigationView.java151
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/old/plugin.xml101
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/plugin.xml89
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/product_lg.gifbin0 -> 9559 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/splash.bmpbin0 -> 135600 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/Activator.java61
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/ApplicationActionBarAdvisor.java91
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/ApplicationWorkbenchAdvisor.java21
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/ApplicationWorkbenchWindowAdvisor.java26
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/ICommandIds.java15
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/MailApplication.java45
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/MessagePopupAction.java25
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/OpenViewAction.java35
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/Perspective.java35
-rw-r--r--examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/View.java90
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/.classpath7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/.project28
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/META-INF/MANIFEST.MF15
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/build.properties10
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/model/Model.ecore21
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/model/Model.ecorediag111
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/model/Model.genmodel14
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/plugin.properties4
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/plugin.xml16
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/Element.java96
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/Item.java50
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/Model.java85
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/ModelFactory.java60
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/ModelPackage.java398
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ElementImpl.java256
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ItemImpl.java163
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ModelFactoryImpl.java117
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ModelImpl.java256
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ModelPackageImpl.java286
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/util/ModelAdapterFactory.java156
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/util/ModelSwitch.java152
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/.classpath7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/.project28
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/Emf_Components_RAP_Launch.launch41
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/META-INF/MANIFEST.MF13
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/build.properties6
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/icons/component.jpgbin0 -> 433 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/icons/detail.jpgbin0 -> 429 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/icons/table.jpgbin0 -> 421 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/icons/view.jpgbin0 -> 421 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/old/it.rcpvision.emf.components.examples.rap.ui.RAP.launch46
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/old/it.rcpvision.emf.components.examples.rap.ui.launch42
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/plugin.xml49
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/Activator.java61
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/Application.java24
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/ApplicationActionBarAdvisor.java46
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/ApplicationWorkbenchAdvisor.java22
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/ApplicationWorkbenchWindowAdvisor.java31
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/ExecutableExtensionFactory.java21
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/GuiceModule.java101
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/Perspective.java26
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/SaveableView.java15
-rw-r--r--examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/View.java44
-rw-r--r--examples/org.eclipse.emf.parsley.examples.views/.classpath7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.views/.project28
-rw-r--r--examples/org.eclipse.emf.parsley.examples.views/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--examples/org.eclipse.emf.parsley.examples.views/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--examples/org.eclipse.emf.parsley.examples.views/META-INF/MANIFEST.MF12
-rw-r--r--examples/org.eclipse.emf.parsley.examples.views/build.properties6
-rw-r--r--examples/org.eclipse.emf.parsley.examples.views/icons/component.jpgbin0 -> 433 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.views/icons/detail.jpgbin0 -> 429 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.views/icons/table.jpgbin0 -> 421 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.views/icons/view.jpgbin0 -> 421 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.examples.views/old/models/My.extlibrary8
-rw-r--r--examples/org.eclipse.emf.parsley.examples.views/old/views/ResourceTreeFormView.java40
-rw-r--r--examples/org.eclipse.emf.parsley.examples.views/old/views/SaveableResourceTableView.java30
-rw-r--r--examples/org.eclipse.emf.parsley.examples.views/old/views/SaveableResourceTreeFormView.java14
-rw-r--r--examples/org.eclipse.emf.parsley.examples.views/plugin.xml61
-rw-r--r--examples/org.eclipse.emf.parsley.examples.views/src/org/eclipse/emf/parsley/examples/Activator.java50
-rw-r--r--examples/org.eclipse.emf.parsley.examples.views/src/org/eclipse/emf/parsley/examples/EmfComponentsExamplesExecutableExtensionFactory.java21
-rw-r--r--examples/org.eclipse.emf.parsley.examples.views/src/org/eclipse/emf/parsley/examples/EmfComponentsExamplesModule.java21
-rw-r--r--examples/org.eclipse.emf.parsley.ui.examples/.classpath6
-rw-r--r--examples/org.eclipse.emf.parsley.ui.examples/.externalToolBuilders/Build Zips.launch15
-rw-r--r--examples/org.eclipse.emf.parsley.ui.examples/.project41
-rw-r--r--examples/org.eclipse.emf.parsley.ui.examples/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--examples/org.eclipse.emf.parsley.ui.examples/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--examples/org.eclipse.emf.parsley.ui.examples/META-INF/MANIFEST.MF12
-rw-r--r--examples/org.eclipse.emf.parsley.ui.examples/build.properties5
-rw-r--r--examples/org.eclipse.emf.parsley.ui.examples/build.xml49
-rw-r--r--examples/org.eclipse.emf.parsley.ui.examples/contents/.gitignore2
-rw-r--r--examples/org.eclipse.emf.parsley.ui.examples/icons/genproject.gifbin0 -> 384 bytes
-rw-r--r--examples/org.eclipse.emf.parsley.ui.examples/plugin.xml159
-rw-r--r--features/org.eclipse.emf.parsley.cdo.feature/.project17
-rw-r--r--features/org.eclipse.emf.parsley.cdo.feature/build.properties1
-rw-r--r--features/org.eclipse.emf.parsley.cdo.feature/feature.xml35
-rw-r--r--features/org.eclipse.emf.parsley.dsl.feature/.project17
-rw-r--r--features/org.eclipse.emf.parsley.dsl.feature/build.properties1
-rw-r--r--features/org.eclipse.emf.parsley.dsl.feature/feature.xml38
-rw-r--r--features/org.eclipse.emf.parsley.examples.feature/.project17
-rw-r--r--features/org.eclipse.emf.parsley.examples.feature/build.properties1
-rw-r--r--features/org.eclipse.emf.parsley.examples.feature/feature.xml35
-rw-r--r--features/org.eclipse.emf.parsley.examples.mail.product.feature/.project17
-rw-r--r--features/org.eclipse.emf.parsley.examples.mail.product.feature/EmfParsleyMail.product43
-rw-r--r--features/org.eclipse.emf.parsley.examples.mail.product.feature/build.properties1
-rw-r--r--features/org.eclipse.emf.parsley.examples.mail.product.feature/feature.xml80
-rw-r--r--features/org.eclipse.emf.parsley.examples.rap.feature/.project17
-rw-r--r--features/org.eclipse.emf.parsley.examples.rap.feature/build.properties1
-rw-r--r--features/org.eclipse.emf.parsley.examples.rap.feature/feature.xml180
-rw-r--r--features/org.eclipse.emf.parsley.feature/.project17
-rw-r--r--features/org.eclipse.emf.parsley.feature/build.properties1
-rw-r--r--features/org.eclipse.emf.parsley.feature/feature.xml94
-rw-r--r--features/org.eclipse.emf.parsley.rap.sdk/.project17
-rw-r--r--features/org.eclipse.emf.parsley.rap.sdk/build.properties1
-rw-r--r--features/org.eclipse.emf.parsley.rap.sdk/feature.xml65
-rw-r--r--features/org.eclipse.emf.parsley.tests.swtbot.feature/.project17
-rw-r--r--features/org.eclipse.emf.parsley.tests.swtbot.feature/build.properties1
-rw-r--r--features/org.eclipse.emf.parsley.tests.swtbot.feature/feature.xml107
-rw-r--r--plugins/org.eclipse.emf.parsley.cdo/.classpath7
-rw-r--r--plugins/org.eclipse.emf.parsley.cdo/.project28
-rw-r--r--plugins/org.eclipse.emf.parsley.cdo/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--plugins/org.eclipse.emf.parsley.cdo/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--plugins/org.eclipse.emf.parsley.cdo/META-INF/MANIFEST.MF21
-rw-r--r--plugins/org.eclipse.emf.parsley.cdo/build.properties4
-rw-r--r--plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/Activator.java50
-rw-r--r--plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/CDOEmfComponentsExtensionFactory.java24
-rw-r--r--plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/CDOEmfComponentsModule.java30
-rw-r--r--plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/CDOResourceLoader.java85
-rw-r--r--plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/CDOSessionManager.java14
-rw-r--r--plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/util/CDOURIData.java38
-rw-r--r--plugins/org.eclipse.emf.parsley.common/.classpath7
-rw-r--r--plugins/org.eclipse.emf.parsley.common/.project28
-rw-r--r--plugins/org.eclipse.emf.parsley.common/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--plugins/org.eclipse.emf.parsley.common/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--plugins/org.eclipse.emf.parsley.common/META-INF/MANIFEST.MF78
-rw-r--r--plugins/org.eclipse.emf.parsley.common/build.properties4
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/EmfComponentsCommonActivator.java73
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/EmfComponentsExtensionFactory.java50
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/EmfComponentsGuiceModule.java210
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/CachedLabelProvider.java69
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/ControlObservablePair.java43
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/FormControlFactory.java431
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/MultipleFeatureControl.java229
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/MultipleFeatureControlObservable.java57
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/ProposalCreator.java171
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/builders/TableViewerBuilder.java58
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/builders/TableViewerColumnBuilder.java110
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/builders/TableViewerEditableColumnBuilder.java288
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ecore/FeatureNamePath.java45
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ecore/FeatureResolver.java61
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/EditingDomainFinder.java22
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/ResourceSaveManager.java33
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/ValidateResourceSaveManager.java67
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/action/EditingActionManager.java206
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/action/EditingDomainValidateAction.java11
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/action/EmfActionManager.java183
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/actionbar/TreeActionBarContributor.java52
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/actionbar/WorkbenchActionBarContributor.java313
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/domain/InjectableAdapterFactoryEditingDomain.java32
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/provider/InjectableAdapterFactory.java31
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/ui/provider/InjectableAdapterFactoryLabelProvider.java33
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/ui/provider/ViewerContentProvider.java75
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/ColumnLabelProviderFactory.java68
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/FormFactory.java34
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/TableFormFactory.java43
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/TreeFormFactory.java34
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/ViewerFactory.java75
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/handlers/OutlineSelectionHandler.java52
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/listeners/ViewerMouseAdapter.java29
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/listeners/ViewerNoOpMouseAdapter.java23
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/menus/ViewerContextMenuFactory.java58
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/EmptyResourceInitializer.java20
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/LoadResourceResponse.java32
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/ResourceLoader.java54
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/EmfComponentsAbstractActivator.java48
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/AdapterMapCellLabelProvider.java28
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/EClassToEStructuralFeatureAsStringsMap.java25
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/FeaturesColumnProvider.java45
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/FeaturesProvider.java134
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/FormPropertyDescriptionProvider.java91
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/PropertyDescriptionProvider.java58
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/TableColumnLabelProvider.java128
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/ViewerLabelProvider.java139
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/ActionBarsUtils.java27
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EStructuralFeatureNameComparator.java17
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EmfCommandsUtil.java34
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EmfComponentsUtil.java55
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EmfSelectionHelper.java33
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/viewers/ViewerInitializer.java153
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/viewers/ViewerSelectionProvider.java67
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/AbstractMasterDetailComposite.java136
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/FormDetailComposite.java146
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/IStructuredViewerAware.java11
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/StructuredViewerAwareComposite.java22
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/TableFormComposite.java108
-rw-r--r--plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/TreeFormComposite.java139
-rw-r--r--plugins/org.eclipse.emf.parsley.editors.common/.classpath7
-rw-r--r--plugins/org.eclipse.emf.parsley.editors.common/.project28
-rw-r--r--plugins/org.eclipse.emf.parsley.editors.common/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--plugins/org.eclipse.emf.parsley.editors.common/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--plugins/org.eclipse.emf.parsley.editors.common/META-INF/MANIFEST.MF57
-rw-r--r--plugins/org.eclipse.emf.parsley.editors.common/build.properties5
-rw-r--r--plugins/org.eclipse.emf.parsley.editors.common/plugin.xml18
-rw-r--r--plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfAbstractEditor.java1467
-rw-r--r--plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorActionBarContributor.java13
-rw-r--r--plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorsActivator.java50
-rw-r--r--plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorsExecutableExtensionFactory.java18
-rw-r--r--plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfTreeEditor.java129
-rw-r--r--plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/listeners/ResourceDeltaVisitor.java66
-rw-r--r--plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/outline/EmfEditorContentOutlineFactory.java30
-rw-r--r--plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/outline/EmfEditorContentOutlinePage.java59
-rw-r--r--plugins/org.eclipse.emf.parsley.editors/.classpath7
-rw-r--r--plugins/org.eclipse.emf.parsley.editors/.project28
-rw-r--r--plugins/org.eclipse.emf.parsley.editors/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--plugins/org.eclipse.emf.parsley.editors/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--plugins/org.eclipse.emf.parsley.editors/META-INF/MANIFEST.MF17
-rw-r--r--plugins/org.eclipse.emf.parsley.editors/build.properties5
-rw-r--r--plugins/org.eclipse.emf.parsley.editors/plugin.xml18
-rw-r--r--plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfAbstractEditor.java1469
-rw-r--r--plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorActionBarContributor.java19
-rw-r--r--plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorsActivator.java50
-rw-r--r--plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorsExecutableExtensionFactory.java18
-rw-r--r--plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfTreeEditor.java105
-rw-r--r--plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/listeners/ResourceDeltaVisitor.java66
-rw-r--r--plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/outline/EmfEditorContentOutlineFactory.java30
-rw-r--r--plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/outline/EmfEditorContentOutlinePage.java59
-rw-r--r--plugins/org.eclipse.emf.parsley.generator.common/.classpath8
-rw-r--r--plugins/org.eclipse.emf.parsley.generator.common/.project34
-rw-r--r--plugins/org.eclipse.emf.parsley.generator.common/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--plugins/org.eclipse.emf.parsley.generator.common/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--plugins/org.eclipse.emf.parsley.generator.common/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--plugins/org.eclipse.emf.parsley.generator.common/META-INF/MANIFEST.MF13
-rw-r--r--plugins/org.eclipse.emf.parsley.generator.common/build.properties5
-rw-r--r--plugins/org.eclipse.emf.parsley.generator.common/src/org/eclipse/emf/parsley/generator/common/Activator.java30
-rw-r--r--plugins/org.eclipse.emf.parsley.generator.common/src/org/eclipse/emf/parsley/generator/common/EmfParsleyProjectFilesGenerator.xtend157
-rw-r--r--plugins/org.eclipse.emf.parsley.generator.common/src/org/eclipse/emf/parsley/generator/common/EmfParsleyViewFilesGenerator.xtend85
-rw-r--r--plugins/org.eclipse.emf.parsley.generator.common/xtend-gen/org/eclipse/emf/parsley/generator/common/EmfParsleyProjectFilesGenerator.java396
-rw-r--r--plugins/org.eclipse.emf.parsley.generator.common/xtend-gen/org/eclipse/emf/parsley/generator/common/EmfParsleyViewFilesGenerator.java207
-rw-r--r--plugins/org.eclipse.emf.parsley.rap.runtime/.classpath6
-rw-r--r--plugins/org.eclipse.emf.parsley.rap.runtime/.project28
-rw-r--r--plugins/org.eclipse.emf.parsley.rap.runtime/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--plugins/org.eclipse.emf.parsley.rap.runtime/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--plugins/org.eclipse.emf.parsley.rap.runtime/META-INF/MANIFEST.MF9
-rw-r--r--plugins/org.eclipse.emf.parsley.rap.runtime/build.properties2
-rw-r--r--plugins/org.eclipse.emf.parsley.rap.views/.classpath7
-rw-r--r--plugins/org.eclipse.emf.parsley.rap.views/.project28
-rw-r--r--plugins/org.eclipse.emf.parsley.rap.views/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--plugins/org.eclipse.emf.parsley.rap.views/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--plugins/org.eclipse.emf.parsley.rap.views/META-INF/MANIFEST.MF12
-rw-r--r--plugins/org.eclipse.emf.parsley.rap.views/build.properties4
-rw-r--r--plugins/org.eclipse.emf.parsley.rap.views/src/org/eclipse/emf/parsley/rap/views/EmfComponentsRapViewsActivator.java30
-rw-r--r--plugins/org.eclipse.emf.parsley.rap/.classpath7
-rw-r--r--plugins/org.eclipse.emf.parsley.rap/.project28
-rw-r--r--plugins/org.eclipse.emf.parsley.rap/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--plugins/org.eclipse.emf.parsley.rap/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--plugins/org.eclipse.emf.parsley.rap/META-INF/MANIFEST.MF18
-rw-r--r--plugins/org.eclipse.emf.parsley.rap/build.properties4
-rw-r--r--plugins/org.eclipse.emf.parsley.rap/src/org/eclipse/emf/parsley/rap/EmfComponentsRapActivator.java30
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/.classpath7
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/.project28
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/.settings/org.eclipse.jdt.core.prefs95
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/META-INF/MANIFEST.MF20
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/build.properties4
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/AbstractGenericModule.java88
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/BindModule.java18
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/CompoundModule.java58
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/FreeModule.java25
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/MethodBasedModule.java140
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/MinimalModule.java30
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/ProviderModule.java48
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/SingletonBinding.java19
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/ui/AbstractGuiceAwareExecutableExtensionFactory.java65
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/ui/IImageHelper.java38
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/ui/MinimalExecutableExtensionFactory.java24
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/ui/PluginImageHelper.java151
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/util/Exceptions.java26
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/util/PolymorphicDispatcher.java376
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/util/ReflectionUtil.java38
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/util/SimpleCache.java136
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime/.classpath6
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime/.project28
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime/.settings/org.eclipse.jdt.core.prefs95
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime/META-INF/MANIFEST.MF15
-rw-r--r--plugins/org.eclipse.emf.parsley.runtime/build.properties2
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/.classpath7
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/.project28
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/META-INF/MANIFEST.MF53
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/build.properties4
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractOnSelectionTableFormView.java91
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractOnSelectionTableView.java106
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractOnSelectionView.java64
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableTableFormView.java58
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableTableView.java65
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableTreeFormView.java46
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableTreeView.java44
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableView.java204
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/EmfComponentsViewsActivator.java50
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionFormView.java73
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionListView.java26
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionShowAllTableView.java138
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionStructuredViewerAbstractView.java147
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionTableFormView.java142
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionTreeFormView.java39
-rw-r--r--plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionTreeView.java27
-rw-r--r--plugins/org.eclipse.emf.parsley.views/.classpath7
-rw-r--r--plugins/org.eclipse.emf.parsley.views/.project28
-rw-r--r--plugins/org.eclipse.emf.parsley.views/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--plugins/org.eclipse.emf.parsley.views/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--plugins/org.eclipse.emf.parsley.views/META-INF/MANIFEST.MF15
-rw-r--r--plugins/org.eclipse.emf.parsley.views/build.properties4
-rw-r--r--plugins/org.eclipse.emf.parsley.views/src/org/eclipse/emf/parsley/views/EmfComponentsViewsActivator.java52
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/.classpath7
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/.project34
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/.settings/org.eclipse.core.resources.prefs3
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/META-INF/MANIFEST.MF19
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/build.properties8
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/icons/component.jpgbin0 -> 433 bytes
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/icons/sample.gifbin0 -> 983 bytes
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/plugin.xml45
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/Activator.java50
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/EmfParsleyChoiceTemplate.java70
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/NewEmfParsleyProjectSupport.java348
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/NewEmfParsleyProjectWizard.java97
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/TablePluginContentWizard.java23
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/TableViewTemplateSection.java164
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/.gitignore1
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/bin/a.java18
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/$prefixClassesname$CDOSessionManager.java24
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/$prefixClassesname$ViewConfigurator.java32
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/internal/guice/$prefixClassesname$BindingFactory.java22
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/internal/guice/$prefixClassesname$ExecutableExtensionFactory.java22
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/internal/guice/$prefixClassesname$FeatureLabelProvider.java34
-rw-r--r--plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/internal/guice/$prefixClassesname$Module.java38
-rw-r--r--plugins/org.eclipse.emf.parsley/.classpath7
-rw-r--r--plugins/org.eclipse.emf.parsley/.project28
-rw-r--r--plugins/org.eclipse.emf.parsley/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--plugins/org.eclipse.emf.parsley/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--plugins/org.eclipse.emf.parsley/META-INF/MANIFEST.MF21
-rw-r--r--plugins/org.eclipse.emf.parsley/build.properties4
-rw-r--r--plugins/org.eclipse.emf.parsley/src/org/eclipse/emf/parsley/EmfComponentsActivator.java73
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster.common/.project11
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster.common/buckminster.cspec2
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster.common/common.ant212
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/.project11
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/README.txt23
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/aggregator/juno-cdo-xtext-swtbot-mirror.b3aggr48
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/aggregator/kepler-cdo-xtext-swtbot-mirror.b3aggr45
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/buckminster.cspec19
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/build-examples-rcp.ant42
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/build-juno.cquery16
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/build-juno.rmap213
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/build-local.cquery10
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/build-local.properties11
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/build.ant53
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/build.cquery16
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/build.properties3
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/build.rmap200
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/headless-perform-commands.txt6
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/headless-perform-examples-rcp.txt3
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/headless-resolve-commands.txt2
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/launches/build.ant install b3 headless.launch19
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/launches/build.ant run b3 aggrefator.launch19
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/launches/build.ant using aggregated mirror.launch18
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/launches/build.ant using mirror.launch18
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/launches/build.ant.launch18
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/old/build.rmap237
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/old/project.cquery7
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/old/project.rmap93
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/old/target-platform-local.cquery8
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/old/target-platform.cquery8
-rw-r--r--releng/org.eclipse.emf.parsley.buckminster/old/target-platform.rmap72
-rw-r--r--releng/org.eclipse.emf.parsley.examples.mail.product.site/.project17
-rw-r--r--releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster.cspex36
-rw-r--r--releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster_linux32.properties12
-rw-r--r--releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster_linux64.properties12
-rw-r--r--releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster_win32.properties10
-rw-r--r--releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster_win64.properties10
-rw-r--r--releng/org.eclipse.emf.parsley.examples.mail.product.site/build.properties1
-rw-r--r--releng/org.eclipse.emf.parsley.examples.mail.product.site/build/product.ant45
-rw-r--r--releng/org.eclipse.emf.parsley.examples.mail.product.site/feature.xml284
-rw-r--r--releng/org.eclipse.emf.parsley.examples.mail.product.site/old/bigger_feature.xml_old361
-rw-r--r--releng/org.eclipse.emf.parsley.rap.buckminster/.project11
-rw-r--r--releng/org.eclipse.emf.parsley.rap.buckminster/aggregator/kepler-cdo-rap-mirror.b3aggr37
-rw-r--r--releng/org.eclipse.emf.parsley.rap.buckminster/buckminster.cspec15
-rw-r--r--releng/org.eclipse.emf.parsley.rap.buckminster/build-local.cquery8
-rw-r--r--releng/org.eclipse.emf.parsley.rap.buckminster/build-local.properties11
-rw-r--r--releng/org.eclipse.emf.parsley.rap.buckminster/build.ant58
-rw-r--r--releng/org.eclipse.emf.parsley.rap.buckminster/build.cquery8
-rw-r--r--releng/org.eclipse.emf.parsley.rap.buckminster/build.properties7
-rw-r--r--releng/org.eclipse.emf.parsley.rap.buckminster/build.rmap192
-rw-r--r--releng/org.eclipse.emf.parsley.rap.buckminster/headless-perform-commands.txt3
-rw-r--r--releng/org.eclipse.emf.parsley.rap.buckminster/headless-resolve-commands.txt2
-rw-r--r--releng/org.eclipse.emf.parsley.rap.buckminster/launches/RAP build.ant using aggregated mirror.launch18
-rw-r--r--releng/org.eclipse.emf.parsley.rap.site/.project17
-rw-r--r--releng/org.eclipse.emf.parsley.rap.site/buckminster.properties16
-rw-r--r--releng/org.eclipse.emf.parsley.rap.site/build.properties1
-rw-r--r--releng/org.eclipse.emf.parsley.rap.site/category.xml21
-rw-r--r--releng/org.eclipse.emf.parsley.rap.site/feature.xml27
-rw-r--r--releng/org.eclipse.emf.parsley.site/.project17
-rw-r--r--releng/org.eclipse.emf.parsley.site/README.txt1
-rw-r--r--releng/org.eclipse.emf.parsley.site/buckminster.cspex44
-rw-r--r--releng/org.eclipse.emf.parsley.site/buckminster.properties16
-rw-r--r--releng/org.eclipse.emf.parsley.site/build.properties1
-rw-r--r--releng/org.eclipse.emf.parsley.site/category.xml39
-rw-r--r--releng/org.eclipse.emf.parsley.site/feature.xml40
-rw-r--r--releng/org.eclipse.emf.parsley.site/jenkins-commands-examples-rcp.txt6
-rw-r--r--releng/org.eclipse.emf.parsley.site/jenkins-commands.txt10
-rw-r--r--releng/org.eclipse.emf.parsley.site/site.cquery4
-rw-r--r--releng/org.eclipse.emf.parsley.site/site.rmap59
-rw-r--r--tests/org.eclipse.emf.parsley.cdo.tests/.classpath7
-rw-r--r--tests/org.eclipse.emf.parsley.cdo.tests/.project28
-rw-r--r--tests/org.eclipse.emf.parsley.cdo.tests/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--tests/org.eclipse.emf.parsley.cdo.tests/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--tests/org.eclipse.emf.parsley.cdo.tests/CDOUriTests.launch15
-rw-r--r--tests/org.eclipse.emf.parsley.cdo.tests/META-INF/MANIFEST.MF12
-rw-r--r--tests/org.eclipse.emf.parsley.cdo.tests/build.properties4
-rw-r--r--tests/org.eclipse.emf.parsley.cdo.tests/src/org/eclipse/emf/parsley/cdo/tests/Activator.java50
-rw-r--r--tests/org.eclipse.emf.parsley.cdo.tests/src/org/eclipse/emf/parsley/cdo/tests/CDOUriTests.java38
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/.classpath8
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/.gitignore1
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/.project34
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsDslWizardsTests.launch47
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsEditorTests.launch51
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsEmfComponentsProvidersBasedOnViewTests.launch47
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsEmfComponentsProvidersTests.launch47
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsExamplesWizardsTests.launch47
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsFormTests.launch51
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsSaveableViewTests.launch51
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsSwtBotAllTests.launch95
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsTestsSuite.launch51
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsViewTests.launch51
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsWizardsTests.launch51
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/Launch Runtime Eclipse Parsley.launch35
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/META-INF/MANIFEST.MF28
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/README-launches.txt14
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/build.properties8
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/icons/book2.pngbin0 -> 693 bytes
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/icons/custom_book.pngbin0 -> 629 bytes
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/models/My.extlibrary8
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/models/My2.extlibrary9
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/models/fowlerdsl.statemachine37
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/old/ContextMenuHelper.java128
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/plugin.xml148
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsAbstractTests.java823
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsColumnLabelProviderTests.java48
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsCustomLibraryAbstractTests.java47
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsDslWizardsTests.xtend69
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsEditorTests.java206
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsExamplesWizardsTests.java38
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsFormTests.java130
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsLabelProviderTests.java44
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsMavenTestsSuite.java24
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsProvidersBasedOnViewTests.java277
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsProvidersTests.java197
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsSaveableViewTests.java226
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsTestsActivator.java138
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsTestsSuite.java28
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsUtilTests.java40
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsViewTests.java107
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsWizardsTests.java48
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/binding/CustomLibraryFormControlFactory.java71
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/binding/CustomLibraryProposalCreator.java57
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/editors/TestEditor.java20
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomContentProviderLibraryExecutableExtensionFactory.java25
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomContentProviderLibraryModule.java18
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomLabelExecutableExtensionFactory.java52
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomLibraryExecutableExtensionFactory.java25
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomLibraryModule.java74
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/EmfComponentsTestsExecutableExtensionFactory.java37
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/NoMouseEventExecutableExtensionFactory.java35
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/labeling/CustomLibraryFeatureLabelProvider.java24
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/labeling/CustomLibraryFormFeatureLabelProvider.java37
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/labeling/CustomLibraryLabelProvider.java37
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/labeling/CustomLibraryTableColumnLabelProvider.java18
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/CustomLibraryViewerContentProvider.java43
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/LibraryEStructuralFeaturesAsStringsProvider.java35
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/LibraryEStructuralFeaturesProvider.java30
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/OrderedEStructuralFeaturesProvider.java33
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/TestFeaturesColumnProvider.java32
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/TestFeaturesProvider.java31
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/resource/TestEmptyLibraryResourceInitializer.java49
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/tables/LibraryTestTableView.java102
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/utils/EmfComponentsTestsUtils.xtend35
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/utils/WaitForBuildCondition.java52
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/LibraryEmfView.java32
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestOnSelectionLibraryBooksTableView.java29
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableResourceTableFormView.java31
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableResourceTableView.java31
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableResourceTreeFormView.java17
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableTreeView.java16
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableTreeView2.java16
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/xtend-gen/org/eclipse/emf/parsley/tests/EmfComponentsDslWizardsTests.java113
-rw-r--r--tests/org.eclipse.emf.parsley.tests.swtbot/xtend-gen/org/eclipse/emf/parsley/tests/utils/EmfComponentsTestsUtils.java88
-rw-r--r--tests/org.eclipse.emf.parsley.tests/.classpath8
-rw-r--r--tests/org.eclipse.emf.parsley.tests/.project34
-rw-r--r--tests/org.eclipse.emf.parsley.tests/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--tests/org.eclipse.emf.parsley.tests/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--tests/org.eclipse.emf.parsley.tests/.settings/org.eclipse.jdt.launching.prefs3
-rw-r--r--tests/org.eclipse.emf.parsley.tests/EmfComponentsAllTests.launch15
-rw-r--r--tests/org.eclipse.emf.parsley.tests/META-INF/MANIFEST.MF22
-rw-r--r--tests/org.eclipse.emf.parsley.tests/build.properties5
-rw-r--r--tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/Activator.java30
-rw-r--r--tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/EmfComponentsAllTests.java22
-rw-r--r--tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/FeatureNamePathTest.java18
-rw-r--r--tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/FeatureResolverTest.xtend119
-rw-r--r--tests/org.eclipse.emf.parsley.tests/xtend-gen/org/eclipse/emf/parsley/tests/FeatureResolverTest.java171
1139 files changed, 237022 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..8726e0403
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,14 @@
+.metadata
+*.class
+bin/
+*~
+logs.zip
+*.orig
+.svn/
+#xtend-gen/ we need it for building
+target/
+*.java._trace
+*.smap
+
+buildroot/
+buildroot-RAP/
diff --git a/doc/org.eclipse.emf.parsley.doc/.classpath b/doc/org.eclipse.emf.parsley.doc/.classpath
new file mode 100644
index 000000000..333aeeadd
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="xdoc"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/doc/org.eclipse.emf.parsley.doc/.gitignore b/doc/org.eclipse.emf.parsley.doc/.gitignore
new file mode 100644
index 000000000..7f175412f
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/.gitignore
@@ -0,0 +1,2 @@
+manual
+/images
diff --git a/doc/org.eclipse.emf.parsley.doc/.project b/doc/org.eclipse.emf.parsley.doc/.project
new file mode 100644
index 000000000..d863d1db0
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/.project
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.doc</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>net.sourceforge.texlipse.builder.TexlipseBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>net.sourceforge.texlipse.builder.TexlipseNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/doc/org.eclipse.emf.parsley.doc/META-INF/MANIFEST.MF b/doc/org.eclipse.emf.parsley.doc/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..b90b3f48b
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.emf.parsley.doc
+Bundle-SymbolicName: org.eclipse.emf.parsley.doc;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-Vendor: My Company
+Require-Bundle: org.eclipse.help;bundle-version="3.5.0",
+ org.eclipse.xtext.xdoc.generator;bundle-version="0.1.0";resolution:=optional,
+ org.eclipse.emf.parsley;bundle-version="0.1.0";resolution:=optional,
+ org.eclipse.emf.parsley.editors;bundle-version="0.1.0",
+ org.eclipse.emf.parsley.views;bundle-version="0.1.0",
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.4.2,2.5.0)",
+ org.eclipse.xtext.xbase;bundle-version="[2.4.2,2.5.0)"
+
diff --git a/doc/org.eclipse.emf.parsley.doc/attempts/customBuildCallbacks.xml b/doc/org.eclipse.emf.parsley.doc/attempts/customBuildCallbacks.xml
new file mode 100644
index 000000000..a37a75e63
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/attempts/customBuildCallbacks.xml
@@ -0,0 +1,9 @@
+<project name="Build specific targets and properties" default="noDefault">
+ <target name="post.build.jars">
+ <antcall target="build.index"/>
+ </target>
+
+ <target name="build.index" description="Builds search index for the plug-in: org.eclipse.someplugin.doc.user." if="eclipse.running">
+ <help.buildHelpIndex manifest="plugin.xml" destination="."/>
+ </target>
+</project>
diff --git a/doc/org.eclipse.emf.parsley.doc/build.properties b/doc/org.eclipse.emf.parsley.doc/build.properties
new file mode 100644
index 000000000..785200406
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/build.properties
@@ -0,0 +1,2 @@
+bin.includes = contents/,\
+ plugin.xml
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/00-Main.html b/doc/org.eclipse.emf.parsley.doc/contents/00-Main.html
new file mode 100644
index 000000000..8c2dab466
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/00-Main.html
@@ -0,0 +1,161 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" >
+<title>Emf Parsley Guide</title>
+
+<link href="book.css" rel="stylesheet" type="text/css">
+<link href="code.css" rel="stylesheet" type="text/css">
+<link rel="home" href="00-Main.html" title="">
+</head>
+<body>
+<h1>Emf Parsley Guide</h1>
+<ol><li><a href="00-Main_4.html#Emf%20Parsley%20Guide_4">Documentation</a>
+<ol> <li><a href="01-Introduction.html#Introduction">Introduction</a>
+ <ol> <li><a href="01-Introduction.html#reflectiveComponents">Reflective Components</a>
+ </li>
+ <li><a href="01-Introduction.html#easyToCustomize">Easy to Customize</a>
+ </li>
+ <li><a href="01-Introduction.html#architecture">Architecture</a>
+ </li>
+ </ol></li>
+ <li><a href="02-GettingStarted.html#GettingStarted">Getting Started</a>
+ <ol> <li><a href="02-GettingStarted.html#Installation">Installation</a>
+ </li>
+ <li><a href="02-GettingStarted.html#FirstExample">First Example</a>
+ </li>
+ <li><a href="02-GettingStarted.html#RCPMail">RCP Mail Example</a>
+ </li>
+ </ol></li>
+ <li><a href="03-Components.html#Components">Components</a>
+ <ol> <li><a href="03-Components.html#FormComponent">Form Component</a>
+ <ol> <li><a href="03-Components.html#Form_Customizations">Form Customizations</a>
+ </li>
+ </ol></li>
+ <li><a href="03-Components.html#TreeComponent">Tree Component</a>
+ <ol> <li><a href="03-Components.html#Tree_Customizations">Tree Customizations</a>
+ </li>
+ </ol></li>
+ <li><a href="03-Components.html#TreeFormComponent">Tree Form Component</a>
+ <ol> <li><a href="03-Components.html#TreeForm_Customizations">Tree Form Customization</a>
+ </li>
+ </ol></li>
+ <li><a href="03-Components.html#TableComponent">Table Component</a>
+ </li>
+ </ol></li>
+ <li><a href="04-Customization.html#Customization">Customization</a>
+ <ol> <li><a href="04-Customization.html#ResourceManagers">Managing Resources</a>
+ <ol> <li><a href="04-Customization.html#ResourceLoader">Resource Loader</a>
+ </li>
+ <li><a href="04-Customization.html#EmptyResourceInitializer">Empty Resource Initializer</a>
+ </li>
+ <li><a href="04-Customization.html#EditingDomainFinder">Editing Domain Finder</a>
+ </li>
+ <li><a href="04-Customization.html#ResourceSaveManager">Resource Save Manager</a>
+ <ol> <li><a href="04-Customization.html#ValidateResourceSaveManager">Validate Resource Save Manager</a>
+ </li>
+ </ol></li>
+ </ol></li>
+ <li><a href="04-Customization.html#Providers">Providers</a>
+ <ol> <li><a href="04-Customization.html#FeaturesProvider">Features Provider</a>
+ <ol> <li><a href="04-Customization.html#FeatureProvider1">Prima versione</a>
+ </li>
+ <li><a href="04-Customization.html#FeatureProvider2">Seconda versione</a>
+ </li>
+ <li><a href="04-Customization.html#FeaturesColumnProvider">Features Column Provider</a>
+ </li>
+ </ol></li>
+ <li><a href="04-Customization.html#PropertyDescriptionProvider">Property Description Provider</a>
+ <ol> <li><a href="04-Customization.html#FormPropertyDescriptionProvider">Form Property Description Provider</a>
+ </li>
+ </ol></li>
+ <li><a href="04-Customization.html#ViewerLabelProvider">Viewer Label Provider</a>
+ </li>
+ <li><a href="04-Customization.html#ViewerContentProvider">Viewer Content Provider</a>
+ </li>
+ <li><a href="04-Customization.html#ProposalProvider">Proposal Provider</a>
+ </li>
+ <li><a href="04-Customization.html#ViewerContextMenuFactory">Viewer Context Menu Factory</a>
+ </li>
+ <li><a href="04-Customization.html#TableColumnLabelProvider">Table Column Label Provider</a>
+ </li>
+ </ol></li>
+ <li><a href="04-Customization.html#SelectionAndMenu">Selection And Menu</a>
+ <ol> <li><a href="04-Customization.html#EmfSelectionHelper">Emf Selection Helper</a>
+ </li>
+ </ol></li>
+ <li><a href="04-Customization.html#Builders">Builders</a>
+ <ol> <li><a href="04-Customization.html#TableViewerBuilder">Table Viewer Builder</a>
+ </li>
+ <li><a href="04-Customization.html#TableViewerColumnBuilder">Table Viewer Column Builder</a>
+ <ol> <li><a href="04-Customization.html#TableViewerEditableColumnBuilder">Table Viewer Editable Column Builder</a>
+ </li>
+ </ol></li>
+ </ol></li>
+ <li><a href="04-Customization.html#Factories">Factories</a>
+ <ol> <li><a href="04-Customization.html#FormFactory">Form Factory</a>
+ </li>
+ <li><a href="04-Customization.html#JfaceProviderFactory">Jface Provider Factory</a>
+ </li>
+ <li><a href="04-Customization.html#FormControlFactory">Form Control Factory</a>
+ </li>
+ <li><a href="04-Customization.html#TreeFormFactory">Tree Form Factory</a>
+ </li>
+ <li><a href="04-Customization.html#ViewerFactory">Viewer Factory</a>
+ </li>
+ <li><a href="04-Customization.html#AdapterFactoryEditingDomain">Viewer Factory</a>
+ </li>
+ </ol></li>
+ <li><a href="04-Customization.html#Viewers">Viewers</a>
+ <ol> <li><a href="04-Customization.html#ViewerInitializer">Viewer Initializer</a>
+ </li>
+ </ol></li>
+ </ol></li>
+ <li><a href="05-DSL.html#DSL">EMF Components DSL</a>
+ <ol> <li><a href="05-DSL.html#xbase">Xbase features</a>
+ </li>
+ </ol></li>
+ <li><a href="06-AdvancedComponents.html#AdvancedComponents">Advanced Components</a>
+ </li>
+ <li><a href="07-Eclipse4.html#Eclipse4">Eclipse 4</a>
+ <ol> <li><a href="07-Eclipse4.html#GetFirstExample">First Example Setup</a>
+ </li>
+ <li><a href="07-Eclipse4.html#PrepareForEclipse4Application">Preparing for a pure Eclipse 4 Application</a>
+ </li>
+ <li><a href="07-Eclipse4.html#CreateEclipse4Application">Create an Eclipse 4 Application</a>
+ </li>
+ <li><a href="07-Eclipse4.html#Eclipse4ApplicationAndEMFComponents">Using an EMF Parsley TreeComposite into an Eclipse 4 Part</a>
+ </li>
+ <li><a href="07-Eclipse4.html#Eclipse4Save">Adding the dirty state and Save command</a>
+ </li>
+ </ol></li>
+</ol></li>
+<li><a href="00-Main_5.html#Emf%20Parsley%20Guide_5">Appendix</a>
+<ol> <li><a href="GettingSources.html#GettingSources">Getting Sources</a>
+ <ol> <li><a href="GettingSources.html#InstallBuckminster">Install Buckminster in the IDE</a>
+ </li>
+ <li><a href="GettingSources.html#PrepareTP">Prepare an empty target platform</a>
+ </li>
+ <li><a href="GettingSources.html#MaterializeWP">Materialize the Workspace</a>
+ <ol> <li><a href="GettingSources.html#CustomizeProperties">(Optional) Customize some Properties</a>
+ </li>
+ <li><a href="GettingSources.html#StartMaterialization">Start Materialization</a>
+ </li>
+ </ol></li>
+ </ol></li>
+ <li><a href="samples.html#samples">Xdoc Samples</a>
+ <ol> <li><a href="samples.html#Links">References</a>
+ </li>
+ <li><a href="samples.html#CodeSections">Code Sections</a>
+ </li>
+ <li><a href="samples.html#Lists">Lists and Tables</a>
+ </li>
+ <li><a href="samples.html#Tables">Tables</a>
+ </li>
+ <li><a href="samples.html#TODO">TODO</a>
+ </li>
+ <li><a href="samples.html#Images">Images</a>
+ </li>
+ </ol></li>
+</ol></li>
+</ol></body>
+</html>
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/00-Main_4.html b/doc/org.eclipse.emf.parsley.doc/contents/00-Main_4.html
new file mode 100644
index 000000000..933bdfc5f
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/00-Main_4.html
@@ -0,0 +1,132 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" >
+<title>Documentation</title>
+
+<link href="book.css" rel="stylesheet" type="text/css">
+<link href="code.css" rel="stylesheet" type="text/css">
+<link rel="home" href="00-Main.html" title="">
+</head>
+<body>
+<a name="Emf%20Parsley%20Guide_4"></a>
+<h1>Documentation</h1>
+<ol><li><a href="01-Introduction.html#Introduction">Introduction</a>
+<ol> <li><a href="01-Introduction.html#reflectiveComponents">Reflective Components</a>
+ </li>
+ <li><a href="01-Introduction.html#easyToCustomize">Easy to Customize</a>
+ </li>
+ <li><a href="01-Introduction.html#architecture">Architecture</a>
+ </li>
+</ol></li>
+<li><a href="02-GettingStarted.html#GettingStarted">Getting Started</a>
+<ol> <li><a href="02-GettingStarted.html#Installation">Installation</a>
+ </li>
+ <li><a href="02-GettingStarted.html#FirstExample">First Example</a>
+ </li>
+ <li><a href="02-GettingStarted.html#RCPMail">RCP Mail Example</a>
+ </li>
+</ol></li>
+<li><a href="03-Components.html#Components">Components</a>
+<ol> <li><a href="03-Components.html#FormComponent">Form Component</a>
+ <ol> <li><a href="03-Components.html#Form_Customizations">Form Customizations</a>
+ </li>
+ </ol></li>
+ <li><a href="03-Components.html#TreeComponent">Tree Component</a>
+ <ol> <li><a href="03-Components.html#Tree_Customizations">Tree Customizations</a>
+ </li>
+ </ol></li>
+ <li><a href="03-Components.html#TreeFormComponent">Tree Form Component</a>
+ <ol> <li><a href="03-Components.html#TreeForm_Customizations">Tree Form Customization</a>
+ </li>
+ </ol></li>
+ <li><a href="03-Components.html#TableComponent">Table Component</a>
+ </li>
+</ol></li>
+<li><a href="04-Customization.html#Customization">Customization</a>
+<ol> <li><a href="04-Customization.html#ResourceManagers">Managing Resources</a>
+ <ol> <li><a href="04-Customization.html#ResourceLoader">Resource Loader</a>
+ </li>
+ <li><a href="04-Customization.html#EmptyResourceInitializer">Empty Resource Initializer</a>
+ </li>
+ <li><a href="04-Customization.html#EditingDomainFinder">Editing Domain Finder</a>
+ </li>
+ <li><a href="04-Customization.html#ResourceSaveManager">Resource Save Manager</a>
+ <ol> <li><a href="04-Customization.html#ValidateResourceSaveManager">Validate Resource Save Manager</a>
+ </li>
+ </ol></li>
+ </ol></li>
+ <li><a href="04-Customization.html#Providers">Providers</a>
+ <ol> <li><a href="04-Customization.html#FeaturesProvider">Features Provider</a>
+ <ol> <li><a href="04-Customization.html#FeatureProvider1">Prima versione</a>
+ </li>
+ <li><a href="04-Customization.html#FeatureProvider2">Seconda versione</a>
+ </li>
+ <li><a href="04-Customization.html#FeaturesColumnProvider">Features Column Provider</a>
+ </li>
+ </ol></li>
+ <li><a href="04-Customization.html#PropertyDescriptionProvider">Property Description Provider</a>
+ <ol> <li><a href="04-Customization.html#FormPropertyDescriptionProvider">Form Property Description Provider</a>
+ </li>
+ </ol></li>
+ <li><a href="04-Customization.html#ViewerLabelProvider">Viewer Label Provider</a>
+ </li>
+ <li><a href="04-Customization.html#ViewerContentProvider">Viewer Content Provider</a>
+ </li>
+ <li><a href="04-Customization.html#ProposalProvider">Proposal Provider</a>
+ </li>
+ <li><a href="04-Customization.html#ViewerContextMenuFactory">Viewer Context Menu Factory</a>
+ </li>
+ <li><a href="04-Customization.html#TableColumnLabelProvider">Table Column Label Provider</a>
+ </li>
+ </ol></li>
+ <li><a href="04-Customization.html#SelectionAndMenu">Selection And Menu</a>
+ <ol> <li><a href="04-Customization.html#EmfSelectionHelper">Emf Selection Helper</a>
+ </li>
+ </ol></li>
+ <li><a href="04-Customization.html#Builders">Builders</a>
+ <ol> <li><a href="04-Customization.html#TableViewerBuilder">Table Viewer Builder</a>
+ </li>
+ <li><a href="04-Customization.html#TableViewerColumnBuilder">Table Viewer Column Builder</a>
+ <ol> <li><a href="04-Customization.html#TableViewerEditableColumnBuilder">Table Viewer Editable Column Builder</a>
+ </li>
+ </ol></li>
+ </ol></li>
+ <li><a href="04-Customization.html#Factories">Factories</a>
+ <ol> <li><a href="04-Customization.html#FormFactory">Form Factory</a>
+ </li>
+ <li><a href="04-Customization.html#JfaceProviderFactory">Jface Provider Factory</a>
+ </li>
+ <li><a href="04-Customization.html#FormControlFactory">Form Control Factory</a>
+ </li>
+ <li><a href="04-Customization.html#TreeFormFactory">Tree Form Factory</a>
+ </li>
+ <li><a href="04-Customization.html#ViewerFactory">Viewer Factory</a>
+ </li>
+ <li><a href="04-Customization.html#AdapterFactoryEditingDomain">Viewer Factory</a>
+ </li>
+ </ol></li>
+ <li><a href="04-Customization.html#Viewers">Viewers</a>
+ <ol> <li><a href="04-Customization.html#ViewerInitializer">Viewer Initializer</a>
+ </li>
+ </ol></li>
+</ol></li>
+<li><a href="05-DSL.html#DSL">EMF Components DSL</a>
+<ol> <li><a href="05-DSL.html#xbase">Xbase features</a>
+ </li>
+</ol></li>
+<li><a href="06-AdvancedComponents.html#AdvancedComponents">Advanced Components</a>
+</li>
+<li><a href="07-Eclipse4.html#Eclipse4">Eclipse 4</a>
+<ol> <li><a href="07-Eclipse4.html#GetFirstExample">First Example Setup</a>
+ </li>
+ <li><a href="07-Eclipse4.html#PrepareForEclipse4Application">Preparing for a pure Eclipse 4 Application</a>
+ </li>
+ <li><a href="07-Eclipse4.html#CreateEclipse4Application">Create an Eclipse 4 Application</a>
+ </li>
+ <li><a href="07-Eclipse4.html#Eclipse4ApplicationAndEMFComponents">Using an EMF Parsley TreeComposite into an Eclipse 4 Part</a>
+ </li>
+ <li><a href="07-Eclipse4.html#Eclipse4Save">Adding the dirty state and Save command</a>
+ </li>
+</ol></li>
+</ol></body>
+</html>
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/00-Main_5.html b/doc/org.eclipse.emf.parsley.doc/contents/00-Main_5.html
new file mode 100644
index 000000000..46b658e3e
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/00-Main_5.html
@@ -0,0 +1,40 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" >
+<title>Appendix</title>
+
+<link href="book.css" rel="stylesheet" type="text/css">
+<link href="code.css" rel="stylesheet" type="text/css">
+<link rel="home" href="00-Main.html" title="">
+</head>
+<body>
+<a name="Emf%20Parsley%20Guide_5"></a>
+<h1>Appendix</h1>
+<ol><li><a href="GettingSources.html#GettingSources">Getting Sources</a>
+<ol> <li><a href="GettingSources.html#InstallBuckminster">Install Buckminster in the IDE</a>
+ </li>
+ <li><a href="GettingSources.html#PrepareTP">Prepare an empty target platform</a>
+ </li>
+ <li><a href="GettingSources.html#MaterializeWP">Materialize the Workspace</a>
+ <ol> <li><a href="GettingSources.html#CustomizeProperties">(Optional) Customize some Properties</a>
+ </li>
+ <li><a href="GettingSources.html#StartMaterialization">Start Materialization</a>
+ </li>
+ </ol></li>
+</ol></li>
+<li><a href="samples.html#samples">Xdoc Samples</a>
+<ol> <li><a href="samples.html#Links">References</a>
+ </li>
+ <li><a href="samples.html#CodeSections">Code Sections</a>
+ </li>
+ <li><a href="samples.html#Lists">Lists and Tables</a>
+ </li>
+ <li><a href="samples.html#Tables">Tables</a>
+ </li>
+ <li><a href="samples.html#TODO">TODO</a>
+ </li>
+ <li><a href="samples.html#Images">Images</a>
+ </li>
+</ol></li>
+</ol></body>
+</html>
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/01-Introduction.html b/doc/org.eclipse.emf.parsley.doc/contents/01-Introduction.html
new file mode 100644
index 000000000..641cd8867
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/01-Introduction.html
@@ -0,0 +1,33 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" >
+<title>Introduction</title>
+
+<link href="book.css" rel="stylesheet" type="text/css">
+<link href="code.css" rel="stylesheet" type="text/css">
+<link rel="home" href="xtext.html" title="">
+</head>
+<body>
+<a name="Introduction"></a>
+<h1>Introduction</h1>
+<p>
+Emf Parsley is a lightweight framework that allows easy and quick development
+of EMF-based Applications. It can be configured to use all kind of EMF persistence
+implementations (XMI, Teneo, CDO).
+</p>
+<p>
+It aims at providing a set of Components like Trees, Tables and Detail Forms
+that manage the model with the introspective EMF capabilities.
+Using these components you can easily build forms, viewer or editors.
+The framework provides basic UI implementations which are customizable
+with Injection mechanism
+(based on <a href="http://code.google.com/p/google-guice">Google Guice</a>).
+</p>
+<a name="reflectiveComponents"></a>
+<h2>Reflective Components</h2>
+<a name="easyToCustomize"></a>
+<h2>Easy to Customize</h2>
+<a name="architecture"></a>
+<h2>Architecture</h2>
+</body>
+</html>
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/02-GettingStarted.html b/doc/org.eclipse.emf.parsley.doc/contents/02-GettingStarted.html
new file mode 100644
index 000000000..0e3f10ad3
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/02-GettingStarted.html
@@ -0,0 +1,437 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" >
+<title>Getting Started</title>
+
+<link href="book.css" rel="stylesheet" type="text/css">
+<link href="code.css" rel="stylesheet" type="text/css">
+<link rel="home" href="xtext.html" title="">
+</head>
+<body>
+<a name="GettingStarted"></a>
+<h1>Getting Started</h1>
+<p>
+To get started, you should first download "Eclipse Modeling Tools" from <a href="http://www.eclipse.org/downloads/">Eclipse
+Downloads</a>
+<div class="image" >
+<img src="images/eclipseModelingTools.png" class=" "
+/>
+<div class="caption">
+</div>
+</div>
+
+This will ensure you have EMF and related Tools installed and ready to go.
+</p>
+<a name="Installation"></a>
+<h2>Installation</h2>
+<p>
+Now select "Help" -&gt; "Install New Software..." and in the "Work with:" field insert the EMF Components update
+site <a href="http://www.rcp-vision.com/emf-components/updates/">http://www.rcp-vision.com/emf-components/updates/</a>
+and install all features.
+Although sources are not strictly required, it might help when using EMF Components
+to have a look at its sources.
+</p>
+<p>
+<div class="image" >
+<img src="images/emf-components-update-site.png" class=" "
+/>
+<div class="caption">
+</div>
+</div>
+</p>
+<a name="FirstExample"></a>
+<h2>First Example</h2>
+<p>
+The purpose of this first example is to make use of the classical EMF Library Model example and
+create a view for editing such models using an EMF Components enabled plug-in.
+</p>
+<p>
+So let&apos;s start by creating the model plug-in with
+</p>
+<p>
+<ol>
+ <li>
+ File -&gt; New... -&gt; Example...
+ </li>
+ <li>
+ from Category "Eclipse Modeling Framework", select "Extended Library Model Example"
+ </li>
+ <li>
+ press Next and Finish
+ </li>
+</ol>
+</p>
+<p>
+You will end up with three plug-ins:
+</p>
+<p>
+<ul>
+ <li>
+ org.eclipse.emf.examples.library (the model plug-in)
+ </li>
+ <li>
+ org.eclipse.emf.examples.library.edit (the edit plug-in)
+ </li>
+ <li>
+ org.eclipse.emf.examples.library.editor (the editor plug-in)
+ </li>
+</ul>
+</p>
+<p>
+We only need the first plugin, so you might want to remove the .edit and .editor plugins.
+</p>
+<p>
+Now you can create your first example with the appropriate wizard.
+</p>
+<p>
+<ol>
+ <li>
+ select "File" -&gt; "New" -&gt; "Project..."
+ </li>
+ <li>
+ from the "Emf Parsley" category select "Emf Parsley Dsl based Project"
+ </li>
+ <li>
+ click "Next"
+ </li>
+ <li>
+ give a name to the project (e.g. "org.eclipse.emf.parsley.examples.firstexample")
+ </li>
+ <li>
+ click "Finish"
+ </li>
+</ol>
+
+
+The generated project has some classes and a <em>module.parlsey</em> file, which opens automatically.
+Just type the following content into the {} block (note that context assist is available)
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+<span class="keyword">parts</span>&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">viewpart</span>&nbsp;org.eclipse.emf.parsley.examples.firstexample.view.library.treeform&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">viewname</span>&nbsp;<span class="string">"My&nbsp;Library&nbsp;Tree&nbsp;Form"</span><br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">viewclass</span>&nbsp;<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+}<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+Here above we have just declared a view part with
+
+<ol>
+ <li>
+ id <em>"org.eclipse.emf.parsley.examples.firstexample.view.library.treeform"</em>
+ </li>
+ <li>
+ name <em>"Library Tree Form"</em>
+ </li>
+ <li>
+ class: not yet set, we are going to create
+ <em>"org.eclipse.emf.parsley.examples.firstexample.views.LibraryTreeFormView"</em>
+ </li>
+</ol>
+</p>
+<p>
+So there is still an error, in fact we need to create the declared class.
+<em>Suggestion:</em> Just copy the above qualified class name (<em>"org.eclipse.emf.parsley.examples.firstexample.views.LibraryTreeFormView"</em>),
+select the project, right-click and select File -&gt; New -&gt; Class. Now paste the clipboard content into <em>"Name:"</em> field: the
+package and class name will be automatically splitted into right fields. Then click <em>"Finish"</em>.
+</p>
+<p>
+Now modify the view class code with this content:
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+<span class="keyword">import</span>&nbsp;org.eclipse.emf.parsley.views.AbstractSaveableTreeFormView;<br/>
+<span class="keyword">import</span>&nbsp;org.eclipse.emf.common.util.URI;<br/>
+<br/>
+<span class="keyword">public</span>&nbsp;<span class="keyword">class</span>&nbsp;LibraryTreeFormView&nbsp;<span class="keyword">extends</span>&nbsp;AbstractSaveableTreeFormView&nbsp;{<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">protected</span>&nbsp;URI&nbsp;createResourceURI()&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span>&nbsp;URI.createFileURI(&nbsp;System.getProperty(<span class="string">"user.home"</span>)&nbsp;+&nbsp;<span class="string">"/MyLibrary.library"</span>&nbsp;);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+<br/>
+}<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+Now get back to <em>module.parlsey</em> file, go just after <em>"viewclass"</em> keyword, type <em>"LibraryTreeFormView"</em>
+and <em>Ctrl-Space</em>: the content assist will set automatically the correct qualified name
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+<span class="keyword">viewclass</span>&nbsp;org.eclipse.emf.parsley.examples.firstexample.views.LibraryTreeFormView<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+when you save the above file you will notice that a new file (<em>"plugin.xml_emfparsley_gen"</em>)
+is generated into the root folder of your project. Just copy this file into <em>"plugin.xml"</em>.
+</p>
+<p>
+Let&apos;s focus briefly on the above <em>createResourceURI()</em> method: our goal is allowing to manage
+a library model instance which persists on a EMF Resource.
+In this example we choose to use the EMF default persistence (XMI), but you can provide any URI
+(e.g. using Teneo, CDO or any other EMF Resource Persistence implementation)
+In particular here we choose to persist the Resource in a XMI file named <em>"MyLibrary.library"</em> into the user home
+folder (you might want to change it with any other path).
+</p>
+<p>
+We need a <em>Dependency</em> from the model plug-in: so open <em>MANIFEST.MF</em> file, go to <em>Dependencies</em>
+tab, press <em>"Add..."</em> button in <em>"Required Plug-ins"</em> section and insert <em>"org.eclipse.emf.examples.library"</em>
+among dependencies.
+</p>
+<p>
+Before executing this code we need to do some little more work in order to initialize the Resource.
+</p>
+<p>
+An easy way to overcome this issue can be the following:
+</p>
+<p>
+<ol>
+ <li>
+ open the class *GuiceModule (FirstexampleGuiceModule in this example) that the wizard created for you.
+ Note that this is a key class for all customizations; it allows to override several methods in order to provide custom behaviors
+ and implementations.
+ </li>
+ <li>
+ override method <em>bindEmptyResourceInitializer()</em> providing a class for Resource initialization
+
+ <div class="literallayout">
+ <div class="incode">
+ <p class="code">
+ <span class="keyword">public</span>&nbsp;Class&lt;?&nbsp;<span class="keyword">extends</span>&nbsp;EmptyResourceInitializer&gt;&nbsp;bindEmptyResourceInitializer()&nbsp;{<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span>&nbsp;LibraryEmptyResourceInitializer.<span class="keyword">class</span>;<br/>
+ }<br/>
+ </p>
+ </div>
+ </div>
+
+ </li>
+ <li>
+ create a new class <em>LibraryEmptyResourceInitializer</em> extending from <em>EmptyResourceInitializer</em> for Resource initialization
+ <div class="literallayout">
+ <div class="incode">
+ <p class="code">
+ <span class="keyword">import</span>&nbsp;org.eclipse.emf.parsley.resource.EmptyResourceInitializer;<br/>
+ <span class="keyword">import</span>&nbsp;org.eclipse.emf.ecore.resource.Resource;<br/>
+ <span class="keyword">import</span>&nbsp;org.eclipse.emf.examples.extlibrary.EXTLibraryFactory;<br/>
+ <span class="keyword">import</span>&nbsp;org.eclipse.emf.examples.extlibrary.Library;<br/>
+ <br/>
+ <span class="keyword">public</span>&nbsp;<span class="keyword">class</span>&nbsp;LibraryEmptyResourceInitializer&nbsp;&nbsp;<span class="keyword">extends</span>&nbsp;EmptyResourceInitializer&nbsp;{&nbsp;<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;<br/>
+ &nbsp;&nbsp;&nbsp;<span class="keyword">public</span>&nbsp;<span class="keyword">void</span>&nbsp;initialize(Resource&nbsp;resource)&nbsp;{&nbsp;<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">super</span>.initialize(resource);&nbsp;<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Library&nbsp;library&nbsp;=&nbsp;EXTLibraryFactory.eINSTANCE.createLibrary();&nbsp;<br/>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resource.getContents().add(library);&nbsp;<br/>
+ &nbsp;&nbsp;&nbsp;}&nbsp;<br/>
+ <br/>
+ }&nbsp;<br/>
+ </p>
+ </div>
+ </div>
+
+ The method <em>initialize()</em> will be executed only when the Resource is empty
+ (i.e., it has no contents).
+ </li>
+</ol>
+</p>
+<p>
+now get back to the <em>MANIFEST.MF</em> and run the example
+</p>
+<p>
+<div class="image" >
+<img src="images/first-example-launch.png" class=" "
+/>
+<div class="caption">
+</div>
+</div>
+</p>
+<p>
+As an Eclipse RCP developer you know, of course, that this will start another Eclipse instance (unless
+you add an Application plug-in to the launch or define an Application in the current plug-in).
+</p>
+<p>
+In this second Eclipse instance you can show the View in this way:
+<ol>
+ <li>
+ <em>Window -&gt; Show View -&gt; Other...</em>
+ </li>
+ <li>
+ from Category "Emf Parsley", select "My Library Tree Form"
+ </li>
+ <li>
+ press <em>OK</em>
+ </li>
+</ol>
+</p>
+<p>
+<div class="image" >
+<img src="images/first-example-run.png" class=" "
+/>
+<div class="caption">
+</div>
+</div>
+</p>
+<p>
+With this simple view you can start editing the model instance. For example you can set the <em>"name"</em>
+field; as soon as you start typing characters into this field you will notice that:
+<ol>
+ <li>
+ the View turns to a <em>"dirty"</em> state (an asterisk symbol appears on the view tab)
+ </li>
+ <li>
+ the <em>"Save"</em> toolbar button is enabled
+ </li>
+ <li>
+ the typed characters are reflected into the label correspondent to the Library icon
+ </li>
+</ol>
+</p>
+<p>
+if you now perform a <em>"Save"</em> action the persistence mechanism will trigger and you will see that file
+<span class="inlinecode">&lt;user.home&gt;/MyLibrary.library</span>
+is being created on the file system. From now on, this file will keep the state of the model object whenever
+you change and save it.
+</p>
+<p>
+To create a Writer into the Library just right-click on the Library object and select <em>New Child -&gt; Writer</em>
+</p>
+<p>
+<div class="image" >
+<img src="images/createWriter.png" class=" "
+/>
+<div class="caption">
+</div>
+</div>
+</p>
+<p>
+Please note that you might see a slightly different content in the above context-menu in case you deleted
+the .edit plugin when creating the model (e.g. <em>"Writers Writer"</em> instead of <em>"Writer"</em>, <em>"Stock Book"</em> instead of <em>"Book"</em> and
+similar (this is because with EMF it is possible to customize labels also via .edit plugin).
+</p>
+<p>
+Now set for instance the writer <em>"name"</em> field and save.
+Now just play around creating Books, associating them to Writers and so on.
+As you can see you can entirely manage the EMF model instance: creating, modifying and deleting elements.
+</p>
+<p>
+Whenever the current selection on the upper side of the view changes, then the lower side shows the detail
+of this selection.
+</p>
+<p>
+However, up to this point, you have no control over the field to be shown and its order; for example
+you may want just the <em>"name"</em> attribute for the Library and <em>"name", "address" and "books"</em> attributes
+for Writers and maybe <em>"title", "authors" and "category"</em> for Books.
+</p>
+<p>
+Well, it&apos;s indeed very easy to obtain this: just edit the <em>module.parsley</em> file,
+adding the following import (without ending line with ";")
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+<span class="keyword">import</span>&nbsp;org.eclipse.emf.examples.extlibrary.*<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+and then defining the features to show
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+<span class="keyword">module</span>&nbsp;...&nbsp;{<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">parts</span>&nbsp;{&nbsp;<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...&nbsp;&nbsp;&nbsp;&nbsp;<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">featuresProvider</span>&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">features</span>&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Library&nbsp;-&gt;&nbsp;name<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writer&nbsp;-&gt;&nbsp;name,&nbsp;address,&nbsp;books<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Book&nbsp;-&gt;&nbsp;author,&nbsp;title,&nbsp;category<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+}<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+Remeber that code completion is available, just exploit it since it helps a lot.
+</p>
+<p>
+If you restart now the application you will see that, when selecting an object, only the declared attributes
+will be shown. Furthermore, they are shown in the specified order.
+</p>
+<p>
+Did you run the application in Debug mode? Well, then you can change fields and order, save and see the
+changes without even restarting the application.
+</p>
+<p>
+Do you want to change text used for attribute labels in the detail? Just add the following:
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+<span class="keyword">propertyDescriptionProvider</span>&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">text</span>&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Book&nbsp;:&nbsp;author&nbsp;-&gt;&nbsp;<span class="string">&apos;Wrote&nbsp;by:&apos;</span><br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writer&nbsp;:&nbsp;name&nbsp;-&gt;&nbsp;<span class="string">&apos;Name:&apos;</span><br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+}<br/>
+</p>
+</div>
+</div>
+
+
+Or do you want to change the label shown on the tree nodes on the upper side and as detail title?
+Maybe want to format the book label like this?
+
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+<span class="keyword">labelProvider</span>&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">text</span>&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Book&nbsp;b&nbsp;-&gt;&nbsp;<span class="string">&apos;"&apos;</span>&nbsp;+&nbsp;b.title&nbsp;+&nbsp;<span class="string">&apos;"&apos;</span>&nbsp;+<span class="string">&apos;&nbsp;(by&nbsp;&apos;</span>+&nbsp;b.author.name&nbsp;+&nbsp;<span class="string">&apos;)&apos;</span><br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+}<br/>
+</p>
+</div>
+</div>
+
+
+<div class="image" >
+<img src="images/labelCustomization.png" class=" "
+/>
+<div class="caption">
+</div>
+</div>
+
+
+
+
+
+</p>
+<a name="RCPMail"></a>
+<h2>RCP Mail Example</h2>
+</body>
+</html>
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/03-Components.html b/doc/org.eclipse.emf.parsley.doc/contents/03-Components.html
new file mode 100644
index 000000000..338c1a983
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/03-Components.html
@@ -0,0 +1,184 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" >
+<title>Components</title>
+
+<link href="book.css" rel="stylesheet" type="text/css">
+<link href="code.css" rel="stylesheet" type="text/css">
+<link rel="home" href="xtext.html" title="">
+</head>
+<body>
+<a name="Components"></a>
+<h1>Components</h1>
+<p>
+Here we list the behaviors that can be customized for all components.
+</p>
+<p>
+<ul>
+ <li>
+ If you need a machanism to fill some data for the first time you use a model, you can provide
+ a specific implementation of <a href="04-Customization.html#EmptyResourceInitializer" title="Go to &quot;Empty Resource Initializer&quot;">Emty Resource Initializer</a>.
+ </li>
+ <li>
+ If you want to interact with Resource Loading, you can provide a specific <a href="04-Customization.html#ResourceLoader" title="Go to &quot;Resource Loader&quot;">Resource
+ Loader</a>
+ </li>
+</ul>
+</p>
+<p>
+For what concern saving objects, there are some specific parts that can be customized:
+</p>
+<p>
+<ul>
+ <li>
+ <a href="04-Customization.html#ResourceSaveManager" title="Go to &quot;Resource Save Manager&quot;">Resource Save Manager</a>, if you want to manage the save.
+ </li>
+ <li>
+ <a href="04-Customization.html#ResourceSaveManager" title="Go to &quot;Resource Save Manager&quot;">Resource Save Manager</a>, if you want to manage the save.
+ </li>
+ <li>
+ In some cases, it can be usefull to specify an editing domain to work with. In this case it can be used the <a href="04-Customization.html#EditingDomainFinder" title="Go to &quot;Editing Domain Finder&quot;">Editing Domain Finder</a>.
+ </li>
+</ul>
+</p>
+<p>
+The following sections describe the basic components provided, that are the foundations for all parts built upon <em>Emf Parsley</em>.
+For each component we present a set of customizations, just to get an idea of how it works. You can refer
+to <a href="04-Customization.html#Customization" title="Go to &quot;Customization&quot;">Customization Section</a> for a complete list.
+</p>
+<a name="FormComponent"></a>
+<h2>Form Component</h2>
+<p>
+The <em>Form Component</em> can be used to rapresent an <a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EObject.html" title="View JavaDoc"><abbr title="org.eclipse.emf.ecore.EObject" >EObject</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/ecore/EObject.java" title="View Source Code" >(src)</a> in a row-oriented form,
+like in the image above.
+</p>
+<p>
+<div class="image" >
+<img src="images/03-components-form.png" class=" "
+/>
+<div class="caption">
+</div>
+</div>
+</p>
+<p>
+For each <a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EStructuralFeature.html" title="View JavaDoc"><abbr title="org.eclipse.emf.ecore.EStructuralFeature" >EStructuralFeature</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/ecore/EStructuralFeature.java" title="View Source Code" >(src)</a> defined for the <a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EClass.html" title="View JavaDoc"><abbr title="org.eclipse.emf.ecore.EClass" >EClass</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/ecore/EClass.java" title="View Source Code" >(src)</a>
+(that is the type of the object to rapresent), the component builds a row with a
+<em>label</em> with the name of the feature and a <em>control</em> to access the data. It can be used the factory
+to create such a component, like in the code below.
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+formComposite&nbsp;=&nbsp;formFactory.createFormDetailComposite(parent,&nbsp;SWT.NONE);<br/>
+formComposite.init(eObject);<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+The <em>form component</em> can be customized in many way, in particular the feature list, the labels and the controls.
+</p>
+<a name="Form_Customizations"></a>
+<h3>Form Customizations</h3>
+<p>
+The <em>Form Component</em> can be customized in several way. Here the complete list.
+</p>
+<p>
+<ul>
+ <li>
+ The <em>list fo feature</em> displayed on the form can be customized via the <a href="04-Customization.html#FeaturesProvider" title="Go to &quot;Features Provider&quot;">Feature
+ Provider</a> to select the features or the order.
+ </li>
+ <li>
+ The description on the left side of the form caan be customizzed via the <a href="04-Customization.html#PropertyDescriptionProvider" title="Go to &quot;Property Description Provider&quot;">Property
+ Description Provider</a>.
+ </li>
+ <li>
+ Otherwise to customize the controls on the right, you can use the <a href="04-Customization.html#FormControlFactory" title="Go to &quot;Form Control Factory&quot;">Form Control Factory</a>.
+ </li>
+ <li>
+ Depending on the feature types, can be some fields that use predefined values (e.g. combo). You can provide
+ the exact proposal list via the <a href="04-Customization.html#ProposalProvider" title="Go to &quot;Proposal Provider&quot;">Proposal Provider</a>.
+ </li>
+</ul>
+</p>
+<a name="TreeComponent"></a>
+<h2>Tree Component</h2>
+<p>
+The <em>Tree Component</em> provides a tree rapresentation of data that can be feeded with an EResource, a
+Resource URI, and a simple EObject. This component use the EMF Meta-Model information to display objects in the tree.
+</p>
+<p>
+<div class="image" >
+<img src="images/03-components-tree.png" class=" "
+/>
+<div class="caption">
+</div>
+</div>
+</p>
+<a name="Tree_Customizations"></a>
+<h3>Tree Customizations</h3>
+<p>
+The <em>Tree Component</em>can be customized in several way via the standard EMF Edit facilities or with the EMF Components
+codeinjection based mechanism. If you are familiar with Jface APIs, you can easily use the basic class with some facilties to define the specific implementation.
+See the corrisponding sections for more details.
+</p>
+<p>
+<ul>
+ <li>
+ The <a href="04-Customization.html#ViewerContentProvider" title="Go to &quot;Viewer Content Provider&quot;">Viewer Content Provider</a>
+ </li>
+ <li>
+ The <a href="04-Customization.html#ViewerLabelProvider" title="Go to &quot;Viewer Label Provider&quot;">Viewer Label Provider</a>
+ </li>
+ <li>
+ The <a href="04-Customization.html#ViewerContextMenuFactory" title="Go to &quot;Viewer Context Menu Factory&quot;">Viewer Context Menu Factory</a>
+ </li>
+</ul>
+</p>
+<p>
+<em>TODO</em>
+</p>
+<a name="TreeFormComponent"></a>
+<h2>Tree Form Component</h2>
+<p>
+The <em>Tree Form Component</em> contains a <a href="03-Components.html#TreeComponent" title="Go to &quot;Tree Component&quot;" >section TreeComponent</a> that provides a tree rapresentation of data that can be feeded with
+an EResource, a Resource URI, and a simple EObject. This component use the EMF Meta-Model information to display objects in
+the tree. The component also combines a <a href="03-Components.html#FormComponent" title="Go to &quot;Form Component&quot;" >section FormComponent</a> detail that display the current selected object.
+</p>
+<p>
+<div class="image" >
+<img src="images/03-components-treeform.png" class=" "
+/>
+<div class="caption">
+</div>
+</div>
+</p>
+<a name="TreeForm_Customizations"></a>
+<h3>Tree Form Customization</h3>
+<p>
+Since <em>Tree Form Component</em> is a combination of <em>Tree Component</em> and <em>Form Component</em>, all their customizations
+are avaible for it.
+</p>
+<a name="TableComponent"></a>
+<h2>Table Component</h2>
+<p>
+The <em>Table Component</em> can rapresent data in a grid, once you have specified what kind of object need to be rapresented.
+It uses metamodel infos to build column as needed.
+</p>
+<p>
+<div class="image" >
+<img src="images/03-components-table.png" class=" "
+/>
+<div class="caption">
+</div>
+</div>
+</p>
+<p>
+<div class="todo" >
+ To be continued
+</div>
+</p>
+</body>
+</html>
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/04-Customization.html b/doc/org.eclipse.emf.parsley.doc/contents/04-Customization.html
new file mode 100644
index 000000000..1409015c0
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/04-Customization.html
@@ -0,0 +1,580 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" >
+<title>Customization</title>
+
+<link href="book.css" rel="stylesheet" type="text/css">
+<link href="code.css" rel="stylesheet" type="text/css">
+<link rel="home" href="xtext.html" title="">
+</head>
+<body>
+<a name="Customization"></a>
+<h1>Customization</h1>
+<a name="ResourceManagers"></a>
+<h2>Managing Resources</h2>
+<a name="ResourceLoader"></a>
+<h3>Resource Loader</h3>
+<p>
+The class <a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/resource/ResourceLoader.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.resource.ResourceLoader" >ResourceLoader</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/resource/ResourceLoader.java" title="View Source Code" >(src)</a> can be used to handle resource loading.
+This class uses internally the <a href="04-Customization.html#EmptyResourceInitializer" title="Go to &quot;Empty Resource Initializer&quot;">Empty Resource Initializer</a>.
+</p>
+<a name="EmptyResourceInitializer"></a>
+<h3>Empty Resource Initializer</h3>
+<p>
+If you need to initialize your model, for the first use, you can define an implementation of <a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/resource/EmptyResourceInitializer.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.resource.EmptyResourceInitializer" >EmptyResourceInitializer</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/resource/EmptyResourceInitializer.java" title="View Source Code" >(src)</a>.
+When the main resource will be found empty, your code will be executed.
+</p>
+<a name="EditingDomainFinder"></a>
+<h3>Editing Domain Finder</h3>
+<p>
+The class <a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/edit/EditingDomainFinder.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.edit.EditingDomainFinder" >EditingDomainFinder</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/edit/EditingDomainFinder.java" title="View Source Code" >(src)</a> can be inherited to provide a specific
+way to find the editign domain.
+</p>
+<a name="ResourceSaveManager"></a>
+<h3>Resource Save Manager</h3>
+<p>
+Resource saving is delegated to <a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/edit/ResourceSaveManager.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.edit.ResourceSaveManager" >ResourceSaveManager</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/edit/ResourceSaveManager.java" title="View Source Code" >(src)</a>
+which, by defaults only saves the passed <a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/resource/Resource.html" title="View JavaDoc"><abbr title="org.eclipse.emf.ecore.resource.Resource" >Resource</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/ecore/resource/Resource.java" title="View Source Code" >(src)</a>.
+You can inject your own save manager and implement the method <span class="inlinecode">precondition(Resource)</span>, for
+instance, you may want to validate the resource before saving, and in case the validation
+fails to return <span class="inlinecode">false</span>. If the precondition is <span class="inlinecode">false</span> the default implementation
+will not save the resource (and in turn will return <span class="inlinecode">false</span>).
+</p>
+<a name="ValidateResourceSaveManager"></a>
+<h4>Validate Resource Save Manager</h4>
+<p>
+We provide an example of custom resource save manager: <a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/edit/ValidateResourceSaveManager.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.edit.ValidateResourceSaveManager" >ValidateResourceSaveManager</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/edit/ValidateResourceSaveManager.java" title="View Source Code" >(src)</a>,
+we show here only relevant parts to give an example:
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+<span class="keyword">public</span>&nbsp;<span class="keyword">class</span>&nbsp;ValidateResourceSaveManager&nbsp;<span class="keyword">extends</span>&nbsp;ResourceSaveManager&nbsp;{<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;@Override<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">protected</span>&nbsp;<span class="keyword">boolean</span>&nbsp;precondition(Resource&nbsp;resource)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span>&nbsp;<span class="keyword">super</span>.precondition(resource)&nbsp;&amp;&amp;&nbsp;validateModel(resource);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">protected</span>&nbsp;<span class="keyword">boolean</span>&nbsp;validateModel(Resource&nbsp;resource)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span>&nbsp;(EObject&nbsp;eObject&nbsp;:&nbsp;resource.getContents())&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Diagnostic&nbsp;diagnostic&nbsp;=&nbsp;Diagnostician.INSTANCE.validate(eObject);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span>&nbsp;(diagnostic.getSeverity()&nbsp;==&nbsp;Diagnostic.ERROR)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;SKIPPED:&nbsp;present&nbsp;the&nbsp;errors<br/>
+</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span>&nbsp;false;<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span class="keyword">else</span>&nbsp;<span class="keyword">if</span>&nbsp;(diagnostic.getSeverity()&nbsp;==&nbsp;Diagnostic.WARNING)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;SKIPPED:&nbsp;present&nbsp;the&nbsp;warnings<br/>
+</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span>&nbsp;true;<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+}<br/>
+</p>
+</div>
+</div>
+</p>
+<a name="Providers"></a>
+<h2>Providers</h2>
+<a name="FeaturesProvider"></a>
+<h3>Features Provider</h3>
+<p>
+ <em>This can be done with Parsley DSL too!</em>
+
+<div class="todo" >
+TODO: merge delle 2 versioni
+</div>
+</p>
+<a name="FeatureProvider1"></a>
+<h4>Prima versione</h4>
+<p>
+To customize the <em>feature list</em> it can be injected a <a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/ui/provider/FeaturesProvider.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.ui.provider.FeaturesProvider" >FeaturesProvider</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/ui/provider/FeaturesProvider.java" title="View Source Code" >(src)</a>.
+The default is to return the list of all the features in the EClass, but the programmer can customize it (for instance,
+by returning only a superset, or using a different order) on an EClass-based strategy. The customization can be done
+redefining buildMap and adding mappings.
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+<span class="keyword">protected</span>&nbsp;<span class="keyword">void</span>&nbsp;buildMap(EClassToEStructuralFeatureMap&nbsp;map)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">super</span>.buildMap(map);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;map.mapTo(LIBRARY,LIBRARY__NAME,&nbsp;ADDRESSABLE__ADDRESS);<br/>
+}<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+In the example we specify that for the EClass <em>Library</em> the feature that are to be displayed are <em>name</em>
+and <em>address</em>.
+</p>
+<a name="FeatureProvider2"></a>
+<h4>Seconda versione</h4>
+<p>
+When the framework builds components according to the
+<a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EStructuralFeature.html" title="View JavaDoc"><abbr title="org.eclipse.emf.ecore.EStructuralFeature" >EStructuralFeature</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/ecore/EStructuralFeature.java" title="View Source Code" >(src)</a>s of a given
+<a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EClass.html" title="View JavaDoc"><abbr title="org.eclipse.emf.ecore.EClass" >EClass</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/ecore/EClass.java" title="View Source Code" >(src)</a> it relies on an injected
+<a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/ui/provider/FeaturesProvider.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.ui.provider.FeaturesProvider" >FeaturesProvider</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/ui/provider/FeaturesProvider.java" title="View Source Code" >(src)</a>.
+The default behavior is to simply return all the features of the a given EClass,
+in the order they are defined in the EClass;
+you may want to provide a custom implementation by redefining
+the method <span class="inlinecode">List&lt;EStructuralFeature&gt;&nbsp;getFeatures(EClass)</span>, or
+<span class="inlinecode">List&lt;EStructuralFeature&gt;&nbsp;getFeatures(EObject)</span>,
+for instance by returning the features ordered according to their name
+(the following snippet uses an utility class from the framework)
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+<span class="keyword">public</span>&nbsp;<span class="keyword">class</span>&nbsp;OrderedEStructuralFeaturesProvider&nbsp;<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">extends</span>&nbsp;FeaturesProvider&nbsp;{<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;@Inject<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;EStructuralFeatureNameComparator&nbsp;comparator;<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;@Override<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span>&nbsp;List&lt;EStructuralFeature&gt;&nbsp;getFeatures(EClass&nbsp;eClass)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;EStructuralFeature&gt;&nbsp;features&nbsp;=&nbsp;<span class="keyword">super</span>.getFeatures(eClass);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Collections.sort(features,&nbsp;<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">new</span>&nbsp;EStructuralFeatureNameComparator());<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span>&nbsp;features;<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+}<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+Alternatively, you can set the mappings, i.e., specify the structural
+features you want to be used given an EClass, by implementing
+the method <span class="inlinecode">buildMap</span>, which receives the
+<a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/ui/provider/FeaturesProvider.EClassToEStructuralFeatureMap.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.ui.provider.FeaturesProvider.EClassToEStructuralFeatureMap" >FeaturesProvider.EClassToEStructuralFeatureMap</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/ui/provider/FeaturesProvider.java" title="View Source Code" >(src)</a>
+that can be filled with the method <span class="inlinecode">mapTo</span>;
+for instance, using the EMF extended library
+example, this customization will return only the <em>name</em> and <em>address</em> features
+for <span class="inlinecode">Library</span>, the <em>firstName</em>, <em>lastName</em> and <em>address</em> for
+<span class="inlinecode">Person</span>, and the <em>firstName</em>, <em>lastName</em> and <em>books</em> (but
+not <em>address</em>) for <span class="inlinecode">Writer</span> (which inherits from <span class="inlinecode">Person</span>).
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+<span class="keyword">import</span>&nbsp;<span class="keyword">static</span>&nbsp;org.eclipse.emf.examples.extlibrary.EXTLibraryPackage.Literals.*;<br/>
+<span class="keyword">import</span>&nbsp;org.eclipse.emf.parsley.ui.provider.EStructuralFeaturesProvider;<br/>
+<br/>
+<span class="keyword">public</span>&nbsp;<span class="keyword">class</span>&nbsp;LibraryEStructuralFeaturesProvider&nbsp;<span class="keyword">extends</span><br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FeaturesProvider&nbsp;{<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;@Override<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">protected</span>&nbsp;<span class="keyword">void</span>&nbsp;buildMap(EClassToEStructuralFeatureMap&nbsp;map)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">super</span>.buildMap(map);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.mapTo(LIBRARY,<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LIBRARY__NAME,&nbsp;ADDRESSABLE__ADDRESS);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.mapTo(PERSON,<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PERSON__FIRST_NAME,&nbsp;PERSON__LAST_NAME,<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADDRESSABLE__ADDRESS);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.mapTo(WRITER,<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PERSON__FIRST_NAME,&nbsp;PERSON__LAST_NAME,<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WRITER__BOOKS);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+}<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+Another possibility is to build a map which relies on Strings
+both for the <a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EClass.html" title="View JavaDoc"><abbr title="org.eclipse.emf.ecore.EClass" >EClass</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/ecore/EClass.java" title="View Source Code" >(src)</a> and for
+the list of <a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EStructuralFeature.html" title="View JavaDoc"><abbr title="org.eclipse.emf.ecore.EStructuralFeature" >EStructuralFeature</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/ecore/EStructuralFeature.java" title="View Source Code" >(src)</a>;
+note that the name of the <a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/ecore/EClass.html" title="View JavaDoc"><abbr title="org.eclipse.emf.ecore.EClass" >EClass</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/ecore/EClass.java" title="View Source Code" >(src)</a> should
+be obtained by using <span class="inlinecode">getInstanceClassName()</span>; you can also
+combine the two approaches (in that case the map built with
+<span class="inlinecode">buildMap</span> has the precedence):
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+<span class="keyword">import</span>&nbsp;<span class="keyword">static</span>&nbsp;org.eclipse.emf.examples.extlibrary.EXTLibraryPackage.Literals.*;<br/>
+<span class="keyword">import</span>&nbsp;org.eclipse.emf.parsley.ui.provider.FeaturesProvider;<br/>
+<br/>
+<span class="keyword">public</span>&nbsp;<span class="keyword">class</span>&nbsp;LibraryEStructuralFeaturesAsStringsProvider&nbsp;<span class="keyword">extends</span><br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FeaturesProvider&nbsp;{<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;@Override<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">protected</span>&nbsp;<span class="keyword">void</span>&nbsp;buildMap(EClassToEStructuralFeatureMap&nbsp;map)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">super</span>.buildMap(map);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.mapTo(LIBRARY,&nbsp;LIBRARY__NAME,&nbsp;ADDRESSABLE__ADDRESS);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;@Override<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">protected</span>&nbsp;<span class="keyword">void</span>&nbsp;buildStringMap(<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EClassToEStructuralFeatureAsStringsMap&nbsp;stringMap)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">super</span>.buildStringMap(stringMap);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stringMap.mapTo(PERSON.getInstanceClassName(),&nbsp;<span class="string">"firstName"</span>,&nbsp;<span class="string">"lastName"</span>,<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"address"</span>);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stringMap.mapTo(WRITER.getInstanceClassName(),&nbsp;<span class="string">"firstName"</span>,&nbsp;<span class="string">"lastName"</span>,<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"books"</span>);<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+}<br/>
+</p>
+</div>
+</div>
+</p>
+<a name="FeaturesColumnProvider"></a>
+<h4>Features Column Provider</h4>
+<p>
+As an extension, you can use the <a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/ui/provider/FeaturesColumnProvider.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.ui.provider.FeaturesColumnProvider" >FeaturesColumnProvider</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/ui/provider/FeaturesColumnProvider.java" title="View Source Code" >(src)</a>:
+the customizations will be applied only to <a href="03-Components.html#TableComponent" title="Go to &quot;Table Component&quot;">tables</a>, not to <a href="03-Components.html#FormComponent" title="Go to &quot;Form Component&quot;">Forms</a>.
+</p>
+<a name="PropertyDescriptionProvider"></a>
+<h3>Property Description Provider</h3>
+<p>
+ <em>This can be done with Parsley DSL too!</em>
+
+The <a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/ui/provider/PropertyDescriptionProvider.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider" >PropertyDescriptionProvider</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/ui/provider/PropertyDescriptionProvider.java" title="View Source Code" >(src)</a> provides labels for
+the features. It can be customized, with injection (see Injection paragraph), to customize the label on the
+left of each control. The framework use a polimorphic mechanism to find customizations, so that It can
+be written a method with a specific signature build by the keyword <em>&apos;text&apos;</em> followed by the EClass and the EStructuralFeature.
+All parts of the name are separated by an underscore character and the method must accept a parameter of type EStructuralFeature.
+</p>
+<p>
+In the following example we specify the label text for the feature &apos;Author&apos; of Book and the feature &apos;Name&apos; for
+Writer.
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span>&nbsp;String&nbsp;text_Book_author(<span class="keyword">final</span>&nbsp;EStructuralFeature&nbsp;feature)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span>&nbsp;<span class="string">"Wrote&nbsp;by:"</span>;<br/>
+}<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span>&nbsp;String&nbsp;text_Writer_name(<span class="keyword">final</span>&nbsp;EStructuralFeature&nbsp;feature)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span>&nbsp;<span class="string">"Name:"</span>;<br/>
+}<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+Another chance of customization is to define a method the returns directly the control, like in the example
+below. In this case there is another parameter that is the parent composite.
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span>&nbsp;Label&nbsp;label_Writer_name(Composite&nbsp;parent,&nbsp;EStructuralFeature&nbsp;feature)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;Label&nbsp;label&nbsp;=&nbsp;defaultLabel(parent,&nbsp;feature);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;label.setBackground(getFormToolkit().getColors().getColor(IFormColors.TITLE));<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span>&nbsp;label;<br/>
+}<br/>
+</p>
+</div>
+</div>
+</p>
+<a name="FormPropertyDescriptionProvider"></a>
+<h4>Form Property Description Provider</h4>
+<p>
+The <a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/ui/provider/FormPropertyDescriptionProvider.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.ui.provider.FormPropertyDescriptionProvider" >FormPropertyDescriptionProvider</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/ui/provider/FormPropertyDescriptionProvider.java" title="View Source Code" >(src)</a> can be used if you want
+to define the description only for the form. For example using the <a href="03-Components.html#TreeFormComponent" title="Go to &quot;Tree Form Component&quot;">Tree
+Form</a> your definition will not be used in the tree.
+</p>
+<a name="ViewerLabelProvider"></a>
+<h3>Viewer Label Provider</h3>
+<p>
+The Label Provider can be customized by providing a specific implementation of <a class="jdoc" href="http://help.eclipse.org/helios/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/jface/viewers/ILabelProvider.html" title="View JavaDoc"><abbr title="org.eclipse.jface.viewers.ILabelProvider" >ILabelProvider</abbr></a>
+and injecting it in the spefic module <em>(TODO)</em>.
+EMF Components provides such an implementation with the class <a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/ui/provider/ViewerLabelProvider.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider" >ViewerLabelProvider</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/ui/provider/ViewerLabelProvider.java" title="View Source Code" >(src)</a>
+that is inteded to be surclassed by the programmer to provides specific implementations like in the example below.
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span>&nbsp;<span class="keyword">class</span>&nbsp;CustomLibraryLabelProvider&nbsp;<span class="keyword">extends</span>&nbsp;ViewerLabelProvider&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Inject<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span>&nbsp;CustomLibraryLabelProvider(AdapterFactoryLabelProvider&nbsp;delegate)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">super</span>(delegate);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span>&nbsp;String&nbsp;text(Book&nbsp;book)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span>&nbsp;<span class="string">"Book:&nbsp;"</span>&nbsp;+&nbsp;book.getTitle();<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span>&nbsp;String&nbsp;image(Book&nbsp;book)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span>&nbsp;<span class="string">"book2.png"</span>;<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span>&nbsp;String&nbsp;text(Borrower&nbsp;b)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span>&nbsp;<span class="string">"Borrower:&nbsp;"</span>&nbsp;+&nbsp;b.getFirstName();<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+}<br/>
+</p>
+</div>
+</div>
+</p>
+<a name="ViewerContentProvider"></a>
+<h3>Viewer Content Provider</h3>
+<p>
+The programmer can provide a specific implementation of <a class="jdoc" href="http://help.eclipse.org/helios/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/jface/viewers/IContentProvider.html" title="View JavaDoc"><abbr title="org.eclipse.jface.viewers.IContentProvider" >IContentProvider</abbr></a>
+by injecting it in the spefic module <em>(TODO)</em>. EMF Components provides an implementation with the class
+<a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/edit/ui/provider/ViewerContentProvider.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.edit.ui.provider.ViewerContentProvider" >ViewerContentProvider</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/edit/ui/provider/ViewerContentProvider.java" title="View Source Code" >(src)</a> that can be easily used to
+specify the children of all object on the tree, like in the example below.
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span>&nbsp;<span class="keyword">class</span>&nbsp;CustomLibraryViewerContentProvider&nbsp;<span class="keyword">extends</span>&nbsp;ViewerContentProvider&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Inject<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span>&nbsp;CustomLibraryViewerContentProvider(AdapterFactory&nbsp;adapterFactory)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">super</span>(adapterFactory);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span>&nbsp;Object&nbsp;children(Library&nbsp;library)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span>&nbsp;library.getBooks();<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span>&nbsp;Object&nbsp;children(Book&nbsp;book)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ArrayList&lt;Object&gt;&nbsp;children&nbsp;=&nbsp;<span class="keyword">new</span>&nbsp;ArrayList&lt;Object&gt;();<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writer&nbsp;author&nbsp;=&nbsp;book.getAuthor();<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span>&nbsp;(author&nbsp;!=&nbsp;null)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;children.add(author);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;children.addAll(book.getBorrowers());<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span>&nbsp;children;<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+}<br/>
+</p>
+</div>
+</div>
+</p>
+<a name="ProposalProvider"></a>
+<h3>Proposal Provider</h3>
+<p>
+ <em>This can be done with Parsley DSL too!</em>
+
+Some controls use a list of proposal to help the end user experince: for example the combo box has a
+list of proposal, but also the simple text can use the proposal to assist and correct the hand-writed
+values. For each feature it can be specified a list of proposals using a method that starts with the
+keyword <em>&apos;proposals&apos;</em> followed byt the EClass and Feature undescore-character-separated.
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span>&nbsp;List&lt;?&gt;&nbsp;proposals_Book_author(Book&nbsp;book)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Object&gt;&nbsp;proposals&nbsp;=&nbsp;<span class="keyword">new</span>&nbsp;LinkedList&lt;Object&gt;();<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;Writer&nbsp;writer&nbsp;=&nbsp;EXTLibraryFactory.eINSTANCE.createWriter();<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;writer.setFirstName(<span class="string">"Fake"</span>);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;writer.setLastName(<span class="string">"Writer"</span>);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;proposals.add(writer);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;writer&nbsp;=&nbsp;EXTLibraryFactory.eINSTANCE.createWriter();<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;writer.setFirstName(<span class="string">"Fake"</span>);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;writer.setLastName(<span class="string">"Writer2"</span>);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;proposals.add(writer);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span>&nbsp;proposals;<br/>
+}<br/>
+</p>
+</div>
+</div>
+</p>
+<a name="ViewerContextMenuFactory"></a>
+<h3>Viewer Context Menu Factory</h3>
+<p>
+<a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/menus/ViewerContextMenuFactory.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.menus.ViewerContextMenuFactory" >ViewerContextMenuFactory</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/menus/ViewerContextMenuFactory.java" title="View Source Code" >(src)</a>
+</p>
+<a name="TableColumnLabelProvider"></a>
+<h3>Table Column Label Provider</h3>
+<p>
+<a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/ui/provider/TableColumnLabelProvider.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.ui.provider.TableColumnLabelProvider" >TableColumnLabelProvider</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/ui/provider/TableColumnLabelProvider.java" title="View Source Code" >(src)</a>
+</p>
+<a name="SelectionAndMenu"></a>
+<h2>Selection And Menu</h2>
+<a name="EmfSelectionHelper"></a>
+<h3>Emf Selection Helper</h3>
+<p>
+<a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/util/EmfSelectionHelper.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.util.EmfSelectionHelper" >EmfSelectionHelper</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/util/EmfSelectionHelper.java" title="View Source Code" >(src)</a>
+</p>
+<a name="Builders"></a>
+<h2>Builders</h2>
+<a name="TableViewerBuilder"></a>
+<h3>Table Viewer Builder</h3>
+<p>
+<a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/builders/TableViewerBuilder.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.builders.TableViewerBuilder" >TableViewerBuilder</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/builders/TableViewerBuilder.java" title="View Source Code" >(src)</a>
+</p>
+<p>
+<ul>
+ <li>
+ <a href="04-Customization.html#TableViewerColumnBuilder" title="Go to &quot;Table Viewer Column Builder&quot;">TableViewerColumnBuilder</a>
+ </li>
+ <li>
+ <a href="04-Customization.html#ViewerInitializer" title="Go to &quot;Viewer Initializer&quot;">ViewerInitializer</a>
+ </li>
+</ul>
+</p>
+<a name="TableViewerColumnBuilder"></a>
+<h3>Table Viewer Column Builder</h3>
+<p>
+<a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/builders/TableViewerColumnBuilder.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.builders.TableViewerColumnBuilder" >TableViewerColumnBuilder</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/builders/TableViewerColumnBuilder.java" title="View Source Code" >(src)</a>
+</p>
+<p>
+<ul>
+ <li>
+ <a href="04-Customization.html#JfaceProviderFactory" title="Go to &quot;Jface Provider Factory&quot;">JfaceProviderFactory</a>
+ </li>
+ <li>
+ <a href="04-Customization.html#PropertyDescriptionProvider" title="Go to &quot;Property Description Provider&quot;">PropertyDescriptionProvider</a>
+ </li>
+ <li>
+ <a href="04-Customization.html#FeaturesProvider" title="Go to &quot;Features Provider&quot;">FeaturesProvider</a>
+ </li>
+</ul>
+</p>
+<a name="TableViewerEditableColumnBuilder"></a>
+<h4>Table Viewer Editable Column Builder</h4>
+<p>
+<a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/builders/TableViewerEditableColumnBuilder.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.builders.TableViewerEditableColumnBuilder" >TableViewerEditableColumnBuilder</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/builders/TableViewerEditableColumnBuilder.java" title="View Source Code" >(src)</a>
+</p>
+<a name="Factories"></a>
+<h2>Factories</h2>
+<a name="FormFactory"></a>
+<h3>Form Factory</h3>
+<p>
+<a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/factories/FormFactory.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.factories.FormFactory" >FormFactory</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/factories/FormFactory.java" title="View Source Code" >(src)</a>
+</p>
+<p>
+<ul>
+ <li>
+ <a href="04-Customization.html#FormPropertyDescriptionProvider" title="Go to &quot;Form Property Description Provider&quot;">FormPropertyDescriptionProvider</a>
+ </li>
+ <li>
+ <a href="04-Customization.html#FormControlFactory" title="Go to &quot;Form Control Factory&quot;">Form Control Factory</a>
+ </li>
+ <li>
+ <a href="04-Customization.html#EditingDomainFinder" title="Go to &quot;Editing Domain Finder&quot;">EditingDomainFinder</a>
+ </li>
+ <li>
+ <a href="04-Customization.html#JfaceProviderFactory" title="Go to &quot;Jface Provider Factory&quot;">JfaceProviderFactory</a>
+ </li>
+ <li>
+ <a href="04-Customization.html#FeaturesProvider" title="Go to &quot;Features Provider&quot;">FeaturesProvider</a>
+ </li>
+</ul>
+</p>
+<a name="JfaceProviderFactory"></a>
+<h3>Jface Provider Factory</h3>
+<p>
+<a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/factories/ColumnLabelProviderFactory.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.factories.ColumnLabelProviderFactory" >ColumnLabelProviderFactory</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/factories/ColumnLabelProviderFactory.java" title="View Source Code" >(src)</a>
+</p>
+<p>
+<ul>
+ <li>
+ <a href="04-Customization.html#ViewerLabelProvider" title="Go to &quot;Viewer Label Provider&quot;">ViewerLabelProvider</a>
+ </li>
+ <li>
+ <a href="04-Customization.html#TableColumnLabelProvider" title="Go to &quot;Table Column Label Provider&quot;">TableColumnLabelProvider</a>
+ </li>
+</ul>
+</p>
+<a name="FormControlFactory"></a>
+<h3>Form Control Factory</h3>
+<p>
+ <em>This can be done with Parsley DSL too!</em>
+
+If you want to customize the controls on the right, it can be injected a specification of the class <a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/binding/FormControlFactory.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.binding.FormControlFactory" >FormControlFactory</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/binding/FormControlFactory.java" title="View Source Code" >(src)</a>.
+Using the same polimorphic mechanism of the labels, the programmer can write a method with the keyword <em>&apos;control&apos;</em>
+followed by the EClass and EStructuralFeature undescore-character-separated. In the signature of the
+method must be both the <em>DataBinding Context</em> and the <em>Feature Observable</em> that can be used for databinding.
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span>&nbsp;Control&nbsp;control_Writer_name(DataBindingContext&nbsp;dbc,IObservableValue&nbsp;featureObservable)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//Creating&nbsp;the&nbsp;control<br/>
+</span>&nbsp;&nbsp;&nbsp;&nbsp;Text&nbsp;text&nbsp;=&nbsp;getToolkit().createText(getParent(),&nbsp;<span class="string">""</span>);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;text.setData(FormToolkit.KEY_DRAW_BORDER,&nbsp;FormToolkit.TREE_BORDER);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;text.setBackground(getToolkit().getColors().getColor(IFormColors.TITLE));<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//Binding&nbsp;the&nbsp;control&nbsp;to&nbsp;the&nbsp;feature&nbsp;observable<br/>
+</span>&nbsp;&nbsp;&nbsp;&nbsp;dbc.bindValue(SWTObservables.observeText(text,&nbsp;SWT.Modify),&nbsp;&nbsp;&nbsp;&nbsp;featureObservable);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span>&nbsp;text;<br/>
+}&nbsp;&nbsp;&nbsp;&nbsp;<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+For more info, see the other parts that are used internally by the <em>Form Control Factory</em>:
+</p>
+<p>
+<ul>
+ <li>
+ <a href="04-Customization.html#JfaceProviderFactory" title="Go to &quot;Jface Provider Factory&quot;">JfaceProviderFactory</a>
+ </li>
+</ul>
+</p>
+<a name="TreeFormFactory"></a>
+<h3>Tree Form Factory</h3>
+<p>
+<a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/factories/TreeFormFactory.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.factories.TreeFormFactory" >TreeFormFactory</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/factories/TreeFormFactory.java" title="View Source Code" >(src)</a>
+</p>
+<p>
+<ul>
+ <li>
+ <a href="04-Customization.html#ViewerInitializer" title="Go to &quot;Viewer Initializer&quot;">ViewerInitializer</a>
+ </li>
+ <li>
+ <a href="04-Customization.html#FormFactory" title="Go to &quot;Form Factory&quot;">FormFactory</a>
+ </li>
+</ul>
+</p>
+<a name="ViewerFactory"></a>
+<h3>Viewer Factory</h3>
+<p>
+<a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/factories/ViewerFactory.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.factories.ViewerFactory" >ViewerFactory</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/factories/ViewerFactory.java" title="View Source Code" >(src)</a>
+</p>
+<p>
+<ul>
+ <li>
+ <a href="04-Customization.html#TableViewerBuilder" title="Go to &quot;Table Viewer Builder&quot;">TableViewerBuilder</a>
+ </li>
+ <li>
+ <a href="04-Customization.html#ViewerInitializer" title="Go to &quot;Viewer Initializer&quot;">ViewerInitializer</a>
+ </li>
+</ul>
+</p>
+<a name="AdapterFactoryEditingDomain"></a>
+<h3>Viewer Factory</h3>
+<p>
+AdapterFactoryEditingDomain
+</p>
+<p>
+AdapterFactory
+</p>
+<a name="Viewers"></a>
+<h2>Viewers</h2>
+<a name="ViewerInitializer"></a>
+<h3>Viewer Initializer</h3>
+<p>
+<a class="jdoc" href="http://download.eclipse.org/modeling/emf/emf/javadoc/2.9.0/org/eclipse/emf/parsley/viewers/ViewerInitializer.html" title="View JavaDoc"><abbr title="org.eclipse.emf.parsley.viewers.ViewerInitializer" >ViewerInitializer</abbr></a> <a class="srcLink" href="https://github.com/eclipse/emf/blob/R2_8_0/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/parsley/viewers/ViewerInitializer.java" title="View Source Code" >(src)</a>
+</p>
+<p>
+<ul>
+ <li>
+ <em>AdapterFactoryEditingDomain</em>
+ </li>
+ <li>
+ <a href="04-Customization.html#ViewerContextMenuFactory" title="Go to &quot;Viewer Context Menu Factory&quot;">AdapterFactory</a>
+ </li>
+ <li>
+ <em>ILabelProvider</em>
+ </li>
+ <li>
+ <em>IContentProvider</em>
+ </li>
+</ul>
+
+</p>
+</body>
+</html>
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/05-DSL.html b/doc/org.eclipse.emf.parsley.doc/contents/05-DSL.html
new file mode 100644
index 000000000..17772fdec
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/05-DSL.html
@@ -0,0 +1,16 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" >
+<title>EMF Components DSL</title>
+
+<link href="book.css" rel="stylesheet" type="text/css">
+<link href="code.css" rel="stylesheet" type="text/css">
+<link rel="home" href="xtext.html" title="">
+</head>
+<body>
+<a name="DSL"></a>
+<h1>EMF Components DSL</h1>
+<a name="xbase"></a>
+<h2>Xbase features</h2>
+</body>
+</html>
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/06-AdvancedComponents.html b/doc/org.eclipse.emf.parsley.doc/contents/06-AdvancedComponents.html
new file mode 100644
index 000000000..d434efa31
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/06-AdvancedComponents.html
@@ -0,0 +1,14 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" >
+<title>Advanced Components</title>
+
+<link href="book.css" rel="stylesheet" type="text/css">
+<link href="code.css" rel="stylesheet" type="text/css">
+<link rel="home" href="xtext.html" title="">
+</head>
+<body>
+<a name="AdvancedComponents"></a>
+<h1>Advanced Components</h1>
+</body>
+</html>
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/07-Eclipse4.html b/doc/org.eclipse.emf.parsley.doc/contents/07-Eclipse4.html
new file mode 100644
index 000000000..9cc4a2a23
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/07-Eclipse4.html
@@ -0,0 +1,321 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" >
+<title>Eclipse 4</title>
+
+<link href="book.css" rel="stylesheet" type="text/css">
+<link href="code.css" rel="stylesheet" type="text/css">
+<link rel="home" href="xtext.html" title="">
+</head>
+<body>
+<a name="Eclipse4"></a>
+<h1>Eclipse 4</h1>
+<p>
+Instead of using the Extension Point mechanism, EMF Components leverages from DSL and Google Guice Injection.
+</p>
+<p>
+Because of this, it is very easy to use it with Eclipse 4.
+</p>
+<a name="GetFirstExample"></a>
+<h2>First Example Setup</h2>
+<p>
+If you followed the steps described in section <a href="02-GettingStarted.html#GettingStarted" title="Go to &quot;Getting Started&quot;">Getting Started</a> you will have already
+what we need to begin. Otherwise the following wizard will bring you to that point.
+</p>
+<p>
+<ol>
+ <li>
+ File -&gt; New... -&gt; Example...
+ </li>
+ <li>
+ from Category "Emf Parsley Examples", select "Emf Parsley First Example"
+ </li>
+ <li>
+ press Next and Finish
+ </li>
+</ol>
+</p>
+<p>
+You will end up with three plug-ins:
+</p>
+<p>
+<ul>
+ <li>
+ org.eclipse.emf.parsley.examples.firstexample (the EMF Components example plug-in)
+ </li>
+ <li>
+ org.eclipse.emf.examples.library (the model plug-in)
+ </li>
+ <li>
+ org.eclipse.emf.examples.library.edit (the model.edit plug-in)
+ </li>
+</ul>
+</p>
+<p>
+As a reminder, in section <a href="02-GettingStarted.html#GettingStarted" title="Go to &quot;Getting Started&quot;">Getting Started</a> we reached the point where we launched a second Eclipse
+instance (but, of course, just defining a product you could have a standalone 3.x application) with a
+view (called "My Library Tree Form") that allowed to manage the model.
+</p>
+<a name="PrepareForEclipse4Application"></a>
+<h2>Preparing for a pure Eclipse 4 Application</h2>
+<p>
+What we will do now is starting from the previous step and create an Eclipse 4 Application (on top of
+the previous plug-ins) that gets to the same result, but now with a pure Eclipse 4 Part.
+</p>
+<p>
+In order to do this we need to export the <em>"org.eclipse.emf.parsley.examples.firstexample"</em> package from the first plug-in.
+</p>
+<a name="CreateEclipse4Application"></a>
+<h2>Create an Eclipse 4 Application</h2>
+<p>
+Now let&apos;s create a new, empty, Eclipse 4 application, e.g. <em>"org.eclipse.emf.parsley.examples.firstexample.application"</em>
+(you can find details on how to create Eclipse 4 applications in <a href="http://www.rcp-vision.com/?p=4694&lang=en">our
+tutorials</a>).
+</p>
+<p>
+Create a Part and ensure that the application starts.
+</p>
+<a name="Eclipse4ApplicationAndEMFComponents"></a>
+<h2>Using an EMF Parsley TreeComposite into an Eclipse 4 Part</h2>
+<p>
+In the just created plug-in we need dependencies from the previous plug-ins: so open the <em>org.eclipse.emf.parsley.examples.firstexample.application/MANIFEST.MF</em> file, go to <em>Dependencies</em>
+tab and add the three previous plug-ins. Add also <em>"org.eclipse.emf.parsley"</em> plug-in.
+Don&apos;t forget to add the previous, and the required plug-ins, also to the Product.
+</p>
+<p>
+Open the Part java class and make the following changes:
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+<span class="comment">//&nbsp;Use&nbsp;these&nbsp;imports&nbsp;during&nbsp;Organizing&nbsp;Imports&nbsp;operation<br/>
+</span><span class="keyword">import</span>&nbsp;org.eclipse.emf.common.util.URI;<br/>
+<span class="keyword">import</span>&nbsp;org.eclipse.emf.ecore.resource.Resource;<br/>
+<span class="keyword">import</span>&nbsp;org.eclipse.swt.widgets.Composite;<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+<span class="comment">//&nbsp;The&nbsp;part&nbsp;implements&nbsp;IMenuListener&nbsp;for&nbsp;context&nbsp;menu&nbsp;handling<br/>
+</span>public&nbsp;class&nbsp;MyEclipse4Part&nbsp;implements&nbsp;IMenuListener<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+<span class="comment">//the&nbsp;parent&nbsp;composite<br/>
+</span>private&nbsp;Composite&nbsp;parent;<br/>
+<span class="comment">//the&nbsp;EMF&nbsp;Parley&nbsp;composite&nbsp;for&nbsp;showing&nbsp;a&nbsp;tree&nbsp;and&nbsp;a&nbsp;detail&nbsp;form<br/>
+</span>private&nbsp;TreeFormComposite&nbsp;treeFormComposite;<br/>
+<span class="comment">//the&nbsp;EMF&nbsp;Resource<br/>
+</span>private&nbsp;Resource&nbsp;resource;<br/>
+<br/>
+<span class="comment">//Guice&nbsp;injected&nbsp;EMF&nbsp;Parsley&nbsp;component&nbsp;for&nbsp;contributing&nbsp;to&nbsp;the&nbsp;tree&nbsp;context&nbsp;menu<br/>
+</span>private&nbsp;TreeActionBarContributor&nbsp;treeActionBarContributor&nbsp;=&nbsp;FirstexampleActivator.getDefault().getInjector()<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getInstance(TreeActionBarContributor.class);<br/>
+<br/>
+<br/>
+<span class="comment">//Guice&nbsp;injected&nbsp;EMF&nbsp;Parsley&nbsp;factory&nbsp;for&nbsp;the&nbsp;tree&nbsp;detail&nbsp;form<br/>
+</span>private&nbsp;TreeFormFactory&nbsp;treeFormFactory&nbsp;=&nbsp;FirstexampleActivator.getDefault().getInjector()<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getInstance(TreeFormFactory.class);<br/>
+<br/>
+<span class="comment">//Guice&nbsp;injected&nbsp;EMF&nbsp;Parsley&nbsp;Resource&nbsp;loader<br/>
+</span>private&nbsp;ResourceLoader&nbsp;resourceLoader&nbsp;=&nbsp;FirstexampleActivator.getDefault().getInjector()<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getInstance(ResourceLoader.class);<br/>
+<br/>
+<span class="comment">//Guice&nbsp;injected&nbsp;EMF&nbsp;Parsley&nbsp;editing&nbsp;domain<br/>
+</span>private&nbsp;AdapterFactoryEditingDomain&nbsp;editingDomain&nbsp;=&nbsp;FirstexampleActivator.getDefault().getInjector()<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getInstance(AdapterFactoryEditingDomain.class);<br/>
+<br/>
+<span class="comment">//Guice&nbsp;injected&nbsp;viewer&nbsp;initializer<br/>
+</span>private&nbsp;ViewerInitializer&nbsp;viewerInitializer&nbsp;=&nbsp;(ViewerInitializer)&nbsp;FirstexampleActivator.getDefault().getInjector()<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getInstance(ViewerInitializer.class);<br/>
+<br/>
+<span class="comment">//Guice&nbsp;injected&nbsp;save&nbsp;manager<br/>
+</span>private&nbsp;ResourceSaveManager&nbsp;resourceSaveManager&nbsp;=&nbsp;FirstexampleActivator.getDefault().getInjector()<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getInstance(ResourceSaveManager.class);<br/>
+<br/>
+<span class="comment">//URI&nbsp;for&nbsp;EMF&nbsp;Resource<br/>
+</span>private&nbsp;URI&nbsp;uri&nbsp;=&nbsp;URI.createFileURI(System.getProperty(<span class="string">"user.home"</span>)<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;<span class="string">"/MyLibrary.library"</span>);<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+Modify the <em>@PostConstruct</em> method with this code:
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+@PostConstruct<br/>
+public&nbsp;void&nbsp;postConstruct(Composite&nbsp;parent)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;this.parent&nbsp;=&nbsp;parent;<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;Initialize&nbsp;TreeFormFactory&nbsp;&amp;&nbsp;ResourceLoader<br/>
+</span>&nbsp;&nbsp;&nbsp;&nbsp;init(treeFormFactory,&nbsp;resourceLoader);<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;Prepare&nbsp;the&nbsp;menu&nbsp;action&nbsp;bar&nbsp;contributor&nbsp;upon&nbsp;the&nbsp;selection<br/>
+</span>&nbsp;&nbsp;&nbsp;&nbsp;treeFormComposite.getViewer().addSelectionChangedListener(treeActionBarContributor);<br/>
+<br/>
+}<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+and add the following methods:
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+public&nbsp;void&nbsp;init(TreeFormFactory&nbsp;treeFormFactory,&nbsp;ResourceLoader&nbsp;resourceLoader)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//create&nbsp;the&nbsp;tree-form&nbsp;composite<br/>
+</span>&nbsp;&nbsp;&nbsp;&nbsp;treeFormComposite&nbsp;=&nbsp;treeFormFactory.createTreeFormMasterDetailComposite(parent,&nbsp;SWT.BORDER);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//load&nbsp;the&nbsp;resource<br/>
+</span>&nbsp;&nbsp;&nbsp;&nbsp;resource&nbsp;=&nbsp;resourceLoader.getResource(editingDomain,&nbsp;uri).getResource();<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//update&nbsp;the&nbsp;composite<br/>
+</span>&nbsp;&nbsp;&nbsp;&nbsp;treeFormComposite.update(resource);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//initialize&nbsp;and&nbsp;bind&nbsp;the&nbsp;context&nbsp;menu&nbsp;to&nbsp;the&nbsp;tree-form&nbsp;composite<br/>
+</span>&nbsp;&nbsp;&nbsp;&nbsp;treeActionBarContributor.initialize(editingDomain);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;viewerInitializer.addContextMenu(<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;treeFormComposite.getViewer(),&nbsp;treeActionBarContributor,&nbsp;editingDomain,&nbsp;this);<br/>
+}<br/>
+<br/>
+<br/>
+@Override<br/>
+public&nbsp;void&nbsp;menuAboutToShow(IMenuManager&nbsp;manager)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;treeActionBarContributor.menuAboutToShow(manager);<br/>
+}<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+If you now run the application you will be able to manage the model:
+</p>
+<p>
+<div class="image" >
+<img src="images/07-eclipse4-part.png" class=" "
+/>
+<div class="caption">
+</div>
+</div>
+</p>
+<p>
+but you will notice that it is not possible to persist the changes to the model.
+</p>
+<a name="Eclipse4Save"></a>
+<h2>Adding the dirty state and Save command</h2>
+<p>
+In order to allow persisting the model changes we have to add the dirty state handling to the part and
+the Save command to the application.
+Let&apos;s start with adding the following attribute to the part
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+@Inject<br/>
+MDirtyable&nbsp;dirtyable;<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+initialize it in the <em>@PostConstruct</em> method
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+@PostConstruct<br/>
+public&nbsp;void&nbsp;postConstruct(Composite&nbsp;parent,&nbsp;MDirtyable&nbsp;dirtyable)&nbsp;{<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.dirtyable&nbsp;=&nbsp;dirtyable;<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.dirtyable.setDirty(false);<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+add to <em>init</em> method the following code in order to update the dirty state
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+editingDomain.getCommandStack().addCommandStackListener(<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;CommandStackListener()&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;commandStackChanged(EventObject&nbsp;event)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(dirtyable&nbsp;!=&nbsp;null)<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirtyable.setDirty(true);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+and add the <em>@Persist</em> method, which will be called when the part is saved
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+@Persist<br/>
+public&nbsp;void&nbsp;save(MDirtyable&nbsp;dirty)&nbsp;throws&nbsp;IOException&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(resourceSaveManager.save(resource))&nbsp;{<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(dirty&nbsp;!=&nbsp;null)&nbsp;{<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dirty.setDirty(false);<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+}<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+and, in the end, add the <em>Save</em> handler along with the correspondent <em>Command</em> and <em>Menu</em>
+(you can find how to create handlers, commands and menus in an Eclipse 4 applications in <a href="http://www.rcp-vision.com/?p=4972&lang=en">our
+tutorials</a>)
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+public&nbsp;class&nbsp;SaveHandler&nbsp;{<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;@Execute<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;execute(EPartService&nbsp;partService,&nbsp;@Named(IServiceConstants.ACTIVE_PART)&nbsp;MPart&nbsp;part)&nbsp;{<br/>
+<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;partService.savePart(part,&nbsp;false);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+<br/>
+}<br/>
+</p>
+</div>
+</div>
+</p>
+</body>
+</html>
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/GettingSources.html b/doc/org.eclipse.emf.parsley.doc/contents/GettingSources.html
new file mode 100644
index 000000000..c02f563fa
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/GettingSources.html
@@ -0,0 +1,207 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" >
+<title>Getting Sources</title>
+
+<link href="book.css" rel="stylesheet" type="text/css">
+<link href="code.css" rel="stylesheet" type="text/css">
+<link rel="home" href="xtext.html" title="">
+</head>
+<body>
+<a name="GettingSources"></a>
+<h1>Getting Sources</h1>
+<p>
+If you want to get the sources of EMF Components,
+for instance, to contribute new features and patches, you can get them
+via Git.
+</p>
+<p>
+We use <a href="http://www.eclipse.org/buckminster/">Buckminster</a> as the
+building and materialization infrastructure; this will let you
+automatically materialize the sources in the workspace and setup
+the target platform, so that you will have everything that is necessary
+to have a working workspace with EMF Components sources.
+</p>
+<p>
+For <a href="http://eclipse.org/rap/">RAP</a> related project sources
+you will have to use a different workspace (and the materialized target
+platform will be different). The procedure is the same, you will just
+need to use a different URL for the materialization (as explained in the
+following).
+</p>
+<p>
+Some projects will be common to both RCP environment
+and RAP environment.
+</p>
+<a name="InstallBuckminster"></a>
+<h2>Install Buckminster in the IDE</h2>
+<p>
+First of all, you need to install Buckminster in your Eclipse;
+you can do that using the update site
+</p>
+<p>
+<em>http://download.eclipse.org/tools/buckminster/updates-4.2</em>
+</p>
+<p>
+You need to install the core, git and pde features.
+</p>
+<p>
+<div class="image" >
+<img src="images/install-buckminster.png" class=" "
+ style="width:90%" />
+<div class="caption">
+Install Buckminster features
+</div>
+</div>
+</p>
+<a name="PrepareTP"></a>
+<h2>Prepare an empty target platform</h2>
+<p>
+It is better to start with an empty target platform in your IDE
+(then Buckminster will materialize the required features and
+bundles starting from that empty target);
+you then need to create an empty target platform manually that contains
+one single and empty directory and set this target platform active.
+A subsequent resolution/materialization will use that platform.
+Here are the detailed steps:
+</p>
+<p>
+<ol>
+ <li>
+ Create a new general project named TP
+ (or some name of your preference)
+ </li>
+ <li>
+ Open "Window" =&gt; "Preferences" and expand "Plug-in Development"
+ </li>
+ <li>
+ Select "Target Platform"
+ </li>
+ <li>
+ Click "Add..."
+ </li>
+ <li>
+ Click "Next&gt;" (i.e. start with nothing)
+ </li>
+ <li>
+ Enter TP in the Name: field
+ </li>
+ <li>
+ Click "Add..."
+ </li>
+ <li>
+ Select "Directory" and click "Next"
+ </li>
+ <li>
+ Click on "Variables..."
+ </li>
+ <li>
+ Scroll down and select "workspace_loc" and then type TP in the Argument: field.
+ </li>
+ <li>
+ Click "OK" and then "Finish" and then "Finish" again.
+ </li>
+ <li>
+ Set your new target definition active by checking it in the list of Target definitions: and click "OK"
+ </li>
+</ol>
+</p>
+<a name="MaterializeWP"></a>
+<h2>Materialize the Workspace</h2>
+<p>
+From the File menu choose <em>Open a Component Query...</em> and
+use this URL
+</p>
+<p>
+<a href="http://emf-components.eclipselabs.org.codespot.com/git/releng/org.eclipse.emf.parsley.buckminster/build.cquery">http://emf-components.eclipselabs.org.codespot.com/git/releng/org.eclipse.emf.parsley.buckminster/build.cquery</a>
+</p>
+<p>
+If you want to materialize a workspace with EMF Components RAP
+related projects use this URL instead
+</p>
+<p>
+<a href="http://emf-components.eclipselabs.org.codespot.com/git/releng/org.eclipse.emf.parsley.rap.buckminster/build.cquery">http://emf-components.eclipselabs.org.codespot.com/git/releng/org.eclipse.emf.parsley.rap.buckminster/build.cquery</a>
+</p>
+<p>
+<div class="image" >
+<img src="images/open-cquery.png" class=" "
+ style="width:90%" />
+<div class="caption">
+The component query opened
+</div>
+</div>
+</p>
+<a name="CustomizeProperties"></a>
+<h3>(Optional) Customize some Properties</h3>
+<p>
+Before starting the materialization, you might want to customize
+some properties; you can do that in the <em>Properties</em> tab of
+the opened component query:
+</p>
+<p>
+<div class="image" >
+<img src="images/open-cquery1.png" class=" "
+ style="width:90%" />
+<div class="caption">
+The properties tab
+</div>
+</div>
+</p>
+<p>
+You can add a property by pressing
+the <em>New</em> button.
+</p>
+<p>
+For instance, you can customize the path in your system where
+the git repository will be cloned, which defaults to
+<em>${user.home}/git/emf-components</em>); for instance, you can change it
+to something else
+</p>
+<p>
+<div class="image" >
+<img src="images/open-cquery-new-property1.png" class=" "
+ style="width:50%" />
+<div class="caption">
+Property customization
+</div>
+</div>
+</p>
+<a name="StartMaterialization"></a>
+<h3>Start Materialization</h3>
+<p>
+You can now press the button in the opened query <em>Resolve and Materialize</em>.
+This will start the materialization process which will consist of
+cloning the git repository, materialize the target platform and importing
+all the projects into the workspace.
+</p>
+<p>
+<div class="image" >
+<img src="images/resolving-cquery.png" class=" "
+ style="width:70%" />
+<div class="caption">
+Materialization...
+</div>
+</div>
+</p>
+<p>
+Materializing the target platform may take sometime (depending on your
+network connection), so you might want to go and get a coffee
+in the meantime ;)
+</p>
+<p>
+When the whole process terminates, you will have a working
+workspace with EMF Components projects and the needed target platform
+(thus, you should have no error!).
+</p>
+<p>
+<div class="image" >
+<img src="images/materialized.png" class=" "
+ style="width:90%" />
+<div class="caption">
+The final materialized workspace
+</div>
+</div>
+
+</p>
+</body>
+</html>
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/book.css b/doc/org.eclipse.emf.parsley.doc/contents/book.css
new file mode 100644
index 000000000..380c47f48
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/book.css
@@ -0,0 +1,215 @@
+H6.CaptionFigColumn {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 3.000000pt;
+ margin-bottom: 11.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+
+P.Note {
+ display: block;
+ text-align: left;
+ text-indent: 0pt;
+ margin-top: 19.500000pt;
+ margin-bottom: 19.500000pt;
+ margin-right: 0.000000pt;
+ margin-left: 30pt;
+ font-size: 11.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+
+EM.UILabel {
+ font-weight: Bold;
+ font-style: Regular;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+}
+
+.image {
+ text-align:center;
+}
+
+a.srcLink {
+ text-decoration: none;
+ color: #7f7f7f !important;
+}
+
+abbr {
+ border-bottom: 1px dotted;
+}
+
+EM.CodeName {
+ font-weight: Bold;
+ font-style: Regular;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+
+SPAN.NoWrap {
+ white-space: nowrap;
+}
+
+/* following font face declarations need to be removed for DBCS */
+body,h1,h2,h3,h4,h5,h6,p,table,td,caption,th,ul,ol,dl,li,dd,dt {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #000000
+}
+
+pre {
+ font-family: Courier, monospace
+}
+
+/* end font face declarations */
+ /* following font size declarations should be OK for DBCS */
+body,h1,h2,h3,h4,h5,h6,p,table,td,caption,th,ul,ol,dl,li,dd,dt {
+ font-size: 10pt;
+}
+
+pre {
+ font-size: 10pt
+}
+
+h1 {
+ font-size: 18pt;
+ margin-top: 5;
+ margin-bottom: 1
+}
+
+h2 {
+ font-size: 14pt;
+ margin-top: 25;
+ margin-bottom: 3
+}
+
+h3 {
+ font-size: 11pt;
+ margin-top: 20;
+ margin-bottom: 3
+}
+
+h4 {
+ font-size: 10pt;
+ margin-top: 20;
+ margin-bottom: 3;
+ font-style: italic
+}
+
+p {
+ margin-top: 10px;
+ margin-bottom: 10px
+}
+
+pre {
+ margin-left: 6;
+ font-size: 9pt
+}
+
+a:hover {
+ color: #000080
+}
+
+a:visited {
+ text-decoration: underline
+}
+
+.image {
+ text-align:center;
+}
+
+a.jdoc {
+ border-bottom: .1em dotted;
+ text-decoration: none;
+ font-weight: normal;
+ color: #000000 !important;
+}
+
+a.srcLink {
+ text-decoration: none;
+ color: #7f7f7f !important;
+}
+
+abbr {
+ border-bottom: 1px dotted;
+}
+
+ul {
+ margin-top: 0;
+ margin-bottom: 10
+}
+
+li {
+ margin-top: 0;
+ margin-bottom: 0
+}
+
+li p {
+ margin-top: 0;
+ margin-bottom: 0
+}
+
+ol {
+ margin-top: 0;
+ margin-bottom: 10
+}
+
+dl {
+ margin-top: 0;
+ margin-bottom: 10
+}
+
+dt {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-weight: bold
+}
+
+dd {
+ margin-top: 0;
+ margin-bottom: 0
+}
+
+strong {
+ font-weight: bold
+}
+
+em {
+ font-style: italic
+}
+
+var {
+ font-style: italic
+}
+
+div.revision {
+ border-left-style: solid;
+ border-left-width: thin;
+ border-left-color: #7B68EE;
+ padding-left: 5
+}
+
+th {
+ font-weight: bold
+}
+
+xxtd{
+ border-top:2px solid black;
+}
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/code.css b/doc/org.eclipse.emf.parsley.doc/contents/code.css
new file mode 100644
index 000000000..3792ec3e2
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/code.css
@@ -0,0 +1,55 @@
+.literallayout .code {
+ display: block;
+ border: 1px solid gray;
+ margin: 1em;
+ padding: 1em;
+ background-color: #F0F0F0;
+ color: #000000 !important;
+ font-family: "Lucida Console", Monaco, monospace;
+ font-size: 12px;
+}
+
+.inlinecode{
+ padding-left: 3pt;
+ padding-right: 3pt;
+ font-size: 9.000000pt;
+ font-family: "Lucida Console", Monaco, monospace;
+ color: #000000 !important;
+}
+
+.keyword {
+ font-weight: bold;
+ color: #7F0055;
+}
+
+.string {
+ font-weight: normal !important;
+ color: #2A00FF;
+}
+
+.comment {
+ font-style: italic;
+ color: #3F7F5F;
+}
+
+.incode {
+ display: inline;
+}
+
+P.Code {
+ display: block;
+ text-align: left;
+ text-indent: 0.00pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 15pt;
+ font-size: 9.000000pt;
+ font-weight: normal;
+ font-style: Regular;
+ color: #000000 !important;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Lucida Console", Monaco, monospace;
+}
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/03-components-form.png b/doc/org.eclipse.emf.parsley.doc/contents/images/03-components-form.png
new file mode 100644
index 000000000..5811ffb0b
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/03-components-form.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/03-components-table.png b/doc/org.eclipse.emf.parsley.doc/contents/images/03-components-table.png
new file mode 100644
index 000000000..ed648fb81
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/03-components-table.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/03-components-tree.png b/doc/org.eclipse.emf.parsley.doc/contents/images/03-components-tree.png
new file mode 100644
index 000000000..795f97434
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/03-components-tree.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/03-components-treeform.png b/doc/org.eclipse.emf.parsley.doc/contents/images/03-components-treeform.png
new file mode 100644
index 000000000..4e69fb98a
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/03-components-treeform.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/07-eclipse4-part.png b/doc/org.eclipse.emf.parsley.doc/contents/images/07-eclipse4-part.png
new file mode 100644
index 000000000..f878b9b48
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/07-eclipse4-part.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/createWriter.png b/doc/org.eclipse.emf.parsley.doc/contents/images/createWriter.png
new file mode 100644
index 000000000..3a8288a6e
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/createWriter.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/eclipseModelingTools.png b/doc/org.eclipse.emf.parsley.doc/contents/images/eclipseModelingTools.png
new file mode 100644
index 000000000..7824963ef
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/eclipseModelingTools.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/emf-components-update-site.png b/doc/org.eclipse.emf.parsley.doc/contents/images/emf-components-update-site.png
new file mode 100644
index 000000000..0a7c3827f
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/emf-components-update-site.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/first-example-launch.png b/doc/org.eclipse.emf.parsley.doc/contents/images/first-example-launch.png
new file mode 100644
index 000000000..f80299583
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/first-example-launch.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/first-example-run.png b/doc/org.eclipse.emf.parsley.doc/contents/images/first-example-run.png
new file mode 100644
index 000000000..fa74db661
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/first-example-run.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/install-buckminster.png b/doc/org.eclipse.emf.parsley.doc/contents/images/install-buckminster.png
new file mode 100644
index 000000000..aa0788306
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/install-buckminster.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/labelCustomization.png b/doc/org.eclipse.emf.parsley.doc/contents/images/labelCustomization.png
new file mode 100644
index 000000000..953dc0669
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/labelCustomization.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/materialized.png b/doc/org.eclipse.emf.parsley.doc/contents/images/materialized.png
new file mode 100644
index 000000000..44344a0a4
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/materialized.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery-edit-property.png b/doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery-edit-property.png
new file mode 100644
index 000000000..a9abe9502
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery-edit-property.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery-edit-property1.png b/doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery-edit-property1.png
new file mode 100644
index 000000000..4aa18e561
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery-edit-property1.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery-new-property.png b/doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery-new-property.png
new file mode 100644
index 000000000..f542f9fe5
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery-new-property.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery-new-property1.png b/doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery-new-property1.png
new file mode 100644
index 000000000..2f8c8e7c4
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery-new-property1.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery.png b/doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery.png
new file mode 100644
index 000000000..c73edd8e0
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery1.png b/doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery1.png
new file mode 100644
index 000000000..c7a269682
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/open-cquery1.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/images/resolving-cquery.png b/doc/org.eclipse.emf.parsley.doc/contents/images/resolving-cquery.png
new file mode 100644
index 000000000..b9857a477
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/images/resolving-cquery.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/samples.html b/doc/org.eclipse.emf.parsley.doc/contents/samples.html
new file mode 100644
index 000000000..b32232944
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/samples.html
@@ -0,0 +1,120 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" >
+<title>Xdoc Samples</title>
+
+<link href="book.css" rel="stylesheet" type="text/css">
+<link href="code.css" rel="stylesheet" type="text/css">
+<link rel="home" href="xtext.html" title="">
+</head>
+<body>
+<a name="samples"></a>
+<h1>Xdoc Samples</h1>
+<p>
+This is text for the introduction. You can <em>emphasize</em> elements and create multiple
+paragraphs by adding a newline, like this. As you can see we also have splel checking
+with corrections.
+</p>
+<p>
+In the following the different syntactical elements are explained by example.
+</p>
+<a name="Links"></a>
+<h2>References</h2>
+<p>
+The following is an <a href="http://www.google.com">external link</a>
+and if you want to refer internally you can <a href="01-Introduction.html#Introduction" title="Go to &quot;Introduction&quot;">do so as well</a>.You can even
+refer to Java code like this : <a class="jdoc" href="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="View JavaDoc"><abbr title="java.lang.String" >String</abbr></a>.
+</p>
+<a name="CodeSections"></a>
+<h2>Code Sections</h2>
+<p>
+A code section looks like this:
+</p>
+<p>
+<div class="literallayout">
+<div class="incode">
+<p class="code">
+<span class="keyword">class</span>&nbsp;HelloWorld&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span>&nbsp;<span class="keyword">void</span>&nbsp;sayHello(String&nbsp;name)&nbsp;{<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<span class="string">"Hello&nbsp;"</span>+name);<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
+}<br/>
+</p>
+</div>
+</div>
+</p>
+<p>
+Note how the code is highlighted according to the language you choose.
+It is even possible to have different language configurations to get different coloring.
+</p>
+<a name="Lists"></a>
+<h2>Lists and Tables</h2>
+<p>
+Lists are very similar to HTML.
+We&apos;ve got ordered lists:
+
+<ol>
+ <li>
+ First
+ </li>
+ <li>
+ Second
+ </li>
+ <li>
+ Third
+ </li>
+</ol>
+</p>
+<p>
+and unordered lists:
+</p>
+<p>
+<ul>
+ <li>
+ Foo
+ </li>
+ <li>
+ Bar
+ </li>
+ <li>
+ Baz
+ </li>
+</ul>
+</p>
+<a name="Tables"></a>
+<h2>Tables</h2>
+<p>
+<table>
+<tr>
+<td>
+This is a table cell
+</td>
+<td>
+and another one
+</td>
+</tr>
+<tr>
+<td>
+table rows can contain many cells
+</td>
+<td>
+but each row has to contain the same number of cells
+</td>
+</tr>
+</table>
+</p>
+<a name="TODO"></a>
+<h2>TODO</h2>
+<p>
+<div class="todo" >
+document todo elements
+</div>
+</p>
+<a name="Images"></a>
+<h2>Images</h2>
+<p>
+Images are not fully supported by the new Xtend generator,
+but will of course be readded soon :-)
+</p>
+</body>
+</html>
diff --git a/doc/org.eclipse.emf.parsley.doc/contents/toc.xml b/doc/org.eclipse.emf.parsley.doc/contents/toc.xml
new file mode 100644
index 000000000..2ec5ece89
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/contents/toc.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<toc topic="contents/00-Main.html" label="Emf Parsley Guide" >
+ <topic href="contents/00-Main_4.html#Emf%20Parsley%20Guide_4" label="Documentation" >
+ <topic href="contents/01-Introduction.html#Introduction" label="Introduction" >
+ <topic href="contents/01-Introduction.html#reflectiveComponents" label="Reflective Components" >
+ </topic>
+ <topic href="contents/01-Introduction.html#easyToCustomize" label="Easy to Customize" >
+ </topic>
+ <topic href="contents/01-Introduction.html#architecture" label="Architecture" >
+ </topic>
+ </topic>
+ <topic href="contents/02-GettingStarted.html#GettingStarted" label="Getting Started" >
+ <topic href="contents/02-GettingStarted.html#Installation" label="Installation" >
+ </topic>
+ <topic href="contents/02-GettingStarted.html#FirstExample" label="First Example" >
+ </topic>
+ <topic href="contents/02-GettingStarted.html#RCPMail" label="RCP Mail Example" >
+ </topic>
+ </topic>
+ <topic href="contents/03-Components.html#Components" label="Components" >
+ <topic href="contents/03-Components.html#FormComponent" label="Form Component" >
+ <topic href="contents/03-Components.html#Form_Customizations" label="Form Customizations" >
+ </topic>
+ </topic>
+ <topic href="contents/03-Components.html#TreeComponent" label="Tree Component" >
+ <topic href="contents/03-Components.html#Tree_Customizations" label="Tree Customizations" >
+ </topic>
+ </topic>
+ <topic href="contents/03-Components.html#TreeFormComponent" label="Tree Form Component" >
+ <topic href="contents/03-Components.html#TreeForm_Customizations" label="Tree Form Customization" >
+ </topic>
+ </topic>
+ <topic href="contents/03-Components.html#TableComponent" label="Table Component" >
+ </topic>
+ </topic>
+ <topic href="contents/04-Customization.html#Customization" label="Customization" >
+ <topic href="contents/04-Customization.html#ResourceManagers" label="Managing Resources" >
+ <topic href="contents/04-Customization.html#ResourceLoader" label="Resource Loader" >
+ </topic>
+ <topic href="contents/04-Customization.html#EmptyResourceInitializer" label="Empty Resource Initializer" >
+ </topic>
+ <topic href="contents/04-Customization.html#EditingDomainFinder" label="Editing Domain Finder" >
+ </topic>
+ <topic href="contents/04-Customization.html#ResourceSaveManager" label="Resource Save Manager" >
+ <topic href="contents/04-Customization.html#ValidateResourceSaveManager" label="Validate Resource Save Manager" >
+ </topic>
+ </topic>
+ </topic>
+ <topic href="contents/04-Customization.html#Providers" label="Providers" >
+ <topic href="contents/04-Customization.html#FeaturesProvider" label="Features Provider" >
+ <topic href="contents/04-Customization.html#FeatureProvider1" label="Prima versione" >
+ </topic>
+ <topic href="contents/04-Customization.html#FeatureProvider2" label="Seconda versione" >
+ </topic>
+ <topic href="contents/04-Customization.html#FeaturesColumnProvider" label="Features Column Provider" >
+ </topic>
+ </topic>
+ <topic href="contents/04-Customization.html#PropertyDescriptionProvider" label="Property Description Provider" >
+ <topic href="contents/04-Customization.html#FormPropertyDescriptionProvider" label="Form Property Description Provider" >
+ </topic>
+ </topic>
+ <topic href="contents/04-Customization.html#ViewerLabelProvider" label="Viewer Label Provider" >
+ </topic>
+ <topic href="contents/04-Customization.html#ViewerContentProvider" label="Viewer Content Provider" >
+ </topic>
+ <topic href="contents/04-Customization.html#ProposalProvider" label="Proposal Provider" >
+ </topic>
+ <topic href="contents/04-Customization.html#ViewerContextMenuFactory" label="Viewer Context Menu Factory" >
+ </topic>
+ <topic href="contents/04-Customization.html#TableColumnLabelProvider" label="Table Column Label Provider" >
+ </topic>
+ </topic>
+ <topic href="contents/04-Customization.html#SelectionAndMenu" label="Selection And Menu" >
+ <topic href="contents/04-Customization.html#EmfSelectionHelper" label="Emf Selection Helper" >
+ </topic>
+ </topic>
+ <topic href="contents/04-Customization.html#Builders" label="Builders" >
+ <topic href="contents/04-Customization.html#TableViewerBuilder" label="Table Viewer Builder" >
+ </topic>
+ <topic href="contents/04-Customization.html#TableViewerColumnBuilder" label="Table Viewer Column Builder" >
+ <topic href="contents/04-Customization.html#TableViewerEditableColumnBuilder" label="Table Viewer Editable Column Builder" >
+ </topic>
+ </topic>
+ </topic>
+ <topic href="contents/04-Customization.html#Factories" label="Factories" >
+ <topic href="contents/04-Customization.html#FormFactory" label="Form Factory" >
+ </topic>
+ <topic href="contents/04-Customization.html#JfaceProviderFactory" label="Jface Provider Factory" >
+ </topic>
+ <topic href="contents/04-Customization.html#FormControlFactory" label="Form Control Factory" >
+ </topic>
+ <topic href="contents/04-Customization.html#TreeFormFactory" label="Tree Form Factory" >
+ </topic>
+ <topic href="contents/04-Customization.html#ViewerFactory" label="Viewer Factory" >
+ </topic>
+ <topic href="contents/04-Customization.html#AdapterFactoryEditingDomain" label="Viewer Factory" >
+ </topic>
+ </topic>
+ <topic href="contents/04-Customization.html#Viewers" label="Viewers" >
+ <topic href="contents/04-Customization.html#ViewerInitializer" label="Viewer Initializer" >
+ </topic>
+ </topic>
+ </topic>
+ <topic href="contents/05-DSL.html#DSL" label="EMF Components DSL" >
+ <topic href="contents/05-DSL.html#xbase" label="Xbase features" >
+ </topic>
+ </topic>
+ <topic href="contents/06-AdvancedComponents.html#AdvancedComponents" label="Advanced Components" >
+ </topic>
+ <topic href="contents/07-Eclipse4.html#Eclipse4" label="Eclipse 4" >
+ <topic href="contents/07-Eclipse4.html#GetFirstExample" label="First Example Setup" >
+ </topic>
+ <topic href="contents/07-Eclipse4.html#PrepareForEclipse4Application" label="Preparing for a pure Eclipse 4 Application" >
+ </topic>
+ <topic href="contents/07-Eclipse4.html#CreateEclipse4Application" label="Create an Eclipse 4 Application" >
+ </topic>
+ <topic href="contents/07-Eclipse4.html#Eclipse4ApplicationAndEMFComponents" label="Using an EMF Parsley TreeComposite into an Eclipse 4 Part" >
+ </topic>
+ <topic href="contents/07-Eclipse4.html#Eclipse4Save" label="Adding the dirty state and Save command" >
+ </topic>
+ </topic>
+ </topic>
+ <topic href="contents/00-Main_5.html#Emf%20Parsley%20Guide_5" label="Appendix" >
+ <topic href="contents/GettingSources.html#GettingSources" label="Getting Sources" >
+ <topic href="contents/GettingSources.html#InstallBuckminster" label="Install Buckminster in the IDE" >
+ </topic>
+ <topic href="contents/GettingSources.html#PrepareTP" label="Prepare an empty target platform" >
+ </topic>
+ <topic href="contents/GettingSources.html#MaterializeWP" label="Materialize the Workspace" >
+ <topic href="contents/GettingSources.html#CustomizeProperties" label="(Optional) Customize some Properties" >
+ </topic>
+ <topic href="contents/GettingSources.html#StartMaterialization" label="Start Materialization" >
+ </topic>
+ </topic>
+ </topic>
+ <topic href="contents/samples.html#samples" label="Xdoc Samples" >
+ <topic href="contents/samples.html#Links" label="References" >
+ </topic>
+ <topic href="contents/samples.html#CodeSections" label="Code Sections" >
+ </topic>
+ <topic href="contents/samples.html#Lists" label="Lists and Tables" >
+ </topic>
+ <topic href="contents/samples.html#Tables" label="Tables" >
+ </topic>
+ <topic href="contents/samples.html#TODO" label="TODO" >
+ </topic>
+ <topic href="contents/samples.html#Images" label="Images" >
+ </topic>
+ </topic>
+ </topic>
+</toc>
diff --git a/doc/org.eclipse.emf.parsley.doc/plugin.xml b/doc/org.eclipse.emf.parsley.doc/plugin.xml
new file mode 100644
index 000000000..9299467ce
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/plugin.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.help.toc">
+ <toc
+ file="contents/toc.xml"
+ primary="true">
+ </toc>
+ </extension>
+
+</plugin>
diff --git a/doc/org.eclipse.emf.parsley.doc/src/workflow/GenerateDocs.mwe2 b/doc/org.eclipse.emf.parsley.doc/src/workflow/GenerateDocs.mwe2
new file mode 100644
index 000000000..e58f4e660
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/src/workflow/GenerateDocs.mwe2
@@ -0,0 +1,17 @@
+module GenerateSpec
+
+import org.eclipse.emf.mwe.utils.*
+
+var targetDir = "manual"
+var modelPath = "xdoc"
+
+Workflow {
+ component = @workflow.XDocGenerator {
+ // or define search scope explicitly
+ modelPath = modelPath
+ targetDir = targetDir
+ document = "Emf Parsley Guide"
+ pdfLatex = "/usr/bin/pdflatex"
+ }
+
+}
diff --git a/doc/org.eclipse.emf.parsley.doc/website/.gitignore b/doc/org.eclipse.emf.parsley.doc/website/.gitignore
new file mode 100644
index 000000000..c96a04f00
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/website/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore \ No newline at end of file
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/00-Main.xdoc b/doc/org.eclipse.emf.parsley.doc/xdoc/00-Main.xdoc
new file mode 100644
index 000000000..8e71bc706
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/00-Main.xdoc
@@ -0,0 +1,47 @@
+document[Emf Parsley Guide]
+
+authors[Lorenzo Bettini, Vincenzo Caselli, Francesco Guidieri]
+
+codelanguage-def[Java]
+[
+ abstract,continue,for,new,switch,
+ assert,default,package,synchronized,
+ boolean,do,if,private,this,
+ break,double,implements,protected,throw,
+ byte,else,import,public,throws,
+ case,enum,instanceof,return,transient,
+ catch,extends,int,short,try,
+ char,final,interface,static,void,
+ class,finally,long,strictfp,volatile,
+ float,native,super,while
+]
+
+codelanguage-def[EmfComponents]
+[
+ import,module,parts,labelProvider,text,image,
+ propertyDescriptionProvider,featuresProvider,features,
+ formControlFactory,control,target,viewerContentProvider,
+ children,viewpart,viewname,viewclass,viewcategory
+]
+
+part[Documentation]
+
+chapter-ref[Introduction]
+
+chapter-ref[GettingStarted]
+
+chapter-ref[Components]
+
+chapter-ref[Customization]
+
+chapter-ref[DSL]
+
+chapter-ref[AdvancedComponents]
+
+chapter-ref[Eclipse4]
+
+part[Appendix]
+
+chapter-ref[GettingSources]
+
+chapter-ref[samples] \ No newline at end of file
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/01-Introduction.xdoc b/doc/org.eclipse.emf.parsley.doc/xdoc/01-Introduction.xdoc
new file mode 100644
index 000000000..8aadd1f40
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/01-Introduction.xdoc
@@ -0,0 +1,19 @@
+chapter:Introduction[Introduction]
+
+Emf Parsley is a lightweight framework that allows easy and quick development
+of EMF-based Applications. It can be configured to use all kind of EMF persistence
+implementations (XMI, Teneo, CDO).
+
+It aims at providing a set of Components like Trees, Tables and Detail Forms
+that manage the model with the introspective EMF capabilities.
+Using these components you can easily build forms, viewer or editors.
+The framework provides basic UI implementations which are customizable
+with Injection mechanism
+(based on link[http://code.google.com/p/google-guice][Google Guice]).
+
+
+section:reflectiveComponents[Reflective Components]
+
+section:easyToCustomize[Easy to Customize]
+
+section:architecture[Architecture] \ No newline at end of file
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/02-GettingStarted.xdoc b/doc/org.eclipse.emf.parsley.doc/xdoc/02-GettingStarted.xdoc
new file mode 100644
index 000000000..16330bc7c
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/02-GettingStarted.xdoc
@@ -0,0 +1,267 @@
+chapter:GettingStarted[Getting Started]
+
+To get started, you should first download "Eclipse Modeling Tools" from link[http://www.eclipse.org/downloads/][Eclipse
+Downloads]
+img[images/eclipseModelingTools.png][][ ][]
+This will ensure you have EMF and related Tools installed and ready to go.
+
+
+section:Installation[Installation]
+
+Now select "Help" -> "Install New Software..." and in the "Work with:" field insert the EMF Components update
+site link[http://www.rcp-vision.com/emf-components/updates/][http://www.rcp-vision.com/emf-components/updates/]
+and install all features.
+Although sources are not strictly required, it might help when using EMF Components
+to have a look at its sources.
+
+img[images/emf-components-update-site.png][][ ][]
+
+
+section:FirstExample[First Example]
+
+The purpose of this first example is to make use of the classical EMF Library Model example and
+create a view for editing such models using an EMF Components enabled plug-in.
+
+So let's start by creating the model plug-in with
+
+ol[
+ item[File -> New... -> Example...]
+ item[from Category "Eclipse Modeling Framework", select "Extended Library Model Example"]
+ item[press Next and Finish]
+]
+
+You will end up with three plug-ins:
+
+ul[
+item[org.eclipse.emf.examples.library (the model plug-in)]
+item[org.eclipse.emf.examples.library.edit (the edit plug-in)]
+item[org.eclipse.emf.examples.library.editor (the editor plug-in)]
+]
+
+We only need the first plugin, so you might want to remove the .edit and .editor plugins.
+
+Now you can create your first example with the appropriate wizard.
+
+ol[
+ item[select "File" -> "New" -> "Project..."]
+ item[from the "Emf Parsley" category select "Emf Parsley Dsl based Project"]
+ item[click "Next"]
+ item[give a name to the project (e.g. "org.eclipse.emf.parsley.examples.firstexample")]
+ item[click "Finish"]
+]
+
+The generated project has some classes and a e[module.parlsey] file, which opens automatically.
+Just type the following content into the {} block (note that context assist is available)
+
+code[EmfComponents][
+ parts {
+ viewpart org.eclipse.emf.parsley.examples.firstexample.view.library.treeform {
+ viewname "My Library Tree Form"
+ viewclass
+ }
+ }
+]
+
+Here above we have just declared a view part with
+
+ol[
+ item[id e["org.eclipse.emf.parsley.examples.firstexample.view.library.treeform"]]
+ item[name e["Library Tree Form"]]
+ item[class: not yet set, we are going to create
+ e["org.eclipse.emf.parsley.examples.firstexample.views.LibraryTreeFormView"]]
+]
+
+So there is still an error, in fact we need to create the declared class.
+e[Suggestion:] Just copy the above qualified class name (e["org.eclipse.emf.parsley.examples.firstexample.views.LibraryTreeFormView"]),
+select the project, right-click and select File -> New -> Class. Now paste the clipboard content into e["Name:"] field: the
+package and class name will be automatically splitted into right fields. Then click e["Finish"].
+
+Now modify the view class code with this content:
+
+code[Java][
+import org.eclipse.emf.parsley.views.AbstractSaveableTreeFormView;
+import org.eclipse.emf.common.util.URI;
+
+public class LibraryTreeFormView extends AbstractSaveableTreeFormView {
+
+ protected URI createResourceURI() {
+ return URI.createFileURI( System.getProperty("user.home") + "/MyLibrary.library" );
+ }
+
+}
+]
+
+Now get back to e[module.parlsey] file, go just after e["viewclass"] keyword, type e["LibraryTreeFormView"]
+and e[Ctrl-Space]: the content assist will set automatically the correct qualified name
+
+code[EmfComponents][
+ viewclass org.eclipse.emf.parsley.examples.firstexample.views.LibraryTreeFormView
+]
+
+when you save the above file you will notice that a new file (e["plugin.xml_emfparsley_gen"])
+is generated into the root folder of your project. Just copy this file into e["plugin.xml"].
+
+Let's focus briefly on the above e[createResourceURI()] method: our goal is allowing to manage
+a library model instance which persists on a EMF Resource.
+In this example we choose to use the EMF default persistence (XMI), but you can provide any URI
+(e.g. using Teneo, CDO or any other EMF Resource Persistence implementation)
+In particular here we choose to persist the Resource in a XMI file named e["MyLibrary.library"] into the user home
+folder (you might want to change it with any other path).
+
+We need a e[Dependency] from the model plug-in: so open e[MANIFEST.MF] file, go to e[Dependencies]
+tab, press e["Add..."] button in e["Required Plug-ins"] section and insert e["org.eclipse.emf.examples.library"]
+among dependencies.
+
+Before executing this code we need to do some little more work in order to initialize the Resource.
+
+An easy way to overcome this issue can be the following:
+
+ol[
+ item[open the class *GuiceModule (FirstexampleGuiceModule in this example) that the wizard created for you.
+ Note that this is a key class for all customizations; it allows to override several methods in order to provide custom behaviors
+ and implementations.]
+ item[override method e[bindEmptyResourceInitializer()] providing a class for Resource initialization
+
+ code[Java][
+ public Class<? extends EmptyResourceInitializer> bindEmptyResourceInitializer() {
+ return LibraryEmptyResourceInitializer.class;
+ }
+ ]
+ ]
+ item[create a new class e[LibraryEmptyResourceInitializer] extending from e[EmptyResourceInitializer] for Resource initialization
+ code[Java][
+ import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+ import org.eclipse.emf.ecore.resource.Resource;
+ import org.eclipse.emf.examples.extlibrary.EXTLibraryFactory;
+ import org.eclipse.emf.examples.extlibrary.Library;
+
+ public class LibraryEmptyResourceInitializer extends EmptyResourceInitializer {
+
+ public void initialize(Resource resource) {
+ super.initialize(resource);
+ Library library = EXTLibraryFactory.eINSTANCE.createLibrary();
+ resource.getContents().add(library);
+ }
+
+ }
+ ]
+ The method e[initialize()] will be executed only when the Resource is empty
+ (i.e., it has no contents).
+ ]
+]
+
+now get back to the e[MANIFEST.MF] and run the example
+
+img[images/first-example-launch.png][][ ][]
+
+As an Eclipse RCP developer you know, of course, that this will start another Eclipse instance (unless
+you add an Application plug-in to the launch or define an Application in the current plug-in).
+
+In this second Eclipse instance you can show the View in this way:
+ol[
+ item[e[Window -> Show View -> Other...]]
+ item[from Category "Emf Parsley", select "My Library Tree Form"]
+ item[press e[OK]]
+]
+
+img[images/first-example-run.png][][ ][]
+
+With this simple view you can start editing the model instance. For example you can set the e["name"]
+field; as soon as you start typing characters into this field you will notice that:
+ol[
+ item[the View turns to a e["dirty"] state (an asterisk symbol appears on the view tab)]
+ item[the e["Save"] toolbar button is enabled]
+ item[the typed characters are reflected into the label correspondent to the Library icon]
+]
+
+if you now perform a e["Save"] action the persistence mechanism will trigger and you will see that file
+code[<user.home>/MyLibrary.library]
+is being created on the file system. From now on, this file will keep the state of the model object whenever
+you change and save it.
+
+To create a Writer into the Library just right-click on the Library object and select e[New Child -> Writer]
+
+img[images/createWriter.png][][ ][]
+
+Please note that you might see a slightly different content in the above context-menu in case you deleted
+the .edit plugin when creating the model (e.g. e["Writers Writer"] instead of e["Writer"], e["Stock Book"] instead of e["Book"] and
+similar (this is because with EMF it is possible to customize labels also via .edit plugin).
+
+Now set for instance the writer e["name"] field and save.
+Now just play around creating Books, associating them to Writers and so on.
+As you can see you can entirely manage the EMF model instance: creating, modifying and deleting elements.
+
+Whenever the current selection on the upper side of the view changes, then the lower side shows the detail
+of this selection.
+
+However, up to this point, you have no control over the field to be shown and its order; for example
+you may want just the e["name"] attribute for the Library and e["name", "address" and "books"] attributes
+for Writers and maybe e["title", "authors" and "category"] for Books.
+
+Well, it's indeed very easy to obtain this: just edit the e[module.parsley] file,
+adding the following import (without ending line with ";")
+
+code[EmfComponents][
+import org.eclipse.emf.examples.extlibrary.*
+]
+
+and then defining the features to show
+
+code[EmfComponents][
+
+module ... {
+
+ parts {
+ ...
+ }
+
+ featuresProvider {
+ features {
+ Library -> name
+ Writer -> name, address, books
+ Book -> author, title, category
+ }
+ }
+}
+]
+
+Remeber that code completion is available, just exploit it since it helps a lot.
+
+If you restart now the application you will see that, when selecting an object, only the declared attributes
+will be shown. Furthermore, they are shown in the specified order.
+
+Did you run the application in Debug mode? Well, then you can change fields and order, save and see the
+changes without even restarting the application.
+
+Do you want to change text used for attribute labels in the detail? Just add the following:
+
+code[EmfComponents][
+ propertyDescriptionProvider {
+ text {
+ Book : author -> 'Wrote by:'
+ Writer : name -> 'Name:'
+ }
+ }
+]
+
+Or do you want to change the label shown on the tree nodes on the upper side and as detail title?
+Maybe want to format the book label like this?
+
+code[EmfComponents][
+ labelProvider {
+ text {
+ Book b -> '"' + b.title + '"' +' (by '+ b.author.name + ')'
+ }
+ }
+]
+
+img[images/labelCustomization.png][][ ][]
+
+
+
+
+
+
+
+section:RCPMail[RCP Mail Example]
+
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/03-Components.xdoc b/doc/org.eclipse.emf.parsley.doc/xdoc/03-Components.xdoc
new file mode 100644
index 000000000..ccb81e11b
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/03-Components.xdoc
@@ -0,0 +1,108 @@
+chapter:Components[Components]
+
+Here we list the behaviors that can be customized for all components.
+
+ul[
+ item[If you need a machanism to fill some data for the first time you use a model, you can provide
+ a specific implementation of ref:EmptyResourceInitializer[Emty Resource Initializer].]
+ item[If you want to interact with Resource Loading, you can provide a specific ref:ResourceLoader[Resource
+ Loader]]
+]
+
+For what concern saving objects, there are some specific parts that can be customized:
+
+ul[
+ item[ref:ResourceSaveManager[Resource Save Manager], if you want to manage the save.]
+ item[ref:ResourceSaveManager[Resource Save Manager], if you want to manage the save.]
+ item[In some cases, it can be usefull to specify an editing domain to work with. In this case it can be used the ref:EditingDomainFinder[Editing Domain Finder].]
+]
+
+The following sections describe the basic components provided, that are the foundations for all parts built upon e[Emf Parsley].
+For each component we present a set of customizations, just to get an idea of how it works. You can refer
+to ref:Customization[Customization Section] for a complete list.
+
+
+section:FormComponent[Form Component]
+
+The e[Form Component] can be used to rapresent an codeRef[org.eclipse.emf.ecore.EObject] in a row-oriented form,
+like in the image above.
+
+img[images/03-components-form.png][][ ][]
+
+For each codeRef[org.eclipse.emf.ecore.EStructuralFeature] defined for the codeRef[org.eclipse.emf.ecore.EClass]
+(that is the type of the object to rapresent), the component builds a row with a
+e[label] with the name of the feature and a e[control] to access the data. It can be used the factory
+to create such a component, like in the code below.
+
+code[Java][
+ formComposite = formFactory.createFormDetailComposite(parent, SWT.NONE);
+ formComposite.init(eObject);
+]
+
+The e[form component] can be customized in many way, in particular the feature list, the labels and the controls.
+
+
+section2:Form_Customizations[Form Customizations]
+
+The e[Form Component] can be customized in several way. Here the complete list.
+
+ul[
+ item[The e[list fo feature] displayed on the form can be customized via the ref:FeaturesProvider[Feature
+ Provider] to select the features or the order.]
+ item[The description on the left side of the form caan be customizzed via the ref:PropertyDescriptionProvider[Property
+ Description Provider].]
+ item[Otherwise to customize the controls on the right, you can use the ref:FormControlFactory[Form Control Factory].
+ ]
+ item[Depending on the feature types, can be some fields that use predefined values (e.g. combo). You can provide
+ the exact proposal list via the ref:ProposalProvider[Proposal Provider].]
+]
+
+
+
+section:TreeComponent[Tree Component]
+
+The e[Tree Component] provides a tree rapresentation of data that can be feeded with an EResource, a
+Resource URI, and a simple EObject. This component use the EMF Meta-Model information to display objects in the tree.
+
+img[images/03-components-tree.png][][ ][]
+
+section2:Tree_Customizations[Tree Customizations]
+
+The e[Tree Component]can be customized in several way via the standard EMF Edit facilities or with the EMF Components
+codeinjection based mechanism. If you are familiar with Jface APIs, you can easily use the basic class with some facilties to define the specific implementation.
+See the corrisponding sections for more details.
+
+ul[
+ item[The ref:ViewerContentProvider[Viewer Content Provider]]
+ item[The ref:ViewerLabelProvider[Viewer Label Provider]]
+ item[The ref:ViewerContextMenuFactory[Viewer Context Menu Factory]]
+]
+
+e[TODO]
+
+
+
+section:TreeFormComponent[Tree Form Component]
+
+The e[Tree Form Component] contains a ref:TreeComponent that provides a tree rapresentation of data that can be feeded with
+an EResource, a Resource URI, and a simple EObject. This component use the EMF Meta-Model information to display objects in
+the tree. The component also combines a ref:FormComponent detail that display the current selected object.
+
+img[images/03-components-treeform.png][][ ][]
+
+section2:TreeForm_Customizations[Tree Form Customization]
+
+Since e[Tree Form Component] is a combination of e[Tree Component] and e[Form Component], all their customizations
+are avaible for it.
+
+
+
+section:TableComponent[Table Component]
+
+The e[Table Component] can rapresent data in a grid, once you have specified what kind of object need to be rapresented.
+It uses metamodel infos to build column as needed.
+
+img[images/03-components-table.png][][ ][]
+
+todo[ To be continued ]
+
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/03bis-SampleImplementations.xdoc b/doc/org.eclipse.emf.parsley.doc/xdoc/03bis-SampleImplementations.xdoc
new file mode 100644
index 000000000..f4f54dd23
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/03bis-SampleImplementations.xdoc
@@ -0,0 +1,400 @@
+chapter:Samples[Samples]
+
+section:SampleImplementation[Sample Implementations]
+
+This section describes some view that are developed using EMF Components as a reference implementation to understand how it can be used.
+
+
+section2:ResourceBased[Resource Based Components]
+
+These components are used to access and manipulate resource based models.
+Since all of them specialize the abstract class codeRef[org.eclipse.emf.parsley.views.AbstractSaveableView],
+they are all customizable via the following common features:
+
+section2:Resource_ResourceLoader[Resource Customization: Context Menu Factory]
+
+section2:Resource_AdapterFactoryEditingDomain[Resource Customization: Adapter Factory Editing Domain]
+
+
+%%ul[
+%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
+%% ul[item[ref:ResourceLoader[ResourceLoader]
+%% ul[
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% ]]
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% item[ref:FeaturesProvider[FeaturesProvider]]
+%% ]]
+%% item[ref:ResourceSaveManager[ResourceSaveManager]]
+%% item[ref:EmfActionBarContributor[EmfActionBarContributor]]
+%% item[ref:ViewerInitializer[ViewerInitializer]
+%% ul[
+%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
+%% ul[
+%% item[ref:ResourceLoader[ResourceLoader]
+%% ul[
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% ]]
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% item[ref:FeaturesProvider[FeaturesProvider]]
+%% ]]
+%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
+%% ul[
+%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
+%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
+%% ]]
+%% item[ref:ViewerContextMenuFactory[ViewerContextMenuFactory]]
+%% ]]
+%%]
+section3:TableResourceView[Table Resource View]
+
+The e[Table Resource View] is implemented by codeRef[org.eclipse.emf.parsley.views.AbstractSaveableTableView]
+class that is intended to be subclassed bu user. It aims to provide a ready-to-use view containing a table that visualizes homogeneous objects.
+
+
+The following code is an simple example of how it can be used to display a list of Book (based on ExtLibrary
+example). To use this view you must first implement the code[URI createResourceURI()] method to specify resource URI.
+
+code[Java][
+@Override
+protected URI createResourceURI() {
+ return URI.createPlatformResourceURI(
+ EmfComponentsAbstractTests.MY_EXTLIBRARY_RELATIVE_PATH, true);
+}
+]
+
+Therefore you have to implements code[EClass getEClass()] method to specify wich is the type to rapresent and code[Object getContents(Resource resource)]
+for the retrieve of the collection.
+
+code[Java][
+@Override
+protected EClass getEClass() {
+ return EXTLibraryPackage.Literals.BOOK;
+}
+
+@Override
+protected Object getContents(Resource resource) {
+ Library library=(Library) resource.getContents().get(0);
+ return library.getBooks();
+}
+]
+
+Here a list of available customizations (see related links for examples):
+
+%%ul[
+%% item[ref:TableViewerBuilder[TableViewerBuilder]
+%% ul[
+%% item[ref:TableViewerColumnBuilder[TableViewerColumnBuilder]
+%% ul[
+%% item[ref:JfaceProviderFactory[JfaceProviderFactory]]
+%% item[ref:PropertyDescriptionProvider[PropertyDescriptionProvider]]
+%% item[ref:FeaturesProvider[FeaturesProvider]]
+%% ]]
+%% item[ref:ViewerInitializer[ViewerInitializer]
+%% ul[
+%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
+%% ul[
+%% item[ref:ResourceLoader[ResourceLoader]
+%% ul[
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% ]]
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% item[ref:FeaturesProvider[FeaturesProvider]]
+%% ]]
+%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
+%% ul[
+%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
+%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
+%% ]]
+%% item[ref:ViewerContextMenuFactory[ViewerContextMenuFactory]]
+%% ]]
+%% ]]
+%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
+%% ul[
+%% item[ref:ResourceLoader[ResourceLoader]
+%% ul[
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% ]]
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% item[ref:FeaturesProvider[FeaturesProvider]]
+%% ]]
+%%]
+section3:TreeResourceView[Tree Resource View]
+
+The e[Tree Resource View] is implemented by class codeRef[org.eclipse.emf.parsley.views.AbstractSaveableTreeView],
+that is intented to be subclassed by user.
+
+The following code is an simple example of how it can be used to display a tree of Book (based on ExtLibrary
+example). To use this view you must first implement the code[URI createResourceURI()] method to specify resource URI.
+
+code[Java][
+@Override
+protected URI createResourceURI() {
+ return URI.createPlatformResourceURI(
+ EmfComponentsAbstractTests.MY_EXTLIBRARY_RELATIVE_PATH, true);
+}
+]
+
+Here a list of available customizations (see related links for examples):
+
+%%ul[
+%% item[ref:ViewerInitializer[ViewerInitializer]
+%% ul[
+%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
+%% ul[
+%% item[ref:ResourceLoader[ResourceLoader]
+%% ul[
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% ]]
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% item[ref:FeaturesProvider[FeaturesProvider]]
+%% ]]
+%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
+%% ul[
+%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
+%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
+%% ]]
+%% item[ref:ViewerContextMenuFactory[ViewerContextMenuFactory]]
+%% ]]
+%%]
+section3:AbstractSaveableTreeFormView[Tree Form Resource View]
+
+The e[Tree Form Resource View] is implemented by class codeRef[org.eclipse.emf.parsley.views.AbstractSaveableTreeFormView],
+that is inteded to be subclassed by user.
+As well as in the e[Tree Resource View], it can be used to display a tree but it adds a detail form for editing.
+
+The following code is an example based on ExtLibrary example, where you can see how to implement the code[URI createResourceURI()] method to specify resource URI.
+
+code[Java][
+@Override
+protected URI createResourceURI() {
+ return URI.createPlatformResourceURI(
+ EmfComponentsAbstractTests.MY_EXTLIBRARY_RELATIVE_PATH, true);
+}
+]
+
+Here a list of available customizations (see related links for examples):
+
+%%ul[
+%% item[ref:TreeFormFactory[TreeFormFactory]
+%% ul[
+%% item[ref:ViewerInitializer[ViewerInitializer]
+%% ul[
+%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
+%% ul[
+%% item[ref:ResourceLoader[ResourceLoader]
+%% ul[
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% ]]
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% item[ref:FeaturesProvider[FeaturesProvider]]
+%% ]]
+%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
+%% ul[
+%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
+%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
+%% ]]
+%% item[ref:ViewerContextMenuFactory[ViewerContextMenuFactory]
+%% ul[
+%% item[ref:ViewerContentProvider[ViewerContentProvider]]
+%% ]]
+%% ]]
+%% item[ref:FormFactory[FormFactory]
+%% ul[
+%% item[ref:FormPropertyDescriptionProvider[FormPropertyDescriptionProvider]
+%% ul[
+%% item[ref:PropertyDescriptionProvider[PropertyDescriptionProvider]]
+%% ]]
+%% item[ref:FormFeatureControlFactory[FormFeatureControlFactory]
+%% ul[
+%% item[ref:JfaceProviderFactory[JfaceProviderFactory]]
+%% ]]
+%% item[ref:EditingDomainFinder[EditingDomainFinder]]
+%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
+%% ul[
+%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
+%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
+%% ]]
+%% item[ref:FeaturesProvider[FeaturesProvider]]
+%% ]]
+%% ]]
+%%]
+section2:SelectionChange[Selection Change Components]
+
+In this section we presents some components that are based on selection. These components extends the
+class codeRef[org.eclipse.emf.parsley.views.AbstractOnSelectionView].
+
+ul[
+ item[ref:EmfSelectionHelper[EmfSelectionHelper]]
+]
+
+section3:AbstractOnSelectionTableView[On Selection Table View (Abstract)]
+
+codeRef[org.eclipse.emf.parsley.views.AbstractOnSelectionTableView]
+
+%%ul[
+%% item[ref:ViewerFactory[ViewerFactory]
+%% ul[
+%% item[ref:TableViewerBuilder[TableViewerBuilder]
+%% ul[
+%% item[ref:TableViewerColumnBuilder[TableViewerColumnBuilder]
+%% ul[
+%% item[ref:JfaceProviderFactory[JfaceProviderFactory]]
+%% item[ref:PropertyDescriptionProvider[PropertyDescriptionProvider]]
+%% item[ref:FeaturesProvider[FeaturesProvider]]
+%% ]]
+%% ]]
+%% item[ref:ViewerInitializer[ViewerInitializer]
+%% ul[
+%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
+%% ul[
+%% item[ref:ResourceLoader[ResourceLoader]
+%% ul[
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% ]]
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% item[ref:FeaturesProvider[FeaturesProvider]]
+%% ]]
+%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
+%% ul[
+%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
+%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
+%% ]]
+%% item[ref:ViewerContextMenuFactory[ViewerContextMenuFactory]]
+%% ]]
+%% ]]
+%%]
+section3:OnSelectionFormView[On Selection Form View]
+
+codeRef[org.eclipse.emf.parsley.views.OnSelectionFormView]
+
+%%ul[
+%% item[ref:ViewerFactory[ViewerFactory]
+%% ul[
+%% item[ref:TableViewerBuilder[TableViewerBuilder]
+%% ul[
+%% item[ref:TableViewerColumnBuilder[TableViewerColumnBuilder]
+%% ul[
+%% item[ref:JfaceProviderFactory[JfaceProviderFactory]]
+%% item[ref:PropertyDescriptionProvider[PropertyDescriptionProvider]]
+%% item[ref:FeaturesProvider[FeaturesProvider]]
+%% ]]
+%% ]]
+%% item[ref:ViewerInitializer[ViewerInitializer]
+%% ul[
+%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
+%% ul[
+%% item[ref:ResourceLoader[ResourceLoader]
+%% ul[
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% ]]
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% item[ref:FeaturesProvider[FeaturesProvider]]
+%% ]]
+%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
+%% ul[
+%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
+%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
+%% ]]
+%% item[ref:ViewerContextMenuFactory[ViewerContextMenuFactory]]
+%% ]]
+%% ]]
+%%]
+section3:OnSelectionListView[On Selection List View]
+
+codeRef[org.eclipse.emf.parsley.views.OnSelectionListView]
+
+%%ul[
+%% item[ref:ViewerInitializer[ViewerInitializer]
+%% ul[
+%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
+%% ul[
+%% item[ref:ResourceLoader[ResourceLoader]
+%% ul[
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% ]]
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% item[ref:FeaturesProvider[FeaturesProvider]]
+%% ]]
+%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
+%% ul[
+%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
+%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
+%% ]]
+%% item[ref:ViewerContextMenuFactory[ViewerContextMenuFactory]]
+%% ]]
+%%]
+section3:OnSelectionTreeView[On Selection Tree View]
+
+codeRef[org.eclipse.emf.parsley.views.OnSelectionTreeView]
+
+%%ul[
+%% item[ref:ViewerInitializer[ViewerInitializer]
+%% ul[
+%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
+%% ul[
+%% item[ref:ResourceLoader[ResourceLoader]
+%% ul[
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% ]]
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% item[ref:FeaturesProvider[FeaturesProvider]]
+%% ]]
+%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
+%% ul[
+%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
+%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
+%% ]]
+%% item[ref:ViewerContextMenuFactory[ViewerContextMenuFactory]]
+%% ]]
+%%]
+section3:OnSelectionTreeFormView[On Selection Tree Form View]
+
+codeRef[org.eclipse.emf.parsley.views.OnSelectionTreeFormView]
+
+%%ul[
+%% item[ref:TreeFormFactory[TreeFormFactory]
+%% ul[
+%% item[ref:ViewerInitializer[ViewerInitializer]
+%% ul[
+%% item[ref:EditingDomainResourceLoader[EditingDomainResourceLoader]
+%% ul[
+%% item[ref:ResourceLoader[ResourceLoader]
+%% ul[
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% ]]
+%% item[ref:EmptyResourceInitializer[EmptyResourceInitializer]]
+%% item[ref:FeaturesProvider[FeaturesProvider]]
+%% ]]
+%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
+%% ul[
+%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
+%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
+%% ]]
+%% item[ref:ViewerContextMenuFactory[ViewerContextMenuFactory]
+%% ul[
+%% item[ref:ViewerContentProvider[ViewerContentProvider]]
+%% ]]
+%% ]]
+%% item[ref:FormFactory[FormFactory]
+%% ul[
+%% item[ref:FormPropertyDescriptionProvider[FormPropertyDescriptionProvider]
+%% ul[
+%% item[ref:PropertyDescriptionProvider[PropertyDescriptionProvider]]
+%% ]]
+%% item[ref:FormFeatureControlFactory[FormFeatureControlFactory]
+%% ul[
+%% item[ref:JfaceProviderFactory[JfaceProviderFactory]]
+%% ]]
+%% item[ref:EditingDomainFinder[EditingDomainFinder]]
+%% item[ref:JfaceProviderFactory[JfaceProviderFactory]
+%% ul[
+%% item[ref:ViewerLabelProvider[ViewerLabelProvider]]
+%% item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
+%% ]]
+%% item[ref:FeaturesProvider[FeaturesProvider]]
+%% ]]
+%% ]]
+%%]
+section2:Editor[Editor component]
+
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/04-Customization.xdoc b/doc/org.eclipse.emf.parsley.doc/xdoc/04-Customization.xdoc
new file mode 100644
index 000000000..ed3cfa475
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/04-Customization.xdoc
@@ -0,0 +1,452 @@
+chapter:Customization[Customization]
+
+section:ResourceManagers[Managing Resources]
+
+section2:ResourceLoader[Resource Loader]
+
+The class codeRef[org.eclipse.emf.parsley.resource.ResourceLoader] can be used to handle resource loading.
+This class uses internally the ref:EmptyResourceInitializer[Empty Resource Initializer].
+
+
+section2:EmptyResourceInitializer[Empty Resource Initializer]
+
+If you need to initialize your model, for the first use, you can define an implementation of codeRef[org.eclipse.emf.parsley.resource.EmptyResourceInitializer].
+When the main resource will be found empty, your code will be executed.
+
+section2:EditingDomainFinder[Editing Domain Finder]
+
+The class codeRef[org.eclipse.emf.parsley.edit.EditingDomainFinder] can be inherited to provide a specific
+way to find the editign domain.
+
+
+section2:ResourceSaveManager[Resource Save Manager]
+
+Resource saving is delegated to codeRef[org.eclipse.emf.parsley.edit.ResourceSaveManager]
+which, by defaults only saves the passed codeRef[org.eclipse.emf.ecore.resource.Resource].
+You can inject your own save manager and implement the method code[precondition(Resource)], for
+instance, you may want to validate the resource before saving, and in case the validation
+fails to return code[false]. If the precondition is code[false] the default implementation
+will not save the resource (and in turn will return code[false]).
+
+section3:ValidateResourceSaveManager[Validate Resource Save Manager]
+
+We provide an example of custom resource save manager: codeRef[org.eclipse.emf.parsley.edit.ValidateResourceSaveManager],
+we show here only relevant parts to give an example:
+
+code[Java][
+public class ValidateResourceSaveManager extends ResourceSaveManager {
+
+ @Override
+ protected boolean precondition(Resource resource) {
+ return super.precondition(resource) && validateModel(resource);
+ }
+
+ protected boolean validateModel(Resource resource) {
+ for (EObject eObject : resource.getContents()) {
+ Diagnostic diagnostic = Diagnostician.INSTANCE.validate(eObject);
+ if (diagnostic.getSeverity() == Diagnostic.ERROR) {
+ // SKIPPED: present the errors
+ return false;
+ } else if (diagnostic.getSeverity() == Diagnostic.WARNING) {
+ // SKIPPED: present the warnings
+ }
+ }
+ return true;
+ }
+}
+]
+
+
+section:Providers[Providers]
+
+section2:FeaturesProvider[Features Provider]
+
+ e[This can be done with Parsley DSL too!]
+
+todo[TODO: merge delle 2 versioni]
+
+section3:FeatureProvider1[Prima versione]
+
+To customize the e[feature list] it can be injected a codeRef[org.eclipse.emf.parsley.ui.provider.FeaturesProvider].
+The default is to return the list of all the features in the EClass, but the programmer can customize it (for instance,
+by returning only a superset, or using a different order) on an EClass-based strategy. The customization can be done
+redefining buildMap and adding mappings.
+
+code[Java][
+ protected void buildMap(EClassToEStructuralFeatureMap map) {
+ super.buildMap(map);
+ map.mapTo(LIBRARY,LIBRARY__NAME, ADDRESSABLE__ADDRESS);
+ }
+]
+
+In the example we specify that for the EClass e[Library] the feature that are to be displayed are e[name]
+and e[address].
+
+section3:FeatureProvider2[Seconda versione]
+
+
+When the framework builds components according to the
+codeRef[org.eclipse.emf.ecore.EStructuralFeature]s of a given
+codeRef[org.eclipse.emf.ecore.EClass] it relies on an injected
+codeRef[org.eclipse.emf.parsley.ui.provider.FeaturesProvider].
+The default behavior is to simply return all the features of the a given EClass,
+in the order they are defined in the EClass;
+you may want to provide a custom implementation by redefining
+the method code[List<EStructuralFeature> getFeatures(EClass)], or
+code[List<EStructuralFeature> getFeatures(EObject)],
+for instance by returning the features ordered according to their name
+(the following snippet uses an utility class from the framework)
+
+code[Java][
+public class OrderedEStructuralFeaturesProvider
+ extends FeaturesProvider {
+
+ @Inject
+ EStructuralFeatureNameComparator comparator;
+
+ @Override
+ public List<EStructuralFeature> getFeatures(EClass eClass) {
+ List<EStructuralFeature> features = super.getFeatures(eClass);
+ Collections.sort(features,
+ new EStructuralFeatureNameComparator());
+ return features;
+ }
+}
+]
+
+Alternatively, you can set the mappings, i.e., specify the structural
+features you want to be used given an EClass, by implementing
+the method code[buildMap], which receives the
+codeRef[org.eclipse.emf.parsley.ui.provider.FeaturesProvider$EClassToEStructuralFeatureMap]
+that can be filled with the method code[mapTo];
+for instance, using the EMF extended library
+example, this customization will return only the e[name] and e[address] features
+for code[Library], the e[firstName], e[lastName] and e[address] for
+code[Person], and the e[firstName], e[lastName] and e[books] (but
+not e[address]) for code[Writer] (which inherits from code[Person]).
+
+code[Java][
+import static org.eclipse.emf.examples.extlibrary.EXTLibraryPackage.Literals.*;
+import org.eclipse.emf.parsley.ui.provider.EStructuralFeaturesProvider;
+
+public class LibraryEStructuralFeaturesProvider extends
+ FeaturesProvider {
+
+ @Override
+ protected void buildMap(EClassToEStructuralFeatureMap map) {
+ super.buildMap(map);
+ map.mapTo(LIBRARY,
+ LIBRARY__NAME, ADDRESSABLE__ADDRESS);
+ map.mapTo(PERSON,
+ PERSON__FIRST_NAME, PERSON__LAST_NAME,
+ ADDRESSABLE__ADDRESS);
+ map.mapTo(WRITER,
+ PERSON__FIRST_NAME, PERSON__LAST_NAME,
+ WRITER__BOOKS);
+ }
+}
+]
+
+Another possibility is to build a map which relies on Strings
+both for the codeRef[org.eclipse.emf.ecore.EClass] and for
+the list of codeRef[org.eclipse.emf.ecore.EStructuralFeature];
+note that the name of the codeRef[org.eclipse.emf.ecore.EClass] should
+be obtained by using code[getInstanceClassName()]; you can also
+combine the two approaches (in that case the map built with
+code[buildMap] has the precedence):
+
+code[Java][
+import static org.eclipse.emf.examples.extlibrary.EXTLibraryPackage.Literals.*;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+
+public class LibraryEStructuralFeaturesAsStringsProvider extends
+ FeaturesProvider {
+
+ @Override
+ protected void buildMap(EClassToEStructuralFeatureMap map) {
+ super.buildMap(map);
+ map.mapTo(LIBRARY, LIBRARY__NAME, ADDRESSABLE__ADDRESS);
+ }
+
+ @Override
+ protected void buildStringMap(
+ EClassToEStructuralFeatureAsStringsMap stringMap) {
+ super.buildStringMap(stringMap);
+ stringMap.mapTo(PERSON.getInstanceClassName(), "firstName", "lastName",
+ "address");
+ stringMap.mapTo(WRITER.getInstanceClassName(), "firstName", "lastName",
+ "books");
+
+ }
+}
+]
+
+
+section3:FeaturesColumnProvider[Features Column Provider]
+
+As an extension, you can use the codeRef[org.eclipse.emf.parsley.ui.provider.FeaturesColumnProvider]:
+the customizations will be applied only to ref:TableComponent[tables], not to ref:FormComponent[Forms].
+
+
+section2:PropertyDescriptionProvider[Property Description Provider]
+
+ e[This can be done with Parsley DSL too!]
+
+The codeRef[org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider] provides labels for
+the features. It can be customized, with injection (see Injection paragraph), to customize the label on the
+left of each control. The framework use a polimorphic mechanism to find customizations, so that It can
+be written a method with a specific signature build by the keyword e['text'] followed by the EClass and the EStructuralFeature.
+All parts of the name are separated by an underscore character and the method must accept a parameter of type EStructuralFeature.
+
+In the following example we specify the label text for the feature 'Author' of Book and the feature 'Name' for
+Writer.
+
+code[Java][
+
+ public String text_Book_author(final EStructuralFeature feature) {
+ return "Wrote by:";
+ }
+
+ public String text_Writer_name(final EStructuralFeature feature) {
+ return "Name:";
+ }
+]
+
+Another chance of customization is to define a method the returns directly the control, like in the example
+below. In this case there is another parameter that is the parent composite.
+
+code[Java][
+
+ public Label label_Writer_name(Composite parent, EStructuralFeature feature) {
+ Label label = defaultLabel(parent, feature);
+ label.setBackground(getFormToolkit().getColors().getColor(IFormColors.TITLE));
+ return label;
+ }
+]
+
+section3:FormPropertyDescriptionProvider[Form Property Description Provider]
+
+The codeRef[org.eclipse.emf.parsley.ui.provider.FormPropertyDescriptionProvider] can be used if you want
+to define the description only for the form. For example using the ref:TreeFormComponent[Tree
+Form] your definition will not be used in the tree.
+
+section2:ViewerLabelProvider[Viewer Label Provider]
+
+The Label Provider can be customized by providing a specific implementation of codeRef[org.eclipse.jface.viewers.ILabelProvider]
+and injecting it in the spefic module e[(TODO)].
+EMF Components provides such an implementation with the class codeRef[org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider]
+that is inteded to be surclassed by the programmer to provides specific implementations like in the example below.
+
+code[Java][
+
+ public class CustomLibraryLabelProvider extends ViewerLabelProvider {
+
+ @Inject
+ public CustomLibraryLabelProvider(AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+
+ public String text(Book book) {
+ return "Book: " + book.getTitle();
+ }
+
+ public String image(Book book) {
+ return "book2.png";
+ }
+
+ public String text(Borrower b) {
+ return "Borrower: " + b.getFirstName();
+ }
+ }
+]
+
+section2:ViewerContentProvider[Viewer Content Provider]
+
+The programmer can provide a specific implementation of codeRef[org.eclipse.jface.viewers.IContentProvider]
+by injecting it in the spefic module e[(TODO)]. EMF Components provides an implementation with the class
+codeRef[org.eclipse.emf.parsley.edit.ui.provider.ViewerContentProvider] that can be easily used to
+specify the children of all object on the tree, like in the example below.
+
+code[Java][
+
+ public class CustomLibraryViewerContentProvider extends ViewerContentProvider {
+
+ @Inject
+ public CustomLibraryViewerContentProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ public Object children(Library library) {
+ return library.getBooks();
+ }
+
+ public Object children(Book book) {
+ ArrayList<Object> children = new ArrayList<Object>();
+ Writer author = book.getAuthor();
+ if (author != null) {
+ children.add(author);
+ }
+ children.addAll(book.getBorrowers());
+ return children;
+ }
+ }
+]
+
+section2:ProposalProvider[Proposal Provider]
+
+ e[This can be done with Parsley DSL too!]
+
+Some controls use a list of proposal to help the end user experince: for example the combo box has a
+list of proposal, but also the simple text can use the proposal to assist and correct the hand-writed
+values. For each feature it can be specified a list of proposals using a method that starts with the
+keyword e['proposals'] followed byt the EClass and Feature undescore-character-separated.
+
+code[Java][
+
+ public List<?> proposals_Book_author(Book book) {
+ List<Object> proposals = new LinkedList<Object>();
+ Writer writer = EXTLibraryFactory.eINSTANCE.createWriter();
+ writer.setFirstName("Fake");
+ writer.setLastName("Writer");
+ proposals.add(writer);
+ writer = EXTLibraryFactory.eINSTANCE.createWriter();
+ writer.setFirstName("Fake");
+ writer.setLastName("Writer2");
+ proposals.add(writer);
+ return proposals;
+ }
+]
+
+section2:ViewerContextMenuFactory[Viewer Context Menu Factory]
+
+codeRef[org.eclipse.emf.parsley.menus.ViewerContextMenuFactory]
+
+section2:TableColumnLabelProvider[Table Column Label Provider]
+
+codeRef[org.eclipse.emf.parsley.ui.provider.TableColumnLabelProvider]
+
+
+section:SelectionAndMenu[Selection And Menu]
+
+section2:EmfSelectionHelper[Emf Selection Helper]
+
+codeRef[org.eclipse.emf.parsley.util.EmfSelectionHelper]
+
+
+section:Builders[Builders]
+
+section2:TableViewerBuilder[Table Viewer Builder]
+
+codeRef[org.eclipse.emf.parsley.builders.TableViewerBuilder]
+
+ul[
+ item[ref:TableViewerColumnBuilder[TableViewerColumnBuilder]]
+ item[ref:ViewerInitializer[ViewerInitializer]]
+]
+
+section2:TableViewerColumnBuilder[Table Viewer Column Builder]
+
+codeRef[org.eclipse.emf.parsley.builders.TableViewerColumnBuilder]
+
+ul[
+ item[ref:JfaceProviderFactory[JfaceProviderFactory]]
+ item[ref:PropertyDescriptionProvider[PropertyDescriptionProvider]]
+ item[ref:FeaturesProvider[FeaturesProvider]]
+]
+
+section3:TableViewerEditableColumnBuilder[Table Viewer Editable Column Builder]
+
+codeRef[org.eclipse.emf.parsley.builders.TableViewerEditableColumnBuilder]
+
+
+
+section:Factories[Factories]
+
+section2:FormFactory[Form Factory]
+
+codeRef[org.eclipse.emf.parsley.factories.FormFactory]
+
+ul[
+ item[ref:FormPropertyDescriptionProvider[FormPropertyDescriptionProvider]]
+ item[ref:FormControlFactory[Form Control Factory]]
+ item[ref:EditingDomainFinder[EditingDomainFinder]]
+ item[ref:JfaceProviderFactory[JfaceProviderFactory]]
+ item[ref:FeaturesProvider[FeaturesProvider]]
+]
+
+section2:JfaceProviderFactory[Jface Provider Factory]
+
+codeRef[org.eclipse.emf.parsley.factories.ColumnLabelProviderFactory]
+
+ul[
+ item[ref:ViewerLabelProvider[ViewerLabelProvider]]
+ item[ref:TableColumnLabelProvider[TableColumnLabelProvider]]
+]
+
+
+section2:FormControlFactory[Form Control Factory]
+
+ e[This can be done with Parsley DSL too!]
+
+If you want to customize the controls on the right, it can be injected a specification of the class codeRef[org.eclipse.emf.parsley.binding.FormControlFactory].
+Using the same polimorphic mechanism of the labels, the programmer can write a method with the keyword e['control']
+followed by the EClass and EStructuralFeature undescore-character-separated. In the signature of the
+method must be both the e[DataBinding Context] and the e[Feature Observable] that can be used for databinding.
+
+code[Java][
+
+ public Control control_Writer_name(DataBindingContext dbc,IObservableValue featureObservable) {
+ //Creating the control
+ Text text = getToolkit().createText(getParent(), "");
+ text.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TREE_BORDER);
+ text.setBackground(getToolkit().getColors().getColor(IFormColors.TITLE));
+ //Binding the control to the feature observable
+ dbc.bindValue(SWTObservables.observeText(text, SWT.Modify), featureObservable);
+ return text;
+ }
+]
+
+For more info, see the other parts that are used internally by the e[Form Control Factory]:
+
+ul[
+ item[ref:JfaceProviderFactory[JfaceProviderFactory]]
+]
+
+
+
+section2:TreeFormFactory[Tree Form Factory]
+
+codeRef[org.eclipse.emf.parsley.factories.TreeFormFactory]
+
+ul[
+ item[ref:ViewerInitializer[ViewerInitializer]]
+ item[ref:FormFactory[FormFactory]]
+]
+
+section2:ViewerFactory[Viewer Factory]
+
+codeRef[org.eclipse.emf.parsley.factories.ViewerFactory]
+
+ul[
+ item[ref:TableViewerBuilder[TableViewerBuilder]]
+ item[ref:ViewerInitializer[ViewerInitializer]]
+]
+
+section2:AdapterFactoryEditingDomain[Viewer Factory]
+
+AdapterFactoryEditingDomain
+
+AdapterFactory
+
+section:Viewers[Viewers]
+
+section2:ViewerInitializer[Viewer Initializer]
+
+codeRef[org.eclipse.emf.parsley.viewers.ViewerInitializer]
+
+ul[
+ item[e[AdapterFactoryEditingDomain]]
+ item[ref:ViewerContextMenuFactory[AdapterFactory]]
+ item[e[ILabelProvider]]
+ item[e[IContentProvider]]
+]
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/05-DSL.xdoc b/doc/org.eclipse.emf.parsley.doc/xdoc/05-DSL.xdoc
new file mode 100644
index 000000000..fc85b81e1
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/05-DSL.xdoc
@@ -0,0 +1,4 @@
+chapter:DSL[EMF Components DSL]
+
+section:xbase[Xbase features]
+
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/06-AdvancedComponents.xdoc b/doc/org.eclipse.emf.parsley.doc/xdoc/06-AdvancedComponents.xdoc
new file mode 100644
index 000000000..ffdeaadd3
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/06-AdvancedComponents.xdoc
@@ -0,0 +1 @@
+chapter:AdvancedComponents[Advanced Components] \ No newline at end of file
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/07-Eclipse4.xdoc b/doc/org.eclipse.emf.parsley.doc/xdoc/07-Eclipse4.xdoc
new file mode 100644
index 000000000..975abdf9d
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/07-Eclipse4.xdoc
@@ -0,0 +1,223 @@
+chapter:Eclipse4[Eclipse 4]
+
+Instead of using the Extension Point mechanism, EMF Components leverages from DSL and Google Guice Injection.
+
+Because of this, it is very easy to use it with Eclipse 4.
+
+section:GetFirstExample[First Example Setup]
+
+If you followed the steps described in section ref:GettingStarted[Getting Started] you will have already
+what we need to begin. Otherwise the following wizard will bring you to that point.
+
+ol[
+ item[File -> New... -> Example...]
+ item[from Category "Emf Parsley Examples", select "Emf Parsley First Example"]
+ item[press Next and Finish]
+]
+
+You will end up with three plug-ins:
+
+ul[
+item[org.eclipse.emf.parsley.examples.firstexample (the EMF Components example plug-in)]
+item[org.eclipse.emf.examples.library (the model plug-in)]
+item[org.eclipse.emf.examples.library.edit (the model.edit plug-in)]
+]
+
+As a reminder, in section ref:GettingStarted[Getting Started] we reached the point where we launched a second Eclipse
+instance (but, of course, just defining a product you could have a standalone 3.x application) with a
+view (called "My Library Tree Form") that allowed to manage the model.
+
+section:PrepareForEclipse4Application[Preparing for a pure Eclipse 4 Application]
+
+What we will do now is starting from the previous step and create an Eclipse 4 Application (on top of
+the previous plug-ins) that gets to the same result, but now with a pure Eclipse 4 Part.
+
+In order to do this we need to export the e["org.eclipse.emf.parsley.examples.firstexample"] package from the first plug-in.
+
+
+section:CreateEclipse4Application[Create an Eclipse 4 Application]
+
+Now let's create a new, empty, Eclipse 4 application, e.g. e["org.eclipse.emf.parsley.examples.firstexample.application"]
+(you can find details on how to create Eclipse 4 applications in link[http://www.rcp-vision.com/?p=4694&lang=en][our
+tutorials]).
+
+Create a Part and ensure that the application starts.
+
+section:Eclipse4ApplicationAndEMFComponents[Using an EMF Parsley TreeComposite into an Eclipse 4 Part]
+
+In the just created plug-in we need dependencies from the previous plug-ins: so open the e[org.eclipse.emf.parsley.examples.firstexample.application/MANIFEST.MF] file, go to e[Dependencies]
+tab and add the three previous plug-ins. Add also e["org.eclipse.emf.parsley"] plug-in.
+Don't forget to add the previous, and the required plug-ins, also to the Product.
+
+Open the Part java class and make the following changes:
+code[EmfComponents][
+// Use these imports during Organizing Imports operation
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.swt.widgets.Composite;
+]
+
+code[EmfComponents][
+// The part implements IMenuListener for context menu handling
+public class MyEclipse4Part implements IMenuListener
+]
+
+code[EmfComponents][
+//the parent composite
+private Composite parent;
+//the EMF Parley composite for showing a tree and a detail form
+private TreeFormComposite treeFormComposite;
+//the EMF Resource
+private Resource resource;
+
+//Guice injected EMF Parsley component for contributing to the tree context menu
+private TreeActionBarContributor treeActionBarContributor = FirstexampleActivator.getDefault().getInjector()
+
+ .getInstance(TreeActionBarContributor.class);
+
+
+//Guice injected EMF Parsley factory for the tree detail form
+private TreeFormFactory treeFormFactory = FirstexampleActivator.getDefault().getInjector()
+
+ .getInstance(TreeFormFactory.class);
+
+//Guice injected EMF Parsley Resource loader
+private ResourceLoader resourceLoader = FirstexampleActivator.getDefault().getInjector()
+
+ .getInstance(ResourceLoader.class);
+
+//Guice injected EMF Parsley editing domain
+private AdapterFactoryEditingDomain editingDomain = FirstexampleActivator.getDefault().getInjector()
+
+ .getInstance(AdapterFactoryEditingDomain.class);
+
+//Guice injected viewer initializer
+private ViewerInitializer viewerInitializer = (ViewerInitializer) FirstexampleActivator.getDefault().getInjector()
+
+ .getInstance(ViewerInitializer.class);
+
+//Guice injected save manager
+private ResourceSaveManager resourceSaveManager = FirstexampleActivator.getDefault().getInjector()
+
+ .getInstance(ResourceSaveManager.class);
+
+//URI for EMF Resource
+private URI uri = URI.createFileURI(System.getProperty("user.home")
+
+ + "/MyLibrary.library");
+]
+
+
+Modify the e[@PostConstruct] method with this code:
+
+code[EmfComponents][
+@PostConstruct
+public void postConstruct(Composite parent) {
+ this.parent = parent;
+
+ // Initialize TreeFormFactory & ResourceLoader
+ init(treeFormFactory, resourceLoader);
+
+ // Prepare the menu action bar contributor upon the selection
+ treeFormComposite.getViewer().addSelectionChangedListener(treeActionBarContributor);
+
+}
+]
+
+and add the following methods:
+
+code[EmfComponents][
+
+public void init(TreeFormFactory treeFormFactory, ResourceLoader resourceLoader) {
+ //create the tree-form composite
+ treeFormComposite = treeFormFactory.createTreeFormMasterDetailComposite(parent, SWT.BORDER);
+ //load the resource
+ resource = resourceLoader.getResource(editingDomain, uri).getResource();
+ //update the composite
+ treeFormComposite.update(resource);
+ //initialize and bind the context menu to the tree-form composite
+ treeActionBarContributor.initialize(editingDomain);
+ viewerInitializer.addContextMenu(
+ treeFormComposite.getViewer(), treeActionBarContributor, editingDomain, this);
+}
+
+
+@Override
+public void menuAboutToShow(IMenuManager manager) {
+ treeActionBarContributor.menuAboutToShow(manager);
+}
+]
+
+If you now run the application you will be able to manage the model:
+
+img[images/07-eclipse4-part.png][][ ][]
+
+but you will notice that it is not possible to persist the changes to the model.
+
+section:Eclipse4Save[Adding the dirty state and Save command]
+
+In order to allow persisting the model changes we have to add the dirty state handling to the part and
+the Save command to the application.
+Let's start with adding the following attribute to the part
+
+code[EmfComponents][
+@Inject
+MDirtyable dirtyable;
+]
+
+initialize it in the e[@PostConstruct] method
+
+code[EmfComponents][
+@PostConstruct
+public void postConstruct(Composite parent, MDirtyable dirtyable) {
+
+ this.dirtyable = dirtyable;
+
+ this.dirtyable.setDirty(false);
+]
+
+add to e[init] method the following code in order to update the dirty state
+
+code[EmfComponents][
+ editingDomain.getCommandStack().addCommandStackListener(
+ new CommandStackListener() {
+ public void commandStackChanged(EventObject event) {
+ if (dirtyable != null)
+ dirtyable.setDirty(true);
+ }
+ });
+]
+
+and add the e[@Persist] method, which will be called when the part is saved
+
+code[EmfComponents][
+@Persist
+public void save(MDirtyable dirty) throws IOException {
+ if (resourceSaveManager.save(resource)) {
+
+ if (dirty != null) {
+
+ dirty.setDirty(false);
+
+ }
+
+ }
+}
+]
+
+and, in the end, add the e[Save] handler along with the correspondent e[Command] and e[Menu]
+(you can find how to create handlers, commands and menus in an Eclipse 4 applications in link[http://www.rcp-vision.com/?p=4972&lang=en][our
+tutorials])
+
+code[EmfComponents][
+public class SaveHandler {
+
+ @Execute
+ void execute(EPartService partService, @Named(IServiceConstants.ACTIVE_PART) MPart part) {
+
+ partService.savePart(part, false);
+ }
+
+}
+]
+
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/GettingSources.xdoc b/doc/org.eclipse.emf.parsley.doc/xdoc/GettingSources.xdoc
new file mode 100644
index 000000000..1aab7acbf
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/GettingSources.xdoc
@@ -0,0 +1,109 @@
+chapter:GettingSources[Getting Sources]
+
+If you want to get the sources of EMF Components,
+for instance, to contribute new features and patches, you can get them
+via Git.
+
+We use link[http://www.eclipse.org/buckminster/][Buckminster] as the
+building and materialization infrastructure; this will let you
+automatically materialize the sources in the workspace and setup
+the target platform, so that you will have everything that is necessary
+to have a working workspace with EMF Components sources.
+
+For link[http://eclipse.org/rap/][RAP] related project sources
+you will have to use a different workspace (and the materialized target
+platform will be different). The procedure is the same, you will just
+need to use a different URL for the materialization (as explained in the
+following).
+
+Some projects will be common to both RCP environment
+and RAP environment.
+
+section:InstallBuckminster[Install Buckminster in the IDE]
+
+First of all, you need to install Buckminster in your Eclipse;
+you can do that using the update site
+
+e[http://download.eclipse.org/tools/buckminster/updates-4.2]
+
+You need to install the core, git and pde features.
+
+img[images/install-buckminster.png][Install Buckminster features][ ][width:90%]
+
+section:PrepareTP[Prepare an empty target platform]
+
+It is better to start with an empty target platform in your IDE
+(then Buckminster will materialize the required features and
+bundles starting from that empty target);
+you then need to create an empty target platform manually that contains
+one single and empty directory and set this target platform active.
+A subsequent resolution/materialization will use that platform.
+Here are the detailed steps:
+
+ol[
+ item[Create a new general project named TP
+ (or some name of your preference)]
+ item[Open "Window" => "Preferences" and expand "Plug-in Development"]
+ item[Select "Target Platform"]
+ item[Click "Add..."]
+ item[Click "Next>" (i.e. start with nothing)]
+ item[Enter TP in the Name: field]
+ item[Click "Add..."]
+ item[Select "Directory" and click "Next"]
+ item[Click on "Variables..."]
+ item[Scroll down and select "workspace_loc" and then type TP in the Argument: field.]
+ item[Click "OK" and then "Finish" and then "Finish" again.]
+ item[Set your new target definition active by checking it in the list of Target definitions: and click "OK"]
+]
+
+section:MaterializeWP[Materialize the Workspace]
+
+From the File menu choose e[Open a Component Query...] and
+use this URL
+
+link[http://emf-components.eclipselabs.org.codespot.com/git/releng/org.eclipse.emf.parsley.buckminster/build.cquery][http://emf-components.eclipselabs.org.codespot.com/git/releng/org.eclipse.emf.parsley.buckminster/build.cquery]
+
+If you want to materialize a workspace with EMF Components RAP
+related projects use this URL instead
+
+link[http://emf-components.eclipselabs.org.codespot.com/git/releng/org.eclipse.emf.parsley.rap.buckminster/build.cquery][http://emf-components.eclipselabs.org.codespot.com/git/releng/org.eclipse.emf.parsley.rap.buckminster/build.cquery]
+
+
+img[images/open-cquery.png][The component query opened][ ][width:90%]
+
+section2:CustomizeProperties[(Optional) Customize some Properties]
+
+Before starting the materialization, you might want to customize
+some properties; you can do that in the e[Properties] tab of
+the opened component query:
+
+img[images/open-cquery1.png][The properties tab][ ][width:90%]
+
+You can add a property by pressing
+the e[New] button.
+
+For instance, you can customize the path in your system where
+the git repository will be cloned, which defaults to
+e[${user.home}/git/emf-components]); for instance, you can change it
+to something else
+
+img[images/open-cquery-new-property1.png][Property customization][ ][width:50%]
+
+section2:StartMaterialization[Start Materialization]
+
+You can now press the button in the opened query e[Resolve and Materialize].
+This will start the materialization process which will consist of
+cloning the git repository, materialize the target platform and importing
+all the projects into the workspace.
+
+img[images/resolving-cquery.png][Materialization...][ ][width:70%]
+
+Materializing the target platform may take sometime (depending on your
+network connection), so you might want to go and get a coffee
+in the meantime ;)
+
+When the whole process terminates, you will have a working
+workspace with EMF Components projects and the needed target platform
+(thus, you should have no error!).
+
+img[images/materialized.png][The final materialized workspace][ ][width:90%]
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/images/03-components-form.png b/doc/org.eclipse.emf.parsley.doc/xdoc/images/03-components-form.png
new file mode 100644
index 000000000..5811ffb0b
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/images/03-components-form.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/images/03-components-table.png b/doc/org.eclipse.emf.parsley.doc/xdoc/images/03-components-table.png
new file mode 100644
index 000000000..ed648fb81
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/images/03-components-table.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/images/03-components-tree.png b/doc/org.eclipse.emf.parsley.doc/xdoc/images/03-components-tree.png
new file mode 100644
index 000000000..795f97434
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/images/03-components-tree.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/images/03-components-treeform.png b/doc/org.eclipse.emf.parsley.doc/xdoc/images/03-components-treeform.png
new file mode 100644
index 000000000..4e69fb98a
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/images/03-components-treeform.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/images/07-eclipse4-part.png b/doc/org.eclipse.emf.parsley.doc/xdoc/images/07-eclipse4-part.png
new file mode 100644
index 000000000..f878b9b48
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/images/07-eclipse4-part.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/images/createWriter.png b/doc/org.eclipse.emf.parsley.doc/xdoc/images/createWriter.png
new file mode 100644
index 000000000..3a8288a6e
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/images/createWriter.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/images/eclipseModelingTools.png b/doc/org.eclipse.emf.parsley.doc/xdoc/images/eclipseModelingTools.png
new file mode 100644
index 000000000..7824963ef
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/images/eclipseModelingTools.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/images/emf-components-update-site.png b/doc/org.eclipse.emf.parsley.doc/xdoc/images/emf-components-update-site.png
new file mode 100644
index 000000000..0a7c3827f
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/images/emf-components-update-site.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/images/first-example-launch.png b/doc/org.eclipse.emf.parsley.doc/xdoc/images/first-example-launch.png
new file mode 100644
index 000000000..f80299583
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/images/first-example-launch.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/images/first-example-run.png b/doc/org.eclipse.emf.parsley.doc/xdoc/images/first-example-run.png
new file mode 100644
index 000000000..fa74db661
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/images/first-example-run.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/images/install-buckminster.png b/doc/org.eclipse.emf.parsley.doc/xdoc/images/install-buckminster.png
new file mode 100644
index 000000000..aa0788306
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/images/install-buckminster.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/images/labelCustomization.png b/doc/org.eclipse.emf.parsley.doc/xdoc/images/labelCustomization.png
new file mode 100644
index 000000000..953dc0669
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/images/labelCustomization.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/images/materialized.png b/doc/org.eclipse.emf.parsley.doc/xdoc/images/materialized.png
new file mode 100644
index 000000000..44344a0a4
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/images/materialized.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/images/open-cquery-new-property.png b/doc/org.eclipse.emf.parsley.doc/xdoc/images/open-cquery-new-property.png
new file mode 100644
index 000000000..f542f9fe5
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/images/open-cquery-new-property.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/images/open-cquery-new-property1.png b/doc/org.eclipse.emf.parsley.doc/xdoc/images/open-cquery-new-property1.png
new file mode 100644
index 000000000..2f8c8e7c4
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/images/open-cquery-new-property1.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/images/open-cquery.png b/doc/org.eclipse.emf.parsley.doc/xdoc/images/open-cquery.png
new file mode 100644
index 000000000..c73edd8e0
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/images/open-cquery.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/images/open-cquery1.png b/doc/org.eclipse.emf.parsley.doc/xdoc/images/open-cquery1.png
new file mode 100644
index 000000000..c7a269682
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/images/open-cquery1.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/images/resolving-cquery.png b/doc/org.eclipse.emf.parsley.doc/xdoc/images/resolving-cquery.png
new file mode 100644
index 000000000..b9857a477
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/images/resolving-cquery.png
Binary files differ
diff --git a/doc/org.eclipse.emf.parsley.doc/xdoc/samples.xdoc b/doc/org.eclipse.emf.parsley.doc/xdoc/samples.xdoc
new file mode 100644
index 000000000..519d41016
--- /dev/null
+++ b/doc/org.eclipse.emf.parsley.doc/xdoc/samples.xdoc
@@ -0,0 +1,63 @@
+chapter:samples[Xdoc Samples]
+
+This is text for the introduction. You can e[emphasize] elements and create multiple
+paragraphs by adding a newline, like this. As you can see we also have splel checking
+with corrections.
+
+In the following the different syntactical elements are explained by example.
+
+section:Links[References]
+
+The following is an link[http://www.google.com][external link]
+and if you want to refer internally you can ref:Introduction[do so as well].You can even
+refer to Java code like this : codeRef[java.lang.String].
+
+section:CodeSections[Code Sections]
+
+A code section looks like this:
+
+code[Java][
+ class HelloWorld {
+ public void sayHello(String name) {
+ System.out.println("Hello "+name);
+ }
+ }
+]
+
+Note how the code is highlighted according to the language you choose.
+It is even possible to have different language configurations to get different coloring.
+
+section:Lists[Lists and Tables]
+
+Lists are very similar to HTML.
+We've got ordered lists:
+
+ol[
+ item[First]
+ item[Second]
+ item[Third]
+]
+
+and unordered lists:
+
+ul[
+ item[Foo]
+ item[Bar]
+ item[Baz]
+]
+
+section:Tables[Tables]
+
+table[
+tr[ td[This is a table cell] td[and another one]]
+tr[ td[table rows can contain many cells] td[but each row has to contain the same number of cells]]
+]
+
+section:TODO[TODO]
+
+todo[document todo elements]
+
+section:Images[Images]
+
+Images are not fully supported by the new Xtend generator,
+but will of course be readded soon :-) \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/.classpath b/dsl/org.eclipse.emf.parsley.dsl.tests/.classpath
new file mode 100644
index 000000000..ff563c581
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/.project b/dsl/org.eclipse.emf.parsley.dsl.tests/.project
new file mode 100644
index 000000000..ba3ff9394
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.dsl.tests</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/.settings/org.eclipse.core.resources.prefs b/dsl/org.eclipse.emf.parsley.dsl.tests/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 000000000..99f26c020
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/.settings/org.eclipse.jdt.core.prefs b/dsl/org.eclipse.emf.parsley.dsl.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/.settings/org.eclipse.jdt.launching.prefs b/dsl/org.eclipse.emf.parsley.dsl.tests/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/EmfComponentsDslAllTests.launch b/dsl/org.eclipse.emf.parsley.dsl.tests/EmfComponentsDslAllTests.launch
new file mode 100644
index 000000000..1f7280e6b
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/EmfComponentsDslAllTests.launch
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslAllTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.parsley.dsl.tests.EmfComponentsDslAllTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.dsl.tests"/>
+</launchConfiguration>
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/META-INF/MANIFEST.MF b/dsl/org.eclipse.emf.parsley.dsl.tests/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..589a62d17
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,27 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.emf.parsley.dsl.tests
+Bundle-Vendor: My Company
+Bundle-Version: 0.1.0.qualifier
+Bundle-SymbolicName: org.eclipse.emf.parsley.dsl.tests;singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.emf.parsley.dsl,
+ org.eclipse.emf.parsley.dsl.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.xtext.junit4;bundle-version="[2.4.2,2.5.0)",
+ org.eclipse.ui.workbench;resolution:=optional,
+ com.google.guava,
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.4.2,2.5.0)",
+ org.eclipse.xtext.xbase.junit;bundle-version="[2.4.2,2.5.0)",
+ org.eclipse.jdt.core;bundle-version="3.8.1",
+ org.eclipse.emf.parsley.examples.library;bundle-version="0.1.0"
+Import-Package: org.apache.log4j,
+ org.junit;version="4.5.0",
+ org.junit.runner;version="4.5.0",
+ org.junit.runner.manipulation;version="4.5.0",
+ org.junit.runner.notification;version="4.5.0",
+ org.junit.runners;version="4.5.0",
+ org.junit.runners.model;version="4.5.0",
+ org.hamcrest.core
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.parsley.dsl
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/build.properties b/dsl/org.eclipse.emf.parsley.dsl.tests/build.properties
new file mode 100644
index 000000000..07ad24941
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/build.properties
@@ -0,0 +1,6 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = META-INF/,\
+ .
+
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/it.rcpvision.emf.components.dsl.tests.launch b/dsl/org.eclipse.emf.parsley.dsl.tests/it.rcpvision.emf.components.dsl.tests.launch
new file mode 100644
index 000000000..a678252d9
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/it.rcpvision.emf.components.dsl.tests.launch
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.dsl.tests"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.emf.parsley.dsl.tests"/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.dsl.tests"/>
+</launchConfiguration>
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDslInjectorProvider.java b/dsl/org.eclipse.emf.parsley.dsl.tests/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDslInjectorProvider.java
new file mode 100644
index 000000000..8f9dde38b
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDslInjectorProvider.java
@@ -0,0 +1,45 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.dsl;
+
+import org.eclipse.xtext.junit4.GlobalRegistries;
+import org.eclipse.xtext.junit4.GlobalRegistries.GlobalStateMemento;
+import org.eclipse.xtext.junit4.IInjectorProvider;
+import org.eclipse.xtext.junit4.IRegistryConfigurator;
+
+import com.google.inject.Injector;
+
+public class EmfParsleyDslInjectorProvider implements IInjectorProvider, IRegistryConfigurator {
+
+ protected GlobalStateMemento stateBeforeInjectorCreation;
+ protected GlobalStateMemento stateAfterInjectorCreation;
+ protected Injector injector;
+
+ static {
+ GlobalRegistries.initializeDefaults();
+ }
+
+ public Injector getInjector()
+ {
+ if (injector == null) {
+ stateBeforeInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
+ this.injector = internalCreateInjector();
+ stateAfterInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
+ }
+ return injector;
+ }
+
+ protected Injector internalCreateInjector() {
+ return new EmfParsleyDslStandaloneSetup().createInjectorAndDoEMFRegistration();
+ }
+
+ public void restoreRegistry() {
+ stateBeforeInjectorCreation.restoreGlobalState();
+ }
+
+ public void setupRegistry() {
+ getInjector();
+ stateAfterInjectorCreation.restoreGlobalState();
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDslUiInjectorProvider.java b/dsl/org.eclipse.emf.parsley.dsl.tests/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDslUiInjectorProvider.java
new file mode 100644
index 000000000..9b98723c5
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDslUiInjectorProvider.java
@@ -0,0 +1,16 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.dsl;
+
+import org.eclipse.xtext.junit4.IInjectorProvider;
+
+import com.google.inject.Injector;
+
+public class EmfParsleyDslUiInjectorProvider implements IInjectorProvider {
+
+ public Injector getInjector() {
+ return org.eclipse.emf.parsley.dsl.ui.internal.EmfParsleyDslActivator.getInstance().getInjector("org.eclipse.emf.parsley.dsl.EmfParsleyDsl");
+ }
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EClassTests.java b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EClassTests.java
new file mode 100644
index 000000000..5c38b4b1f
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EClassTests.java
@@ -0,0 +1,20 @@
+package org.eclipse.emf.parsley.dsl.tests;
+
+import static org.junit.Assert.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.junit.Test;
+
+public class EClassTests {
+
+ @Test
+ public void testEClass() {
+ EClass c = EXTLibraryPackage.Literals.LIBRARY;
+ assertEquals(Library.class, c.getInstanceClass());
+ assertEquals("org.eclipse.emf.parsley.examples.library.Library",
+ c.getInstanceClassName());
+ }
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslAbstractTests.xtend b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslAbstractTests.xtend
new file mode 100644
index 000000000..31368ccdc
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslAbstractTests.xtend
@@ -0,0 +1,67 @@
+package org.eclipse.emf.parsley.dsl.tests
+
+import com.google.inject.Inject
+import org.eclipse.emf.ecore.EClass
+import org.eclipse.emf.parsley.dsl.model.Model
+import org.eclipse.emf.parsley.dsl.tests.inputs.TestInputs
+import org.eclipse.emf.parsley.dsl.tests.inputs.TestInputsWithErrors
+import org.eclipse.xtext.junit4.InjectWith
+import org.eclipse.xtext.junit4.XtextRunner
+import org.eclipse.xtext.junit4.util.ParseHelper
+import org.eclipse.xtext.junit4.validation.ValidationTestHelper
+import org.junit.BeforeClass
+import org.junit.runner.RunWith
+
+import static extension org.junit.Assert.*
+import org.eclipse.emf.parsley.dsl.EmfParsleyDslInjectorProvider
+
+@RunWith(typeof(XtextRunner))
+@InjectWith(typeof(EmfParsleyDslInjectorProvider))
+class EmfComponentsDslAbstractTests {
+
+ @Inject
+ protected TestInputs inputs
+
+ @Inject
+ protected TestInputsWithErrors inputsWithErrors
+
+ @Inject extension ParseHelper<Model>
+
+ @Inject extension ValidationTestHelper
+
+ @BeforeClass
+ def static void setCRLF() {
+ System::setProperty("line.separator", "\n")
+ }
+
+ def parseAndAssertNoError(CharSequence s) {
+ var ts = s.parse
+ ts.assertNoErrors
+ ts
+ }
+
+ def parseAndAssertError(CharSequence s, EClass objectType, String code,
+ String messagePart) {
+ s.parse.assertError(objectType, code, messagePart)
+ }
+
+ def parseModel(CharSequence s) {
+ s.parse
+ }
+
+ def parseAndAssertErrors(CharSequence s) {
+ (s.parse.validate.size > 0).assertTrue
+ }
+
+ def module(CharSequence s) {
+ s.parseAndAssertNoError.module
+ }
+
+ def assertEqualsStrings(Object expected, Object actual) {
+ assertEquals("" + expected, "" + actual)
+ }
+
+ def partSpecification(CharSequence s) {
+ s.module.parts.head
+ }
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslAllTests.java b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslAllTests.java
new file mode 100644
index 000000000..5d81e9b4d
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslAllTests.java
@@ -0,0 +1,31 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.dsl.tests;
+
+import org.eclipse.emf.parsley.dsl.tests.EmfComponentsDslGeneratorTests;
+import org.eclipse.emf.parsley.dsl.tests.EmfComponentsDslJvmModelInferrerTests;
+import org.eclipse.emf.parsley.dsl.tests.EmfComponentsDslParserTests;
+import org.eclipse.emf.parsley.dsl.tests.EmfComponentsDslPluginXmlGeneratorTests;
+import org.eclipse.emf.parsley.dsl.tests.EmfComponentsDslValidatorTests;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+/**
+ * @author bettini
+ *
+ */
+@RunWith(Suite.class)
+@Suite.SuiteClasses({
+ EClassTests.class,
+ EmfComponentsDslParserTests.class,
+ EmfParsleyDslScopingTests.class,
+ EmfComponentsDslValidatorTests.class,
+ EmfComponentsDslJvmModelInferrerTests.class,
+ EmfComponentsDslPluginXmlGeneratorTests.class,
+ EmfComponentsDslGeneratorTests.class
+})
+public class EmfComponentsDslAllTests {
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslGeneratorTests.xtend b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslGeneratorTests.xtend
new file mode 100644
index 000000000..98ebe4098
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslGeneratorTests.xtend
@@ -0,0 +1,704 @@
+package org.eclipse.emf.parsley.dsl.tests
+
+import com.google.inject.Inject
+import org.eclipse.emf.parsley.dsl.EmfParsleyDslInjectorProvider
+import org.eclipse.emf.parsley.dsl.tests.util.CustomCompilationTestHelper
+import org.eclipse.xtext.junit4.InjectWith
+import org.eclipse.xtext.junit4.XtextRunner
+import org.junit.Test
+import org.junit.runner.RunWith
+
+import static org.junit.Assert.*
+
+@RunWith(typeof(XtextRunner))
+@InjectWith(typeof(EmfParsleyDslInjectorProvider))
+class EmfComponentsDslGeneratorTests extends EmfComponentsDslAbstractTests {
+
+ @Inject extension CustomCompilationTestHelper
+
+ @Test
+ def testEmptyModule() {
+ inputs.emptyModule.assertCorrectJavaCodeGeneration(
+'''
+package my.empty;
+
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+@SuppressWarnings("all")
+public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {
+ public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+}
+''', null, null, null, null, null, null, null
+ )
+ }
+
+ @Test
+ def testModuleWithExtends() {
+ inputs.moduleWithExtends.assertCorrectJavaCodeGeneration(
+'''
+package my.empty;
+
+import org.eclipse.emf.parsley.dsl.tests.additional.MyTestGuiceModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+@SuppressWarnings("all")
+public class EmfComponentsGuiceModuleGen extends MyTestGuiceModule {
+ public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+}
+''', null, null, null, null, null, null, null
+ )
+ }
+
+ @Test
+ def testEmptyLabelProvider() {
+ inputs.emptyLabelProvider.assertCorrectJavaCodeGeneration(
+'''
+package my.empty;
+
+import my.empty.ui.provider.LabelProviderGen;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+@SuppressWarnings("all")
+public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {
+ public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends ILabelProvider> bindILabelProvider() {
+ return LabelProviderGen.class;
+ }
+}
+''',
+'''
+package my.empty.ui.provider;
+
+import com.google.inject.Inject;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider;
+
+@SuppressWarnings("all")
+public class LabelProviderGen extends ViewerLabelProvider {
+ @Inject
+ public LabelProviderGen(final AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+}
+''', null, null, null, null, null, null
+ )
+ }
+
+ @Test
+ def testEmptyPropertyDescriptionProvider() {
+ inputs.emptyPropertyDescriptionProvider.assertCorrectJavaCodeGeneration(
+'''
+package my.empty;
+
+import my.empty.ui.provider.PropertyDescriptionProviderGen;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+@SuppressWarnings("all")
+public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {
+ public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends PropertyDescriptionProvider> bindPropertyDescriptionProvider() {
+ return PropertyDescriptionProviderGen.class;
+ }
+}
+''',
+'''
+package my.empty.ui.provider;
+
+import org.eclipse.emf.parsley.ui.provider.FeatureLabelProvider;
+
+@SuppressWarnings("all")
+public class PropertyDescriptionProviderGen extends PropertyDescriptionProvider {
+}
+''', null, null, null, null, null, null
+ )
+ }
+
+ @Test
+ def testEmptyLabelSpecifications() {
+ inputs.emptyLabelSpecifications.assertCorrectJavaCodeGeneration(
+null,
+'''
+package my.empty.ui.provider;
+
+import com.google.inject.Inject;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider;
+
+@SuppressWarnings("all")
+public class LabelProviderGen extends ViewerLabelProvider {
+ @Inject
+ public LabelProviderGen(final AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+}
+''', null, null, null, null, null, null
+ )
+ }
+
+ @Test
+ def testLabelSpecifications() {
+ inputs.labelSpecifications.assertCorrectJavaCodeGeneration(
+null,
+'''
+package my.empty.ui.provider;
+
+import com.google.inject.Inject;
+import java.util.List;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.BookOnTape;
+import org.eclipse.emf.parsley.examples.library.Borrower;
+import org.eclipse.emf.parsley.examples.library.Lendable;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.examples.library.Writer;
+import org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.ListExtensions;
+import org.eclipse.xtext.xbase.lib.StringExtensions;
+
+@SuppressWarnings("all")
+public class LabelProviderGen extends ViewerLabelProvider {
+ @Inject
+ public LabelProviderGen(final AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+
+ public String text(final Library it) {
+ return "foo";
+ }
+
+ public String text(final Writer writer) {
+ String _name = writer.getName();
+ return _name;
+ }
+
+ public String text(final Book it) {
+ String _title = it.getTitle();
+ return _title;
+ }
+
+ public String text(final Lendable it) {
+ int _copies = it.getCopies();
+ String _plus = ("copies: " + Integer.valueOf(_copies));
+ return _plus;
+ }
+
+ public String text(final Borrower it) {
+ String _xblockexpression = null;
+ {
+ EList<Lendable> _borrowed = it.getBorrowed();
+ final Function1<Lendable,Integer> _function = new Function1<Lendable,Integer>() {
+ public Integer apply(final Lendable b) {
+ int _copies = b.getCopies();
+ return Integer.valueOf(_copies);
+ }
+ };
+ List<Integer> _map = ListExtensions.<Lendable, Integer>map(_borrowed, _function);
+ final String buffer = ("borrowed: " + _map);
+ String _upperCase = buffer.toUpperCase();
+ _xblockexpression = (_upperCase);
+ }
+ return _xblockexpression;
+ }
+
+ public String text(final BookOnTape it) {
+ String _title = it.getTitle();
+ return _title;
+ }
+
+ public Object image(final Library it) {
+ return "library.jpeg";
+ }
+
+ public Object image(final Writer writer) {
+ Object _xifexpression = null;
+ String _name = writer.getName();
+ boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(_name);
+ if (_isNullOrEmpty) {
+ _xifexpression = "noname.gif";
+ } else {
+ ImageData _imageData = new ImageData("writer.jpeg");
+ _xifexpression = _imageData;
+ }
+ return _xifexpression;
+ }
+}
+''', null, null, null, null, null, null
+ )
+ }
+
+ @Test
+ def testPropertyDescriptionSpecifications() {
+ inputs.propertyDescriptionSpecifications.assertCorrectJavaCodeGeneration(
+'''
+package my.empty;
+
+import my.empty.ui.provider.PropertyDescriptionProviderGen;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+@SuppressWarnings("all")
+public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {
+ public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends PropertyDescriptionProvider> bindPropertyDescriptionProvider() {
+ return PropertyDescriptionProviderGen.class;
+ }
+}
+''', null,
+'''
+package my.empty.ui.provider;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider;
+import org.eclipse.xtext.xbase.lib.StringExtensions;
+
+@SuppressWarnings("all")
+public class PropertyDescriptionProviderGen extends PropertyDescriptionProvider {
+ public String text_Library_name(final EStructuralFeature it) {
+ return "Name";
+ }
+
+ public String text_Library_books(final EStructuralFeature it) {
+ return "Books";
+ }
+
+ public String text_Writer_lastName(final EStructuralFeature it) {
+ String _name = it.getName();
+ String _firstUpper = StringExtensions.toFirstUpper(_name);
+ return _firstUpper;
+ }
+}
+''', null, null, null, null, null
+ )
+ }
+
+ @Test
+ def testFeaturesSpecifications() {
+ inputs.featuresSpecifications.assertCorrectJavaCodeGeneration(
+'''
+package my.empty;
+
+import my.empty.ui.provider.FeaturesProviderGen;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+@SuppressWarnings("all")
+public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {
+ public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends FeaturesProvider> bindFeaturesProvider() {
+ return FeaturesProviderGen.class;
+ }
+}
+''', null, null,
+'''
+package my.empty.ui.provider;
+
+import org.eclipse.emf.parsley.ui.provider.EClassToEStructuralFeatureAsStringsMap;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+
+@SuppressWarnings("all")
+public class FeaturesProviderGen extends FeaturesProvider {
+ @Override
+ public void buildStringMap(final EClassToEStructuralFeatureAsStringsMap stringMap) {
+ super.buildStringMap(stringMap);
+
+ stringMap.mapTo("org.eclipse.emf.parsley.examples.library.Library",
+ "name");
+ stringMap.mapTo("org.eclipse.emf.parsley.examples.library.Writer",
+ "firstName", "lastName", "books");
+ }
+}
+''', null, null, null, null
+ )
+ }
+
+ @Test
+ def testFormFeatureControlSpecifications() {
+ inputs.formControlSpecifications.assertCorrectJavaCodeGeneration(
+'''
+package my.empty;
+
+import my.empty.binding.FormFeatureControlFactoryGen;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.binding.FormControlFactory;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+@SuppressWarnings("all")
+public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {
+ public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends FormControlFactory> bindFormControlFactory() {
+ return FormFeatureControlFactoryGen.class;
+ }
+}
+''', null, null, null,
+'''
+package my.empty.binding;
+
+import java.util.List;
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.parsley.binding.FormControlFactory;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.examples.library.Writer;
+import org.eclipse.jface.databinding.swt.ISWTObservableValue;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.ListExtensions;
+
+@SuppressWarnings("all")
+public class FormFeatureControlFactoryGen extends FormControlFactory {
+ public Control control_Library_name(final Library it) {
+ return null;
+ }
+
+ public Control control_Writer_books(final Writer it) {
+ FormToolkit _toolkit = this.getToolkit();
+ Composite _parent = this.getParent();
+ EList<Book> _books = it.getBooks();
+ final Function1<Book,String> _function = new Function1<Book,String>() {
+ public String apply(final Book it) {
+ String _title = it.getTitle();
+ return _title;
+ }
+ };
+ List<String> _map = ListExtensions.<Book, String>map(_books, _function);
+ String _join = IterableExtensions.join(_map, ", ");
+ Label _createLabel = _toolkit.createLabel(_parent, _join);
+ return _createLabel;
+ }
+
+ public Control control_Writer_name(final DataBindingContext dataBindingContext, final IObservableValue observableValue) {
+ Control control = createControl_Writer_name();
+ dataBindingContext.bindValue(
+ createTarget_Writer_name(control),
+ observableValue);
+ return control;
+ }
+
+ protected Control createControl_Writer_name() {
+ FormToolkit _toolkit = this.getToolkit();
+ Composite _parent = this.getParent();
+ Label _createLabel = _toolkit.createLabel(_parent, "");
+ return _createLabel;
+ }
+
+ protected IObservableValue createTarget_Writer_name(final Control it) {
+ ISWTObservableValue _observeText = SWTObservables.observeText(it);
+ return _observeText;
+ }
+
+ public Control control_Writer_firstName(final DataBindingContext dataBindingContext, final IObservableValue observableValue) {
+ Control control = createControl_Writer_firstName();
+ dataBindingContext.bindValue(
+ createTarget_Writer_firstName(control),
+ observableValue);
+ return control;
+ }
+
+ protected Control createControl_Writer_firstName() {
+ FormToolkit _toolkit = this.getToolkit();
+ Composite _parent = this.getParent();
+ Label _createLabel = _toolkit.createLabel(_parent, "");
+ return _createLabel;
+ }
+
+ protected IObservableValue createTarget_Writer_firstName(final Control it) {
+ ISWTObservableValue _observeText = SWTObservables.observeText(it, SWT.Modify);
+ return _observeText;
+ }
+}
+''', null, null, null
+ )
+ }
+
+ @Test
+ def testViewerContentProviderSpecifications() {
+ inputs.viewerContentProviderSpecifications.assertCorrectJavaCodeGeneration(
+'''
+package my.empty;
+
+import my.empty.edit.ui.provider.ViewerContentProviderGen;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+@SuppressWarnings("all")
+public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {
+ public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends IContentProvider> bindIContentProvider() {
+ return ViewerContentProviderGen.class;
+ }
+}
+''', null, null, null, null,
+'''
+package my.empty.edit.ui.provider;
+
+import com.google.common.collect.Iterables;
+import com.google.inject.Inject;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.parsley.edit.ui.provider.ViewerContentProvider;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.examples.library.Writer;
+
+@SuppressWarnings("all")
+public class ViewerContentProviderGen extends ViewerContentProvider {
+ @Inject
+ public ViewerContentProviderGen(final AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ public Object children(final Library it) {
+ EList<Book> _books = it.getBooks();
+ EList<Writer> _writers = it.getWriters();
+ Iterable<EObject> _plus = Iterables.<EObject>concat(_books, _writers);
+ return _plus;
+ }
+
+ public Object children(final Writer writer) {
+ EList<Book> _books = writer.getBooks();
+ return _books;
+ }
+
+ public Object children(final Book it) {
+ Writer _author = it.getAuthor();
+ return _author;
+ }
+}
+''', null, null
+ )
+ }
+
+ @Test
+ def testProposalSpecifications() {
+ inputs.proposalsSpecifications.assertCorrectJavaCodeGeneration(
+'''
+package my.empty;
+
+import my.empty.binding.ProposalCreatorGen;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.binding.ProposalCreator;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+@SuppressWarnings("all")
+public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {
+ public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends ProposalCreator> bindProposalCreator() {
+ return ProposalCreatorGen.class;
+ }
+}
+''', null, null, null, null, null,
+'''
+package my.empty.binding;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.binding.ProposalCreator;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.Borrower;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryFactory;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.examples.library.Writer;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+import org.eclipse.xtext.xbase.lib.ObjectExtensions;
+import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
+
+@SuppressWarnings("all")
+public class ProposalCreatorGen extends ProposalCreator {
+ public List<? extends Object> proposals_Library_name(final Library it, final EStructuralFeature feature) {
+ ArrayList<String> _newArrayList = CollectionLiterals.<String>newArrayList("foo", "bar");
+ return _newArrayList;
+ }
+
+ public List<? extends Object> proposals_Writer_books(final Writer it, final EStructuralFeature feature) {
+ EList<Book> _books = it.getBooks();
+ return _books;
+ }
+
+ public List<? extends Object> proposals_Book_author(final Book it, final EStructuralFeature feature) {
+ Writer _createWriter = EXTLibraryFactory.eINSTANCE.createWriter();
+ final Procedure1<Writer> _function = new Procedure1<Writer>() {
+ public void apply(final Writer it) {
+ it.setName("Foo");
+ }
+ };
+ Writer _doubleArrow = ObjectExtensions.<Writer>operator_doubleArrow(_createWriter, _function);
+ Writer _createWriter_1 = EXTLibraryFactory.eINSTANCE.createWriter();
+ final Procedure1<Writer> _function_1 = new Procedure1<Writer>() {
+ public void apply(final Writer it) {
+ it.setName("Bar");
+ }
+ };
+ Writer _doubleArrow_1 = ObjectExtensions.<Writer>operator_doubleArrow(_createWriter_1, _function_1);
+ ArrayList<Writer> _newArrayList = CollectionLiterals.<Writer>newArrayList(_doubleArrow, _doubleArrow_1);
+ return _newArrayList;
+ }
+
+ public List<? extends Object> proposals_Borrower_borrowed(final Borrower it, final EStructuralFeature feature) {
+ List<Object> _defaultProposals = this.defaultProposals(feature);
+ final Procedure1<List<Object>> _function = new Procedure1<List<Object>>() {
+ public void apply(final List<Object> it) {
+ Book _createBook = EXTLibraryFactory.eINSTANCE.createBook();
+ final Procedure1<Book> _function = new Procedure1<Book>() {
+ public void apply(final Book it) {
+ it.setTitle("Fake Book");
+ }
+ };
+ Book _doubleArrow = ObjectExtensions.<Book>operator_doubleArrow(_createBook, _function);
+ it.add(_doubleArrow);
+ }
+ };
+ final List<Object> p = ObjectExtensions.<List<Object>>operator_doubleArrow(_defaultProposals, _function);
+ return p;
+ }
+}
+''', null
+ )
+ }
+
+ @Test
+ def testViewsSpecifications() {
+ inputs.multipleViewsSpecifications.assertCorrectJavaCodeGeneration(
+'''
+package my.test;
+
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+@SuppressWarnings("all")
+public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {
+ public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+}
+''', null, null, null, null, null, null,
+'''
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ category="org.eclipse.emf.parsley"
+ class="my.test.TestExecutableExtensionFactory:org.eclipse.emf.parsley.views.AbstractSaveableTreeView"
+ id="my.view.tree.part"
+ name="My Tree View"
+ restorable="true">
+ </view>
+ <view
+ category="my.view.category"
+ class="my.test.TestExecutableExtensionFactory:org.eclipse.emf.parsley.views.AbstractSaveableTreeFormView"
+ id="my.view.form.part"
+ name="My Tree Form View"
+ restorable="true">
+ </view>
+ </extension>
+</plugin>
+'''
+ )
+ }
+
+ def private assertCorrectJavaCodeGeneration(CharSequence input,
+ CharSequence expectedModule, CharSequence expectedLabelProvider,
+ CharSequence expectedPropertyDescriptionProvider,
+ CharSequence expectedFeatureProvider,
+ CharSequence expectedFormFeatureControlFactory,
+ CharSequence expectedViewerContentProvider,
+ CharSequence expectedProposalCreator,
+ CharSequence expectedPluginXmlGen) {
+ input.compileAll [
+ for (e : allGeneratedResources.entrySet) {
+ if (e.key.endsWith("ModuleGen.java")) {
+ // check the expected Java code for the module
+ if (expectedModule != null)
+ assertEqualsStrings(expectedModule, e.value)
+ } else if (e.key.endsWith("PropertyDescriptionProviderGen.java")) {
+ // check the expected Java code for the module
+ if (expectedPropertyDescriptionProvider != null)
+ assertEqualsStrings(expectedPropertyDescriptionProvider, e.value)
+ } else if (e.key.endsWith("FeaturesProviderGen.java")) {
+ // check the expected Java code for the module
+ if (expectedFeatureProvider != null)
+ assertEqualsStrings(expectedFeatureProvider, e.value)
+ } else if (e.key.endsWith("LabelProviderGen.java")) {
+ // check the expected Java code for the module
+ if (expectedLabelProvider != null)
+ assertEqualsStrings(expectedLabelProvider, e.value)
+ } else if (e.key.endsWith("FormFeatureControlFactoryGen.java")) {
+ // check the expected Java code for the module
+ if (expectedFormFeatureControlFactory != null)
+ assertEqualsStrings(expectedFormFeatureControlFactory, e.value)
+ } else if (e.key.endsWith("ViewerContentProviderGen.java")) {
+ // check the expected Java code for the module
+ if (expectedViewerContentProvider != null)
+ assertEqualsStrings(expectedViewerContentProvider, e.value)
+ } else if (e.key.endsWith("ProposalCreatorGen.java")) {
+ // check the expected Java code for the module
+ if (expectedProposalCreator != null)
+ assertEqualsStrings(expectedProposalCreator, e.value)
+ } else if (e.key.endsWith(".xml_emfparsley_gen")) {
+ // check the expected Java code for the module
+ if (expectedPluginXmlGen != null)
+ assertEqualsStrings(expectedPluginXmlGen, e.value)
+ } else
+ fail("unexpected generated code: " + e.value)
+ }
+
+ // this will issue Java generation
+ compileToJava
+ ]
+ }
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslJvmModelInferrerTests.xtend b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslJvmModelInferrerTests.xtend
new file mode 100644
index 000000000..55452e2fb
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslJvmModelInferrerTests.xtend
@@ -0,0 +1,95 @@
+package org.eclipse.emf.parsley.dsl.tests
+
+import com.google.inject.Inject
+import org.eclipse.emf.parsley.dsl.EmfParsleyDslInjectorProvider
+import org.eclipse.emf.parsley.dsl.jvmmodel.EmfParsleyDslJvmModelInferrer
+import org.eclipse.xtext.junit4.InjectWith
+import org.eclipse.xtext.junit4.XtextRunner
+import org.junit.Test
+import org.junit.runner.RunWith
+
+
+
+@RunWith(typeof(XtextRunner))
+@InjectWith(typeof(EmfParsleyDslInjectorProvider))
+class EmfComponentsDslJvmModelInferrerTests extends EmfComponentsDslAbstractTests {
+
+ @Inject EmfParsleyDslJvmModelInferrer inferrer
+
+ @Test
+ def void testEmptyModule() {
+ inputs.emptyModule.parseAndAssertNoError
+ }
+
+ @Test
+ def void testModuleName() {
+ "my.empty.EmfComponentsGuiceModuleGen".assertEqualsStrings(
+ inferrer.moduleQN(inputs.emptyModule.module)
+ )
+ }
+
+ @Test
+ def void testExecutableExtensionFactoryName() {
+ "my.empty.EmptyExecutableExtensionFactory".assertEqualsStrings(
+ inferrer.executableExtensionFactoryQN(inputs.emptyModule.module)
+ )
+ }
+
+ @Test
+ def void testViewSpecificationExecutableExtensionFactoryName() {
+ "my.test.TestExecutableExtensionFactory".assertEqualsStrings(
+ inferrer.executableExtensionFactoryQN(
+ inputs.nonEmptyViewsSpecifications.partSpecification
+ )
+ )
+ }
+
+ @Test
+ def void testActivatorName() {
+ "my.empty.Activator".assertEqualsStrings(
+ inferrer.activatorQN(inputs.emptyModule.module)
+ )
+ }
+
+ @Test
+ def void testLabelProviderName() {
+ "my.empty.ui.provider.LabelProviderGen".assertEqualsStrings(
+ inferrer.labelProviderQN(inputs.emptyModule.module)
+ )
+ }
+
+ @Test
+ def void testPropertyDescriptionProviderName() {
+ "my.empty.ui.provider.PropertyDescriptionProviderGen".assertEqualsStrings(
+ inferrer.propertyDescriptionProviderQN(inputs.emptyModule.module)
+ )
+ }
+
+ @Test
+ def void testFeaturesProviderName() {
+ "my.empty.ui.provider.FeaturesProviderGen".assertEqualsStrings(
+ inferrer.featuresProviderQN(inputs.emptyModule.module)
+ )
+ }
+
+ @Test
+ def void testFormFeatureControlFactoryName() {
+ "my.empty.binding.FormFeatureControlFactoryGen".assertEqualsStrings(
+ inferrer.formFeatureControlFactoryQN(inputs.emptyModule.module)
+ )
+ }
+
+ @Test
+ def void testViewerContentProviderName() {
+ "my.empty.edit.ui.provider.ViewerContentProviderGen".assertEqualsStrings(
+ inferrer.viewerContentProviderQN(inputs.emptyModule.module)
+ )
+ }
+
+ @Test
+ def void testProposalCreatorName() {
+ "my.empty.binding.ProposalCreatorGen".assertEqualsStrings(
+ inferrer.proposalCreatorQN(inputs.proposalsSpecifications.module)
+ )
+ }
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslParserTests.xtend b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslParserTests.xtend
new file mode 100644
index 000000000..0d5fbb1fa
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslParserTests.xtend
@@ -0,0 +1,103 @@
+package org.eclipse.emf.parsley.dsl.tests
+
+import com.google.inject.Inject
+import org.eclipse.emf.parsley.dsl.EmfParsleyDslInjectorProvider
+import org.eclipse.emf.parsley.dsl.model.ModelPackage
+import org.eclipse.xtext.diagnostics.Diagnostic
+import org.eclipse.xtext.junit4.InjectWith
+import org.eclipse.xtext.junit4.XtextRunner
+import org.eclipse.xtext.junit4.validation.ValidationTestHelper
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(typeof(XtextRunner))
+@InjectWith(typeof(EmfParsleyDslInjectorProvider))
+class EmfComponentsDslParserTests extends EmfComponentsDslAbstractTests {
+
+ @Inject extension ValidationTestHelper
+
+ @Test
+ def void testEmptyModule() {
+ inputs.emptyModule.parseAndAssertNoError
+ }
+
+ @Test
+ def void testModuleWithExtends() {
+ inputs.moduleWithExtends.parseAndAssertNoError
+ }
+
+ @Test
+ def void testEmptyLabelProvider() {
+ inputs.emptyLabelProvider.parseAndAssertNoError
+ }
+
+ @Test
+ def void testEmptyLabelSpecifications() {
+ inputs.emptyLabelSpecifications.parseAndAssertNoError
+ }
+
+ @Test
+ def void testLabelSpecifications() {
+ inputs.labelSpecifications.parseAndAssertNoError
+ }
+
+ @Test
+ def void testDuplicateLabelSpecifications() {
+ inputsWithErrors.duplicateLabelSpecifications.parseAndAssertErrors
+ }
+
+ @Test
+ def void testPropertyDescriptionSpecifications() {
+ inputs.propertyDescriptionSpecifications.parseAndAssertNoError
+ }
+
+ @Test
+ def void testWrongFeatureLabelSpecifications() {
+ val model = inputsWithErrors.wrongPropertyDescriptionSpecifications.parseModel
+ model.assertError(
+ ModelPackage::eINSTANCE.propertyDescriptionSpecification,
+ Diagnostic::LINKING_DIAGNOSTIC,
+ "newArrayList"
+ )
+ model.assertError(
+ ModelPackage::eINSTANCE.propertyDescriptionSpecification,
+ Diagnostic::LINKING_DIAGNOSTIC,
+ "getBooks"
+ )
+ }
+
+ @Test
+ def void testFeaturesSpecifications() {
+ inputs.featuresSpecifications.parseAndAssertNoError
+ }
+
+ @Test
+ def void testFormControlSpecifications() {
+ inputs.formControlSpecifications.parseAndAssertNoError
+ }
+
+ @Test
+ def void testProposalsSpecifications() {
+ inputs.proposalsSpecifications.parseAndAssertNoError
+ }
+
+ @Test
+ def void testViewerContentProviderSpecifications() {
+ inputs.viewerContentProviderSpecifications.parseAndAssertNoError
+ }
+
+ @Test
+ def void testEmptyViewsSpecifications() {
+ inputs.emptyViewsSpecifications.parseAndAssertNoError
+ }
+
+ @Test
+ def void testNonEmptyViewsSpecifications() {
+ inputs.nonEmptyViewsSpecifications.parseAndAssertNoError
+ }
+
+ @Test
+ def void testMultipleViewsSpecifications() {
+ inputs.multipleViewsSpecifications.parseAndAssertNoError
+ }
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslPluginXmlGeneratorTests.xtend b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslPluginXmlGeneratorTests.xtend
new file mode 100644
index 000000000..06f2b5072
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslPluginXmlGeneratorTests.xtend
@@ -0,0 +1,159 @@
+package org.eclipse.emf.parsley.dsl.tests
+
+import com.google.inject.Inject
+import org.eclipse.emf.parsley.dsl.EmfParsleyDslInjectorProvider
+import org.eclipse.emf.parsley.dsl.generator.EmfParsleyDslOutputConfigurationProvider
+import org.eclipse.emf.parsley.dsl.generator.EmfParsleyDslPluginXmlGenerator
+import org.eclipse.emf.parsley.dsl.model.Module
+import org.eclipse.xtext.generator.InMemoryFileSystemAccess
+import org.eclipse.xtext.junit4.InjectWith
+import org.eclipse.xtext.junit4.XtextRunner
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(typeof(XtextRunner))
+@InjectWith(typeof(EmfParsleyDslInjectorProvider))
+class EmfComponentsDslPluginXmlGeneratorTests extends EmfComponentsDslAbstractTests {
+
+ @Inject EmfParsleyDslPluginXmlGenerator pluginXmlGenerator
+
+ @Test
+ def void testEmptyContents() {
+ "".assertPluginXmlContents(
+'''
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+</plugin>
+'''
+ )
+ }
+
+ @Test
+ def void testViewExtensionPoint() {
+'''
+<view
+ category="org.eclipse.emf.parsley"
+ class="my.test.TestExecutableExtensionFactory:org.eclipse.emf.parsley.views.AbstractSaveableTreeView"
+ id="my.view.part"
+ name="My View"
+ restorable="true">
+</view>
+'''.assertEqualsStrings(
+ pluginXmlGenerator.generateExtensionPoint(
+ inputs.nonEmptyViewsSpecifications.partSpecification
+ )
+)
+ }
+
+ @Test
+ def void testNoViewSpecification() {
+ inputs.emptyModule.module.assertPluginXmlContents("")
+ }
+
+ @Test
+ def void testSingleViewSpecification() {
+ inputs.nonEmptyViewsSpecifications.module.assertPluginXmlContents(
+'''
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ category="org.eclipse.emf.parsley"
+ class="my.test.TestExecutableExtensionFactory:org.eclipse.emf.parsley.views.AbstractSaveableTreeView"
+ id="my.view.part"
+ name="My View"
+ restorable="true">
+ </view>
+ </extension>
+</plugin>
+'''
+ )
+ }
+
+ @Test
+ def void testMultipleViewSpecification() {
+ inputs.multipleViewsSpecifications.module.assertPluginXmlContents(
+'''
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ category="org.eclipse.emf.parsley"
+ class="my.test.TestExecutableExtensionFactory:org.eclipse.emf.parsley.views.AbstractSaveableTreeView"
+ id="my.view.tree.part"
+ name="My Tree View"
+ restorable="true">
+ </view>
+ <view
+ category="my.view.category"
+ class="my.test.TestExecutableExtensionFactory:org.eclipse.emf.parsley.views.AbstractSaveableTreeFormView"
+ id="my.view.form.part"
+ name="My Tree Form View"
+ restorable="true">
+ </view>
+ </extension>
+</plugin>
+'''
+ )
+ }
+
+ @Test
+ def void testPluginXmlGen() {
+ inputs.multipleViewsSpecifications.
+ assertPluginXmlGeneration(
+'''
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ category="org.eclipse.emf.parsley"
+ class="my.test.TestExecutableExtensionFactory:org.eclipse.emf.parsley.views.AbstractSaveableTreeView"
+ id="my.view.tree.part"
+ name="My Tree View"
+ restorable="true">
+ </view>
+ <view
+ category="my.view.category"
+ class="my.test.TestExecutableExtensionFactory:org.eclipse.emf.parsley.views.AbstractSaveableTreeFormView"
+ id="my.view.form.part"
+ name="My Tree Form View"
+ restorable="true">
+ </view>
+ </extension>
+</plugin>
+'''
+ )
+ }
+
+ def private void assertPluginXmlGeneration(CharSequence input, CharSequence expected) {
+ val access = new InMemoryFileSystemAccess();
+ val parsed = input.parseAndAssertNoError
+ pluginXmlGenerator.doGenerate(parsed.eResource(), access);
+ val entrySet = access.getFiles().entrySet()
+ assertEqualsStrings(1, entrySet.size)
+ val e = entrySet.head
+ val name = e.getKey().substring(
+ (EmfParsleyDslOutputConfigurationProvider::PROJECT_ROOT_OUTPUT +
+ EmfParsleyDslOutputConfigurationProvider::PLUGIN_XML_EMFPARSLEY_REL_GEN_PATH).
+ length());
+ assertEqualsStrings(
+ EmfParsleyDslOutputConfigurationProvider::PLUGIN_XML_EMFPARSLEY_GEN,
+ name)
+ assertEqualsStrings(expected, e.value)
+ }
+
+ def private void assertPluginXmlContents(Module module, CharSequence expected) {
+ assertEqualsStrings(expected, pluginXmlGenerator.generatePluginXml(module))
+ }
+
+ def private void assertPluginXmlContents(CharSequence contents, CharSequence expected) {
+ assertEqualsStrings(expected, pluginXmlGenerator.generatePluginXml(contents))
+ }
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslValidatorTests.xtend b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslValidatorTests.xtend
new file mode 100644
index 000000000..dd76a0181
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslValidatorTests.xtend
@@ -0,0 +1,51 @@
+package org.eclipse.emf.parsley.dsl.tests
+
+import com.google.inject.Inject
+import org.eclipse.emf.parsley.dsl.EmfParsleyDslInjectorProvider
+import org.eclipse.emf.parsley.dsl.model.ModelPackage
+import org.eclipse.xtext.junit4.InjectWith
+import org.eclipse.xtext.junit4.XtextRunner
+import org.eclipse.xtext.junit4.validation.ValidationTestHelper
+import org.junit.Test
+import org.junit.runner.RunWith
+
+import static org.eclipse.emf.parsley.dsl.validation.EmfParsleyDslJavaValidator.*
+
+@RunWith(typeof(XtextRunner))
+@InjectWith(typeof(EmfParsleyDslInjectorProvider))
+class EmfComponentsDslValidatorTests extends EmfComponentsDslAbstractTests {
+
+ @Inject extension ValidationTestHelper
+
+ @Test
+ def void testNonEmptyViewsSpecifications() {
+ inputsWithErrors.viewSpecificationIsNotIViewPart.parseModel.
+ assertError(
+ ModelPackage::eINSTANCE.viewSpecification,
+ NOT_I_VIEW_PART,
+ "Must be an IViewPart"
+ )
+ }
+
+ @Test
+ def void testNotAnEObjectInEmfFeatureAccess() {
+ val model = inputsWithErrors.notAnEObjectInEmfFeatureAccess.parseModel
+ model.
+ assertError(
+ ModelPackage::eINSTANCE.emfFeatureAccess,
+ NOT_EOBJECT,
+ "Must be an EObject derived class"
+ )
+ }
+
+ @Test
+ def void testValidModuleExtends() {
+ val model = inputsWithErrors.notValidModuleExtends.parseModel
+ model.
+ assertError(
+ ModelPackage::eINSTANCE.extendsClause,
+ NOT_EMFCOMPONENTS_MODULE,
+ "Must be an EmfComponentsGuiceModule derived class"
+ )
+ }
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfParsleyDslScopingTests.xtend b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfParsleyDslScopingTests.xtend
new file mode 100644
index 000000000..ca1ce3fa4
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfParsleyDslScopingTests.xtend
@@ -0,0 +1,43 @@
+package org.eclipse.emf.parsley.dsl.tests
+
+import com.google.inject.Inject
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.EReference
+import org.eclipse.emf.parsley.dsl.EmfParsleyDslInjectorProvider
+import org.eclipse.emf.parsley.dsl.model.ModelPackage
+import org.eclipse.emf.parsley.dsl.scoping.EmfParsleyDslXbaseBatchScopeProvider
+import org.eclipse.xtext.junit4.InjectWith
+import org.eclipse.xtext.junit4.XtextRunner
+import org.junit.Test
+import org.junit.runner.RunWith
+
+import static extension org.junit.Assert.*
+
+@RunWith(typeof(XtextRunner))
+@InjectWith(typeof(EmfParsleyDslInjectorProvider))
+class EmfParsleyDslScopingTests extends EmfComponentsDslAbstractTests {
+
+ @Inject extension EmfParsleyDslXbaseBatchScopeProvider
+
+ @Test
+ def void testFeaturesForLabelSpecifications() {
+ inputs.propertyDescriptionSpecifications.parseModel.
+ module.propertyDescriptionProvider.labelSpecifications.head.
+ assertScope
+ (ModelPackage::eINSTANCE.propertyDescriptionSpecification_Feature,
+ "name, books, borrowers, writers, employees, stock, branches, parentBranch, people, address, class"
+ )
+
+ }
+
+ def private assertScope(EObject o, EReference ref, String expected) {
+ val listExpected = expected.split(", ").toList
+ val scope = o.getScope(ref).allElements.map[name]
+ for (exp : listExpected) {
+ assertTrue("not found: " + exp, scope.exists[exp == it.toString])
+ }
+ for (sc : scope) {
+ assertTrue("not expected: " + sc.toString, listExpected.exists[sc.toString == it])
+ }
+ }
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/additional/MyTestGuiceModule.java b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/additional/MyTestGuiceModule.java
new file mode 100644
index 000000000..6ff614d99
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/additional/MyTestGuiceModule.java
@@ -0,0 +1,20 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.dsl.tests.additional;
+
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+public class MyTestGuiceModule extends EmfComponentsGuiceModule {
+
+ public MyTestGuiceModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/inputs/TestInputs.xtend b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/inputs/TestInputs.xtend
new file mode 100644
index 000000000..dddff9448
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/inputs/TestInputs.xtend
@@ -0,0 +1,244 @@
+package org.eclipse.emf.parsley.dsl.tests.inputs
+
+class TestInputs {
+
+ def emptyModule()
+'''
+import java.util.*
+
+module my.empty {
+
+}
+'''
+
+ def moduleWithExtends()
+'''
+import java.util.*
+
+module my.empty extends org.eclipse.emf.parsley.dsl.tests.additional.MyTestGuiceModule {
+
+}
+'''
+
+ def emptyLabelProvider()
+'''
+import java.util.*
+
+module my.empty {
+ labelProvider {
+
+ }
+}
+'''
+
+ def emptyPropertyDescriptionProvider()
+'''
+import java.util.*
+
+module my.empty {
+ propertyDescriptionProvider {
+
+ }
+}
+'''
+
+ def emptyLabelSpecifications()
+'''
+import java.util.*
+
+module my.empty {
+ labelProvider {
+ text {
+
+ }
+ image {
+
+ }
+ }
+}
+'''
+
+ def labelSpecifications()
+'''
+import java.util.*
+import org.eclipse.emf.parsley.examples.library.*
+
+module my.empty {
+ labelProvider {
+ text {
+ Library -> 'foo' // constant
+ Writer writer -> writer.getName() // explicit param
+ Book -> title // implit 'it' param
+ Lendable -> 'copies: ' + copies
+ Borrower -> { // complex block
+ val buffer = 'borrowed: ' + borrowed.map [
+ b | b.copies
+ ]
+ buffer.toUpperCase
+ }
+ BookOnTape -> getTitle
+ }
+
+ image {
+ Library -> 'library.jpeg' // constant
+ Writer writer ->
+ if (writer.name.nullOrEmpty)
+ "noname.gif"
+ else
+ new org.eclipse.swt.graphics.ImageData("writer.jpeg")
+ }
+ }
+}
+'''
+
+ def propertyDescriptionSpecifications()
+'''
+import java.util.*
+import org.eclipse.emf.parsley.examples.library.*
+
+module my.empty {
+ propertyDescriptionProvider {
+ text {
+ Library:name -> 'Name' // constant
+ Library:books -> 'Books' // constant
+ Writer:lastName -> name.toFirstUpper // the implicit param is an EStructuralFeature
+ }
+ }
+}
+'''
+
+ def featuresSpecifications()
+'''
+import java.util.*
+import org.eclipse.emf.parsley.examples.library.*
+
+module my.empty {
+ featuresProvider {
+ features {
+ Library -> name
+ Writer -> firstName, lastName, books
+ }
+ }
+}
+'''
+
+ def formControlSpecifications()
+'''
+import java.util.*
+import org.eclipse.emf.parsley.examples.library.*
+
+module my.empty {
+ formControlFactory {
+ control {
+ Library : name -> { }
+ Writer : books ->
+ toolkit.createLabel(parent,
+ books.map[title].join(", "))
+ Writer : name -> { toolkit.createLabel(parent, "") }
+ target { observeText }
+ Writer : firstName ->
+ toolkit.createLabel(parent, "")
+ target observeText(SWT::Modify)
+ }
+ }
+}
+'''
+
+ def proposalsSpecifications()
+'''
+import java.util.*
+import org.eclipse.emf.parsley.examples.library.*
+
+module my.empty {
+ proposals {
+ Library : name -> { newArrayList('foo', 'bar') }
+ Writer : books ->
+ { books } // it.books
+ Book : author -> {
+ newArrayList(
+ EXTLibraryFactory::eINSTANCE.createWriter => [
+ name = "Foo"
+ ],
+ EXTLibraryFactory::eINSTANCE.createWriter => [
+ name = "Bar"
+ ]
+ )
+ }
+ Borrower : borrowed -> {
+ val p = defaultProposals(feature) => [
+ add(EXTLibraryFactory::eINSTANCE.createBook => [
+ title = "Fake Book"
+ ])
+ ]
+ return p
+ }
+ }
+}
+'''
+
+ def viewerContentProviderSpecifications()
+'''
+import java.util.*
+import org.eclipse.emf.parsley.examples.library.*
+
+module my.empty {
+ viewerContentProvider {
+ children {
+ Library -> books + writers
+ Writer writer -> writer.books
+ Book -> author // implit 'it' param
+ }
+ }
+}
+'''
+
+ def emptyViewsSpecifications()
+'''
+import java.util.*
+import org.eclipse.emf.parsley.examples.library.*
+
+module my.empty {
+ parts {
+
+ }
+}
+'''
+
+ def nonEmptyViewsSpecifications()
+'''
+import java.util.*
+import org.eclipse.emf.parsley.examples.library.*
+import org.eclipse.emf.parsley.views.*
+
+module my.test {
+ parts {
+ viewpart my.view.part {
+ viewname "My View"
+ viewclass AbstractSaveableTreeView
+ }
+ }
+}
+'''
+
+ def multipleViewsSpecifications()
+'''
+import java.util.*
+import org.eclipse.emf.parsley.examples.library.*
+import org.eclipse.emf.parsley.views.*
+
+module my.test {
+ parts {
+ viewpart my.view.tree.part {
+ viewname "My Tree View"
+ viewclass AbstractSaveableTreeView
+ }
+ viewpart my.view.form.part {
+ viewname "My Tree Form View"
+ viewclass AbstractSaveableTreeFormView
+ viewcategory my.view.category
+ }
+ }
+}
+'''
+
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/inputs/TestInputsWithErrors.xtend b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/inputs/TestInputsWithErrors.xtend
new file mode 100644
index 000000000..c56032291
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/inputs/TestInputsWithErrors.xtend
@@ -0,0 +1,82 @@
+package org.eclipse.emf.parsley.dsl.tests.inputs
+
+class TestInputsWithErrors {
+
+ def duplicateLabelSpecifications()
+'''
+import java.util.*
+
+module my.empty {
+ labelProvider {
+ text {
+
+ }
+ image {
+
+ }
+ text {
+ }
+ }
+}
+'''
+
+ def wrongPropertyDescriptionSpecifications()
+'''
+import java.util.*
+import org.eclipse.emf.parsley.examples.library.*
+
+
+module my.empty {
+ propertyDescriptionProvider {
+ text {
+ Item:publicationDate -> 'Publication Date'
+ Library:newArrayList -> 'Name' // static method, wrong
+ Library:getBooks -> 'Books' // don't use get methods
+ Writer:lastName -> name.toFirstUpper // the implicit param is an EStructuralFeature
+ }
+ }
+}
+'''
+
+ def viewSpecificationIsNotIViewPart()
+'''
+import java.util.*
+import org.eclipse.emf.parsley.examples.library.*
+
+module my.empty {
+ parts {
+ viewpart my.view.part {
+ viewname "My View"
+ viewclass Library // not an IViewPart!
+ }
+ }
+}
+'''
+
+ def notAnEObjectInEmfFeatureAccess()
+'''
+import java.util.*
+import org.eclipse.emf.parsley.examples.library.*
+import org.eclipse.emf.parsley.views.*
+
+module my.empty {
+ propertyDescriptionProvider {
+ text {
+ List:publicationDate -> 'Publication Date'
+ AbstractSaveableTreeView:lastName -> null
+ }
+ }
+}
+'''
+
+ def notValidModuleExtends()
+'''
+import java.util.*
+import org.eclipse.emf.parsley.examples.library.*
+import org.eclipse.emf.parsley.views.*
+
+module my.empty extends Library {
+
+}
+'''
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/util/CustomCompilationTestHelper.java b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/util/CustomCompilationTestHelper.java
new file mode 100644
index 000000000..0e536d95b
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/util/CustomCompilationTestHelper.java
@@ -0,0 +1,99 @@
+package org.eclipse.emf.parsley.dsl.tests.util;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.xtext.generator.IGenerator;
+import org.eclipse.xtext.generator.InMemoryFileSystemAccess;
+import org.eclipse.xtext.junit4.util.ParseHelper;
+import org.eclipse.xtext.junit4.validation.ValidationTestHelper;
+import org.eclipse.xtext.util.IAcceptor;
+import org.eclipse.xtext.xbase.compiler.CompilationTestHelper;
+
+import com.google.inject.Inject;
+
+/**
+ * A custom helper since we generate two classes for each input file.
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+@SuppressWarnings("restriction")
+public class CustomCompilationTestHelper extends CompilationTestHelper {
+ @Inject
+ private CustomOnTheFlyJavaCompiler javaCompiler;
+
+ @Inject
+ private ParseHelper<EObject> parseHelper;
+
+ @Inject
+ private ValidationTestHelper validationTestHelper;
+
+ @Inject
+ private IGenerator generator;
+
+ /**
+ * A result contains information about various aspects of a compiled piece of code.
+ *
+ */
+ public static interface Result {
+ /**
+ * @return the loaded, validated and fully linked source resource
+ */
+ Resource getSource();
+
+ /**
+ * Compile all Java sources generated for a resource
+ */
+ void compileToJava();
+
+ /**
+ * @return access to all generated artifacts. The key points to the pathesa dn the values are the generated code.
+ */
+ Map<String,CharSequence> getAllGeneratedResources();
+ }
+
+ public void compileAll(CharSequence source, IAcceptor<Result> acceptor) {
+ try {
+ final EObject parsed = parseHelper.parse(source);
+ validationTestHelper.assertNoErrors(parsed);
+ final InMemoryFileSystemAccess access = new InMemoryFileSystemAccess();
+ generator.doGenerate(parsed.eResource(), access);
+
+ acceptor.accept(new Result() {
+
+ public Resource getSource() {
+ return (Resource) parsed.eResource();
+ }
+
+ public void compileToJava() {
+ Map<String, String> toCompile = new HashMap<String, String>();
+
+ for (final Entry<String, CharSequence> e : access.getFiles().entrySet()) {
+ if (!e.getKey().contains(".java"))
+ continue; // it's not a Java file
+
+ String name = e.getKey().substring(
+ "DEFAULT_OUTPUT".length(),
+ e.getKey().length() - ".java".length());
+ name = name.replace('/', '.');
+ toCompile.put(name, e.getValue().toString());
+ }
+
+ javaCompiler.compileAll(toCompile);
+ }
+
+ public Map<String, CharSequence> getAllGeneratedResources() {
+ return access.getFiles();
+ }
+
+ });
+
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/util/CustomOnTheFlyJavaCompiler.java b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/util/CustomOnTheFlyJavaCompiler.java
new file mode 100644
index 000000000..f0e3e5782
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/util/CustomOnTheFlyJavaCompiler.java
@@ -0,0 +1,246 @@
+package org.eclipse.emf.parsley.dsl.tests.util;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.eclipse.emf.common.util.WrappedException;
+import org.eclipse.jdt.core.compiler.CompilationProgress;
+import org.eclipse.jdt.internal.compiler.batch.FileSystem;
+import org.eclipse.jdt.internal.compiler.batch.Main;
+import org.eclipse.xtext.util.Files;
+import org.eclipse.xtext.xbase.compiler.OnTheFlyJavaCompiler;
+
+import com.google.inject.Inject;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+@SuppressWarnings("restriction")
+public class CustomOnTheFlyJavaCompiler extends OnTheFlyJavaCompiler {
+
+ static class DelegateOutStream extends OutputStream {
+
+ private OutputStream delegate;
+
+ @Override
+ public void close() throws IOException {
+ delegate.close();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return delegate.equals(obj);
+ }
+
+ @Override
+ public void flush() throws IOException {
+ delegate.flush();
+ }
+
+ @Override
+ public int hashCode() {
+ return delegate.hashCode();
+ }
+
+ public void setDelegate(OutputStream delegate) {
+ this.delegate = delegate;
+ }
+
+ @Override
+ public String toString() {
+ return delegate.toString();
+ }
+
+ @Override
+ public void write(byte[] b) throws IOException {
+ delegate.write(b);
+ }
+
+ @Override
+ public void write(byte[] b, int off, int len) throws IOException {
+ delegate.write(b, off, len);
+ }
+
+ @Override
+ public void write(int b) throws IOException {
+ delegate.write(b);
+ }
+
+ }
+
+ /**
+ * HACK - reuse the classpath, since it is super expensive to reopen and
+ * scan the zips.
+ *
+ * @author Sven Efftinge - Initial contribution and API
+ */
+ static class PatchedMain extends Main {
+
+ @SuppressWarnings("rawtypes")
+ public PatchedMain(PrintWriter outWriter, PrintWriter errWriter,
+ boolean systemExitWhenFinished, Map customDefaultOptions,
+ CompilationProgress compilationProgress) {
+ super(outWriter, errWriter, systemExitWhenFinished,
+ customDefaultOptions, compilationProgress);
+ }
+
+ @Override
+ public FileSystem getLibraryAccess() {
+ if (fileSystem == null) {
+ fileSystem = new PatchedFileSystem(super.getLibraryAccess());
+ }
+ return fileSystem;
+ }
+
+ }
+
+ private static PatchedFileSystem fileSystem;
+
+ private DelegateOutStream errorStream = new DelegateOutStream();
+
+ @Inject
+ private ClassLoader parentClassLoader;
+
+ @Override
+ public String getClasspathArgs() {
+ final String classpathArgs = super.getClasspathArgs();
+ return classpathArgs
+ + (classpathArgs.isEmpty() ? "" : File.pathSeparator
+ + createTempDir().getAbsolutePath()
+ + File.separator);
+ }
+
+ protected Main getMain() {
+ return new PatchedMain(new PrintWriter(new OutputStreamWriter(
+ System.out)), new PrintWriter(new OutputStreamWriter(
+ errorStream)), false /* systemExit */, null /* options */, null);
+ }
+
+ /**
+ * Copied from {@link OnTheFlyJavaCompiler}
+ *
+ * @return
+ */
+ private File createTempDir() {
+ File rootTempDir = null;
+ String defTmpPath = System.getProperty("java.io.tmpdir");
+ if (defTmpPath != null) {
+ rootTempDir = new File(defTmpPath);
+ } else {
+ // use current directory, should be writable
+ rootTempDir = new File("./");
+ }
+ // VM unique temp dir
+ File tempDir = new File(rootTempDir, "otfjc"
+ + OnTheFlyJavaCompiler.class.hashCode());
+ return tempDir;
+ }
+
+ public Class<?> compileToClass(String classname, String code) {
+ File tempDir = createTempDir();
+ final String classNameAsPath = classname.replace('.',
+ File.separatorChar);
+ final File srcFile = new File(tempDir, classNameAsPath + ".java");
+
+ createFolderStructure(srcFile.getParentFile());
+ final File targetFile = new File(tempDir, classNameAsPath + ".class");
+ if (targetFile.exists())
+ targetFile.delete();
+ try {
+ srcFile.createNewFile();
+ Files.writeStringIntoFile(srcFile.getCanonicalPath(), code);
+ errorStream.setDelegate(new ByteArrayOutputStream());
+ StringBuilder sb = new StringBuilder(getComplianceLevelArg());
+ sb.append(" ");
+ sb.append(getClasspathArgs());
+ sb.append(" ");
+ sb.append('\"');
+ sb.append(srcFile.getCanonicalPath());
+ sb.append('\"');
+ boolean compile = compile(sb.toString());
+ if (!compile)
+ throw new IllegalArgumentException("Couldn't compile : "
+ + errorStream.toString() + "\n" + code);
+ final URL url = tempDir.toURI().toURL();
+ URLClassLoader loader = new URLClassLoader(new URL[] { url },
+ parentClassLoader);
+ Class<?> class1 = loader.loadClass(classname);
+ // loader.close(); in Java 1.7
+ return class1;
+ } catch (RuntimeException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new WrappedException(e);
+ } finally {
+ cleanUpTmpFolder(tempDir);
+ }
+ }
+
+ private void cleanUpTmpFolder(File tempDir) {
+ try {
+ Files.cleanFolder(tempDir, new FileFilter() {
+ public boolean accept(File pathname) {
+ return !pathname.getName().endsWith(".class");
+ }
+ }, true, true);
+ } catch (FileNotFoundException e) {
+ // ignore
+ }
+ }
+
+ public void compileAll(Map<String, String> toCompile) {
+ File tempDir = createTempDir();
+ StringBuilder fileNamesToCompile = new StringBuilder();
+
+ try {
+
+ for (Entry<String, String> sourceToCompile : toCompile.entrySet()) {
+ final String classNameAsPath = sourceToCompile.getKey().replace('.',
+ File.separatorChar);
+ final File srcFile = new File(tempDir, classNameAsPath + ".java");
+
+ createFolderStructure(srcFile.getParentFile());
+ final File targetFile = new File(tempDir, classNameAsPath + ".class");
+ if (targetFile.exists())
+ targetFile.delete();
+
+ srcFile.createNewFile();
+ Files.writeStringIntoFile(srcFile.getCanonicalPath(), sourceToCompile.getValue());
+
+ fileNamesToCompile.append(" ");
+ fileNamesToCompile.append('\"');
+ fileNamesToCompile.append(srcFile.getCanonicalPath());
+ fileNamesToCompile.append('\"');
+ }
+
+ errorStream.setDelegate(new ByteArrayOutputStream());
+ StringBuilder sb = new StringBuilder(getComplianceLevelArg());
+ sb.append(" ");
+ sb.append(getClasspathArgs());
+ sb.append(" ");
+ sb.append(fileNamesToCompile);
+ boolean compile = compile(sb.toString());
+ if (!compile)
+ throw new IllegalArgumentException("Couldn't compile : "
+ + errorStream.toString() + "\n" + fileNamesToCompile);
+ } catch (RuntimeException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new WrappedException(e);
+ } finally {
+ cleanUpTmpFolder(tempDir);
+ }
+
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslAbstractTests.java b/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslAbstractTests.java
new file mode 100644
index 000000000..774a4d510
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslAbstractTests.java
@@ -0,0 +1,110 @@
+package org.eclipse.emf.parsley.dsl.tests;
+
+import com.google.inject.Inject;
+import java.util.List;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.parsley.dsl.EmfParsleyDslInjectorProvider;
+import org.eclipse.emf.parsley.dsl.model.Model;
+import org.eclipse.emf.parsley.dsl.model.Module;
+import org.eclipse.emf.parsley.dsl.model.PartSpecification;
+import org.eclipse.emf.parsley.dsl.tests.inputs.TestInputs;
+import org.eclipse.emf.parsley.dsl.tests.inputs.TestInputsWithErrors;
+import org.eclipse.xtext.junit4.InjectWith;
+import org.eclipse.xtext.junit4.XtextRunner;
+import org.eclipse.xtext.junit4.util.ParseHelper;
+import org.eclipse.xtext.junit4.validation.ValidationTestHelper;
+import org.eclipse.xtext.validation.Issue;
+import org.eclipse.xtext.xbase.lib.Exceptions;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.runner.RunWith;
+
+@RunWith(XtextRunner.class)
+@InjectWith(EmfParsleyDslInjectorProvider.class)
+@SuppressWarnings("all")
+public class EmfComponentsDslAbstractTests {
+ @Inject
+ protected TestInputs inputs;
+
+ @Inject
+ protected TestInputsWithErrors inputsWithErrors;
+
+ @Inject
+ @Extension
+ private ParseHelper<Model> _parseHelper;
+
+ @Inject
+ @Extension
+ private ValidationTestHelper _validationTestHelper;
+
+ @BeforeClass
+ public static void setCRLF() {
+ System.setProperty("line.separator", "\n");
+ }
+
+ public Model parseAndAssertNoError(final CharSequence s) {
+ try {
+ Model _xblockexpression = null;
+ {
+ Model ts = this._parseHelper.parse(s);
+ this._validationTestHelper.assertNoErrors(ts);
+ _xblockexpression = (ts);
+ }
+ return _xblockexpression;
+ } catch (Throwable _e) {
+ throw Exceptions.sneakyThrow(_e);
+ }
+ }
+
+ public void parseAndAssertError(final CharSequence s, final EClass objectType, final String code, final String messagePart) {
+ try {
+ Model _parse = this._parseHelper.parse(s);
+ this._validationTestHelper.assertError(_parse, objectType, code, messagePart);
+ } catch (Throwable _e) {
+ throw Exceptions.sneakyThrow(_e);
+ }
+ }
+
+ public Model parseModel(final CharSequence s) {
+ try {
+ Model _parse = this._parseHelper.parse(s);
+ return _parse;
+ } catch (Throwable _e) {
+ throw Exceptions.sneakyThrow(_e);
+ }
+ }
+
+ public void parseAndAssertErrors(final CharSequence s) {
+ try {
+ Model _parse = this._parseHelper.parse(s);
+ List<Issue> _validate = this._validationTestHelper.validate(_parse);
+ int _size = _validate.size();
+ boolean _greaterThan = (_size > 0);
+ Assert.assertTrue(_greaterThan);
+ } catch (Throwable _e) {
+ throw Exceptions.sneakyThrow(_e);
+ }
+ }
+
+ public Module module(final CharSequence s) {
+ Model _parseAndAssertNoError = this.parseAndAssertNoError(s);
+ Module _module = _parseAndAssertNoError.getModule();
+ return _module;
+ }
+
+ public void assertEqualsStrings(final Object expected, final Object actual) {
+ String _plus = ("" + expected);
+ String _plus_1 = ("" + actual);
+ Assert.assertEquals(_plus, _plus_1);
+ }
+
+ public PartSpecification partSpecification(final CharSequence s) {
+ Module _module = this.module(s);
+ EList<PartSpecification> _parts = _module.getParts();
+ PartSpecification _head = IterableExtensions.<PartSpecification>head(_parts);
+ return _head;
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslGeneratorTests.java b/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslGeneratorTests.java
new file mode 100644
index 000000000..9c0eeb42f
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslGeneratorTests.java
@@ -0,0 +1,1493 @@
+package org.eclipse.emf.parsley.dsl.tests;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import org.eclipse.emf.parsley.dsl.EmfParsleyDslInjectorProvider;
+import org.eclipse.emf.parsley.dsl.tests.EmfComponentsDslAbstractTests;
+import org.eclipse.emf.parsley.dsl.tests.util.CustomCompilationTestHelper;
+import org.eclipse.emf.parsley.dsl.tests.util.CustomCompilationTestHelper.Result;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.junit4.InjectWith;
+import org.eclipse.xtext.junit4.XtextRunner;
+import org.eclipse.xtext.util.IAcceptor;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(XtextRunner.class)
+@InjectWith(EmfParsleyDslInjectorProvider.class)
+@SuppressWarnings("all")
+public class EmfComponentsDslGeneratorTests extends EmfComponentsDslAbstractTests {
+ @Inject
+ @Extension
+ private CustomCompilationTestHelper _customCompilationTestHelper;
+
+ @Test
+ public void testEmptyModule() {
+ CharSequence _emptyModule = this.inputs.emptyModule();
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("package my.empty;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.EmfComponentsGuiceModule;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.ui.plugin.AbstractUIPlugin;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("@SuppressWarnings(\"all\")");
+ _builder.newLine();
+ _builder.append("public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("super(plugin);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ this.assertCorrectJavaCodeGeneration(_emptyModule, _builder, null, null, null, null, null, null, null);
+ }
+
+ @Test
+ public void testModuleWithExtends() {
+ CharSequence _moduleWithExtends = this.inputs.moduleWithExtends();
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("package my.empty;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.dsl.tests.additional.MyTestGuiceModule;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.ui.plugin.AbstractUIPlugin;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("@SuppressWarnings(\"all\")");
+ _builder.newLine();
+ _builder.append("public class EmfComponentsGuiceModuleGen extends MyTestGuiceModule {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("super(plugin);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ this.assertCorrectJavaCodeGeneration(_moduleWithExtends, _builder, null, null, null, null, null, null, null);
+ }
+
+ @Test
+ public void testEmptyLabelProvider() {
+ CharSequence _emptyLabelProvider = this.inputs.emptyLabelProvider();
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("package my.empty;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("import my.empty.ui.provider.LabelProviderGen;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.EmfComponentsGuiceModule;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.jface.viewers.ILabelProvider;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.ui.plugin.AbstractUIPlugin;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("@SuppressWarnings(\"all\")");
+ _builder.newLine();
+ _builder.append("public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("super(plugin);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public Class<? extends ILabelProvider> bindILabelProvider() {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return LabelProviderGen.class;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ StringConcatenation _builder_1 = new StringConcatenation();
+ _builder_1.append("package my.empty.ui.provider;");
+ _builder_1.newLine();
+ _builder_1.newLine();
+ _builder_1.append("import com.google.inject.Inject;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider;");
+ _builder_1.newLine();
+ _builder_1.newLine();
+ _builder_1.append("@SuppressWarnings(\"all\")");
+ _builder_1.newLine();
+ _builder_1.append("public class LabelProviderGen extends ViewerLabelProvider {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("@Inject");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public LabelProviderGen(final AdapterFactoryLabelProvider delegate) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("super(delegate);");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append("}");
+ _builder_1.newLine();
+ this.assertCorrectJavaCodeGeneration(_emptyLabelProvider, _builder, _builder_1, null, null, null, null, null, null);
+ }
+
+ @Test
+ public void testEmptyPropertyDescriptionProvider() {
+ CharSequence _emptyPropertyDescriptionProvider = this.inputs.emptyPropertyDescriptionProvider();
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("package my.empty;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("import my.empty.ui.provider.PropertyDescriptionProviderGen;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.EmfComponentsGuiceModule;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.ui.plugin.AbstractUIPlugin;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("@SuppressWarnings(\"all\")");
+ _builder.newLine();
+ _builder.append("public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("super(plugin);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public Class<? extends PropertyDescriptionProvider> bindPropertyDescriptionProvider() {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return PropertyDescriptionProviderGen.class;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ StringConcatenation _builder_1 = new StringConcatenation();
+ _builder_1.append("package my.empty.ui.provider;");
+ _builder_1.newLine();
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.ui.provider.FeatureLabelProvider;");
+ _builder_1.newLine();
+ _builder_1.newLine();
+ _builder_1.append("@SuppressWarnings(\"all\")");
+ _builder_1.newLine();
+ _builder_1.append("public class PropertyDescriptionProviderGen extends PropertyDescriptionProvider {");
+ _builder_1.newLine();
+ _builder_1.append("}");
+ _builder_1.newLine();
+ this.assertCorrectJavaCodeGeneration(_emptyPropertyDescriptionProvider, _builder, _builder_1, null, null, null, null, null, null);
+ }
+
+ @Test
+ public void testEmptyLabelSpecifications() {
+ CharSequence _emptyLabelSpecifications = this.inputs.emptyLabelSpecifications();
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("package my.empty.ui.provider;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("import com.google.inject.Inject;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("@SuppressWarnings(\"all\")");
+ _builder.newLine();
+ _builder.append("public class LabelProviderGen extends ViewerLabelProvider {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("@Inject");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public LabelProviderGen(final AdapterFactoryLabelProvider delegate) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("super(delegate);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ this.assertCorrectJavaCodeGeneration(_emptyLabelSpecifications,
+ null, _builder, null, null, null, null, null, null);
+ }
+
+ @Test
+ public void testLabelSpecifications() {
+ CharSequence _labelSpecifications = this.inputs.labelSpecifications();
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("package my.empty.ui.provider;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("import com.google.inject.Inject;");
+ _builder.newLine();
+ _builder.append("import java.util.List;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.common.util.EList;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.Book;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.BookOnTape;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.Borrower;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.Lendable;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.Library;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.Writer;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.swt.graphics.ImageData;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.xtext.xbase.lib.Functions.Function1;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.xtext.xbase.lib.ListExtensions;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.xtext.xbase.lib.StringExtensions;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("@SuppressWarnings(\"all\")");
+ _builder.newLine();
+ _builder.append("public class LabelProviderGen extends ViewerLabelProvider {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("@Inject");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public LabelProviderGen(final AdapterFactoryLabelProvider delegate) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("super(delegate);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public String text(final Library it) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return \"foo\";");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public String text(final Writer writer) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("String _name = writer.getName();");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return _name;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public String text(final Book it) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("String _title = it.getTitle();");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return _title;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public String text(final Lendable it) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("int _copies = it.getCopies();");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("String _plus = (\"copies: \" + Integer.valueOf(_copies));");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return _plus;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public String text(final Borrower it) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("String _xblockexpression = null;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("{");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("EList<Lendable> _borrowed = it.getBorrowed();");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("final Function1<Lendable,Integer> _function = new Function1<Lendable,Integer>() {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public Integer apply(final Lendable b) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("int _copies = b.getCopies();");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return Integer.valueOf(_copies);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("List<Integer> _map = ListExtensions.<Lendable, Integer>map(_borrowed, _function);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("final String buffer = (\"borrowed: \" + _map);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("String _upperCase = buffer.toUpperCase();");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("_xblockexpression = (_upperCase);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return _xblockexpression;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public String text(final BookOnTape it) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("String _title = it.getTitle();");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return _title;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public Object image(final Library it) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return \"library.jpeg\";");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public Object image(final Writer writer) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("Object _xifexpression = null;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("String _name = writer.getName();");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(_name);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("if (_isNullOrEmpty) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("_xifexpression = \"noname.gif\";");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("ImageData _imageData = new ImageData(\"writer.jpeg\");");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("_xifexpression = _imageData;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return _xifexpression;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ this.assertCorrectJavaCodeGeneration(_labelSpecifications,
+ null, _builder, null, null, null, null, null, null);
+ }
+
+ @Test
+ public void testPropertyDescriptionSpecifications() {
+ CharSequence _propertyDescriptionSpecifications = this.inputs.propertyDescriptionSpecifications();
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("package my.empty;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("import my.empty.ui.provider.PropertyDescriptionProviderGen;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.EmfComponentsGuiceModule;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.ui.plugin.AbstractUIPlugin;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("@SuppressWarnings(\"all\")");
+ _builder.newLine();
+ _builder.append("public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("super(plugin);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public Class<? extends PropertyDescriptionProvider> bindPropertyDescriptionProvider() {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return PropertyDescriptionProviderGen.class;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ StringConcatenation _builder_1 = new StringConcatenation();
+ _builder_1.append("package my.empty.ui.provider;");
+ _builder_1.newLine();
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.ecore.EStructuralFeature;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.xtext.xbase.lib.StringExtensions;");
+ _builder_1.newLine();
+ _builder_1.newLine();
+ _builder_1.append("@SuppressWarnings(\"all\")");
+ _builder_1.newLine();
+ _builder_1.append("public class PropertyDescriptionProviderGen extends PropertyDescriptionProvider {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public String text_Library_name(final EStructuralFeature it) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return \"Name\";");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public String text_Library_books(final EStructuralFeature it) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return \"Books\";");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public String text_Writer_lastName(final EStructuralFeature it) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("String _name = it.getName();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("String _firstUpper = StringExtensions.toFirstUpper(_name);");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return _firstUpper;");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append("}");
+ _builder_1.newLine();
+ this.assertCorrectJavaCodeGeneration(_propertyDescriptionSpecifications, _builder, null, _builder_1, null, null, null, null, null);
+ }
+
+ @Test
+ public void testFeaturesSpecifications() {
+ CharSequence _featuresSpecifications = this.inputs.featuresSpecifications();
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("package my.empty;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("import my.empty.ui.provider.FeaturesProviderGen;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.EmfComponentsGuiceModule;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.ui.plugin.AbstractUIPlugin;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("@SuppressWarnings(\"all\")");
+ _builder.newLine();
+ _builder.append("public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("super(plugin);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public Class<? extends FeaturesProvider> bindFeaturesProvider() {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return FeaturesProviderGen.class;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ StringConcatenation _builder_1 = new StringConcatenation();
+ _builder_1.append("package my.empty.ui.provider;");
+ _builder_1.newLine();
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.ui.provider.EClassToEStructuralFeatureAsStringsMap;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;");
+ _builder_1.newLine();
+ _builder_1.newLine();
+ _builder_1.append("@SuppressWarnings(\"all\")");
+ _builder_1.newLine();
+ _builder_1.append("public class FeaturesProviderGen extends FeaturesProvider {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("@Override");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public void buildStringMap(final EClassToEStructuralFeatureAsStringsMap stringMap) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("super.buildStringMap(stringMap);");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("stringMap.mapTo(\"org.eclipse.emf.parsley.examples.library.Library\",");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("\"name\");");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("stringMap.mapTo(\"org.eclipse.emf.parsley.examples.library.Writer\",");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("\"firstName\", \"lastName\", \"books\");");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append("}");
+ _builder_1.newLine();
+ this.assertCorrectJavaCodeGeneration(_featuresSpecifications, _builder, null, null, _builder_1, null, null, null, null);
+ }
+
+ @Test
+ public void testFormFeatureControlSpecifications() {
+ CharSequence _formControlSpecifications = this.inputs.formControlSpecifications();
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("package my.empty;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("import my.empty.binding.FormFeatureControlFactoryGen;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.EmfComponentsGuiceModule;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.binding.FormControlFactory;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.ui.plugin.AbstractUIPlugin;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("@SuppressWarnings(\"all\")");
+ _builder.newLine();
+ _builder.append("public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("super(plugin);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public Class<? extends FormControlFactory> bindFormControlFactory() {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return FormFeatureControlFactoryGen.class;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ StringConcatenation _builder_1 = new StringConcatenation();
+ _builder_1.append("package my.empty.binding;");
+ _builder_1.newLine();
+ _builder_1.newLine();
+ _builder_1.append("import java.util.List;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.core.databinding.DataBindingContext;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.core.databinding.observable.value.IObservableValue;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.common.util.EList;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.binding.FormControlFactory;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.examples.library.Book;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.examples.library.Library;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.examples.library.Writer;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.jface.databinding.swt.ISWTObservableValue;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.jface.databinding.swt.SWTObservables;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.swt.SWT;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.swt.widgets.Composite;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.swt.widgets.Control;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.swt.widgets.Label;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.ui.forms.widgets.FormToolkit;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.xtext.xbase.lib.Functions.Function1;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.xtext.xbase.lib.IterableExtensions;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.xtext.xbase.lib.ListExtensions;");
+ _builder_1.newLine();
+ _builder_1.newLine();
+ _builder_1.append("@SuppressWarnings(\"all\")");
+ _builder_1.newLine();
+ _builder_1.append("public class FormFeatureControlFactoryGen extends FormControlFactory {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public Control control_Library_name(final Library it) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return null;");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public Control control_Writer_books(final Writer it) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("FormToolkit _toolkit = this.getToolkit();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("Composite _parent = this.getParent();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("EList<Book> _books = it.getBooks();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("final Function1<Book,String> _function = new Function1<Book,String>() {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public String apply(final Book it) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("String _title = it.getTitle();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return _title;");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("};");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("List<String> _map = ListExtensions.<Book, String>map(_books, _function);");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("String _join = IterableExtensions.join(_map, \", \");");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("Label _createLabel = _toolkit.createLabel(_parent, _join);");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return _createLabel;");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public Control control_Writer_name(final DataBindingContext dataBindingContext, final IObservableValue observableValue) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("Control control = createControl_Writer_name();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("dataBindingContext.bindValue(");
+ _builder_1.newLine();
+ _builder_1.append(" \t");
+ _builder_1.append("createTarget_Writer_name(control),");
+ _builder_1.newLine();
+ _builder_1.append(" \t");
+ _builder_1.append("observableValue);");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return control;");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("protected Control createControl_Writer_name() {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("FormToolkit _toolkit = this.getToolkit();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("Composite _parent = this.getParent();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("Label _createLabel = _toolkit.createLabel(_parent, \"\");");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return _createLabel;");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("protected IObservableValue createTarget_Writer_name(final Control it) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("ISWTObservableValue _observeText = SWTObservables.observeText(it);");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return _observeText;");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public Control control_Writer_firstName(final DataBindingContext dataBindingContext, final IObservableValue observableValue) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("Control control = createControl_Writer_firstName();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("dataBindingContext.bindValue(");
+ _builder_1.newLine();
+ _builder_1.append(" \t");
+ _builder_1.append("createTarget_Writer_firstName(control),");
+ _builder_1.newLine();
+ _builder_1.append(" \t");
+ _builder_1.append("observableValue);");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return control;");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("protected Control createControl_Writer_firstName() {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("FormToolkit _toolkit = this.getToolkit();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("Composite _parent = this.getParent();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("Label _createLabel = _toolkit.createLabel(_parent, \"\");");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return _createLabel;");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("protected IObservableValue createTarget_Writer_firstName(final Control it) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("ISWTObservableValue _observeText = SWTObservables.observeText(it, SWT.Modify);");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return _observeText;");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append("}");
+ _builder_1.newLine();
+ this.assertCorrectJavaCodeGeneration(_formControlSpecifications, _builder, null, null, null, _builder_1, null, null, null);
+ }
+
+ @Test
+ public void testViewerContentProviderSpecifications() {
+ CharSequence _viewerContentProviderSpecifications = this.inputs.viewerContentProviderSpecifications();
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("package my.empty;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("import my.empty.edit.ui.provider.ViewerContentProviderGen;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.EmfComponentsGuiceModule;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.jface.viewers.IContentProvider;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.ui.plugin.AbstractUIPlugin;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("@SuppressWarnings(\"all\")");
+ _builder.newLine();
+ _builder.append("public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("super(plugin);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public Class<? extends IContentProvider> bindIContentProvider() {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return ViewerContentProviderGen.class;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ StringConcatenation _builder_1 = new StringConcatenation();
+ _builder_1.append("package my.empty.edit.ui.provider;");
+ _builder_1.newLine();
+ _builder_1.newLine();
+ _builder_1.append("import com.google.common.collect.Iterables;");
+ _builder_1.newLine();
+ _builder_1.append("import com.google.inject.Inject;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.common.notify.AdapterFactory;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.common.util.EList;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.ecore.EObject;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.edit.ui.provider.ViewerContentProvider;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.examples.library.Book;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.examples.library.Library;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.examples.library.Writer;");
+ _builder_1.newLine();
+ _builder_1.newLine();
+ _builder_1.append("@SuppressWarnings(\"all\")");
+ _builder_1.newLine();
+ _builder_1.append("public class ViewerContentProviderGen extends ViewerContentProvider {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("@Inject");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public ViewerContentProviderGen(final AdapterFactory adapterFactory) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("super(adapterFactory);");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public Object children(final Library it) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("EList<Book> _books = it.getBooks();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("EList<Writer> _writers = it.getWriters();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("Iterable<EObject> _plus = Iterables.<EObject>concat(_books, _writers);");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return _plus;");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public Object children(final Writer writer) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("EList<Book> _books = writer.getBooks();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return _books;");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public Object children(final Book it) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("Writer _author = it.getAuthor();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return _author;");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append("}");
+ _builder_1.newLine();
+ this.assertCorrectJavaCodeGeneration(_viewerContentProviderSpecifications, _builder, null, null, null, null, _builder_1, null, null);
+ }
+
+ @Test
+ public void testProposalSpecifications() {
+ CharSequence _proposalsSpecifications = this.inputs.proposalsSpecifications();
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("package my.empty;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("import my.empty.binding.ProposalCreatorGen;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.EmfComponentsGuiceModule;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.binding.ProposalCreator;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.ui.plugin.AbstractUIPlugin;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("@SuppressWarnings(\"all\")");
+ _builder.newLine();
+ _builder.append("public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("super(plugin);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public Class<? extends ProposalCreator> bindProposalCreator() {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return ProposalCreatorGen.class;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ StringConcatenation _builder_1 = new StringConcatenation();
+ _builder_1.append("package my.empty.binding;");
+ _builder_1.newLine();
+ _builder_1.newLine();
+ _builder_1.append("import java.util.ArrayList;");
+ _builder_1.newLine();
+ _builder_1.append("import java.util.List;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.common.util.EList;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.ecore.EStructuralFeature;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.binding.ProposalCreator;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.examples.library.Book;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.examples.library.Borrower;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.examples.library.EXTLibraryFactory;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.examples.library.Library;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.emf.parsley.examples.library.Writer;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.xtext.xbase.lib.CollectionLiterals;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.xtext.xbase.lib.ObjectExtensions;");
+ _builder_1.newLine();
+ _builder_1.append("import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;");
+ _builder_1.newLine();
+ _builder_1.newLine();
+ _builder_1.append("@SuppressWarnings(\"all\")");
+ _builder_1.newLine();
+ _builder_1.append("public class ProposalCreatorGen extends ProposalCreator {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public List<? extends Object> proposals_Library_name(final Library it, final EStructuralFeature feature) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("ArrayList<String> _newArrayList = CollectionLiterals.<String>newArrayList(\"foo\", \"bar\");");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return _newArrayList;");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public List<? extends Object> proposals_Writer_books(final Writer it, final EStructuralFeature feature) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("EList<Book> _books = it.getBooks();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return _books;");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public List<? extends Object> proposals_Book_author(final Book it, final EStructuralFeature feature) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("Writer _createWriter = EXTLibraryFactory.eINSTANCE.createWriter();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("final Procedure1<Writer> _function = new Procedure1<Writer>() {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public void apply(final Writer it) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("it.setName(\"Foo\");");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("};");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("Writer _doubleArrow = ObjectExtensions.<Writer>operator_doubleArrow(_createWriter, _function);");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("Writer _createWriter_1 = EXTLibraryFactory.eINSTANCE.createWriter();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("final Procedure1<Writer> _function_1 = new Procedure1<Writer>() {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public void apply(final Writer it) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("it.setName(\"Bar\");");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("};");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("Writer _doubleArrow_1 = ObjectExtensions.<Writer>operator_doubleArrow(_createWriter_1, _function_1);");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("ArrayList<Writer> _newArrayList = CollectionLiterals.<Writer>newArrayList(_doubleArrow, _doubleArrow_1);");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return _newArrayList;");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public List<? extends Object> proposals_Borrower_borrowed(final Borrower it, final EStructuralFeature feature) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("List<Object> _defaultProposals = this.defaultProposals(feature);");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("final Procedure1<List<Object>> _function = new Procedure1<List<Object>>() {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public void apply(final List<Object> it) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("Book _createBook = EXTLibraryFactory.eINSTANCE.createBook();");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("final Procedure1<Book> _function = new Procedure1<Book>() {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("public void apply(final Book it) {");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("it.setTitle(\"Fake Book\");");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("};");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("Book _doubleArrow = ObjectExtensions.<Book>operator_doubleArrow(_createBook, _function);");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("it.add(_doubleArrow);");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("};");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("final List<Object> p = ObjectExtensions.<List<Object>>operator_doubleArrow(_defaultProposals, _function);");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("return p;");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("}");
+ _builder_1.newLine();
+ _builder_1.append("}");
+ _builder_1.newLine();
+ this.assertCorrectJavaCodeGeneration(_proposalsSpecifications, _builder, null, null, null, null, null, _builder_1, null);
+ }
+
+ @Test
+ public void testViewsSpecifications() {
+ CharSequence _multipleViewsSpecifications = this.inputs.multipleViewsSpecifications();
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("package my.test;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.EmfComponentsGuiceModule;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.ui.plugin.AbstractUIPlugin;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("@SuppressWarnings(\"all\")");
+ _builder.newLine();
+ _builder.append("public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("super(plugin);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ StringConcatenation _builder_1 = new StringConcatenation();
+ _builder_1.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+ _builder_1.newLine();
+ _builder_1.append("<?eclipse version=\"3.4\"?>");
+ _builder_1.newLine();
+ _builder_1.append("<plugin>");
+ _builder_1.newLine();
+ _builder_1.append("\t");
+ _builder_1.append("<extension");
+ _builder_1.newLine();
+ _builder_1.append("\t ");
+ _builder_1.append("point=\"org.eclipse.ui.views\">");
+ _builder_1.newLine();
+ _builder_1.append("\t ");
+ _builder_1.append("<view");
+ _builder_1.newLine();
+ _builder_1.append("\t ");
+ _builder_1.append("category=\"org.eclipse.emf.parsley\"");
+ _builder_1.newLine();
+ _builder_1.append("\t ");
+ _builder_1.append("class=\"my.test.TestExecutableExtensionFactory:org.eclipse.emf.parsley.views.AbstractSaveableTreeView\"");
+ _builder_1.newLine();
+ _builder_1.append("\t ");
+ _builder_1.append("id=\"my.view.tree.part\"");
+ _builder_1.newLine();
+ _builder_1.append("\t ");
+ _builder_1.append("name=\"My Tree View\"");
+ _builder_1.newLine();
+ _builder_1.append("\t ");
+ _builder_1.append("restorable=\"true\">");
+ _builder_1.newLine();
+ _builder_1.append("\t ");
+ _builder_1.append("</view>");
+ _builder_1.newLine();
+ _builder_1.append("\t ");
+ _builder_1.append("<view");
+ _builder_1.newLine();
+ _builder_1.append("\t ");
+ _builder_1.append("category=\"my.view.category\"");
+ _builder_1.newLine();
+ _builder_1.append("\t ");
+ _builder_1.append("class=\"my.test.TestExecutableExtensionFactory:org.eclipse.emf.parsley.views.AbstractSaveableTreeFormView\"");
+ _builder_1.newLine();
+ _builder_1.append("\t ");
+ _builder_1.append("id=\"my.view.form.part\"");
+ _builder_1.newLine();
+ _builder_1.append("\t ");
+ _builder_1.append("name=\"My Tree Form View\"");
+ _builder_1.newLine();
+ _builder_1.append("\t ");
+ _builder_1.append("restorable=\"true\">");
+ _builder_1.newLine();
+ _builder_1.append("\t ");
+ _builder_1.append("</view>");
+ _builder_1.newLine();
+ _builder_1.append("\t");
+ _builder_1.append("</extension>");
+ _builder_1.newLine();
+ _builder_1.append("</plugin>");
+ _builder_1.newLine();
+ this.assertCorrectJavaCodeGeneration(_multipleViewsSpecifications, _builder, null, null, null, null, null, null, _builder_1);
+ }
+
+ private void assertCorrectJavaCodeGeneration(final CharSequence input, final CharSequence expectedModule, final CharSequence expectedLabelProvider, final CharSequence expectedPropertyDescriptionProvider, final CharSequence expectedFeatureProvider, final CharSequence expectedFormFeatureControlFactory, final CharSequence expectedViewerContentProvider, final CharSequence expectedProposalCreator, final CharSequence expectedPluginXmlGen) {
+ final IAcceptor<Result> _function = new IAcceptor<Result>() {
+ public void accept(final Result it) {
+ Map<String,CharSequence> _allGeneratedResources = it.getAllGeneratedResources();
+ Set<Entry<String,CharSequence>> _entrySet = _allGeneratedResources.entrySet();
+ for (final Entry<String,CharSequence> e : _entrySet) {
+ String _key = e.getKey();
+ boolean _endsWith = _key.endsWith("ModuleGen.java");
+ if (_endsWith) {
+ boolean _notEquals = (!Objects.equal(expectedModule, null));
+ if (_notEquals) {
+ CharSequence _value = e.getValue();
+ EmfComponentsDslGeneratorTests.this.assertEqualsStrings(expectedModule, _value);
+ }
+ } else {
+ String _key_1 = e.getKey();
+ boolean _endsWith_1 = _key_1.endsWith("PropertyDescriptionProviderGen.java");
+ if (_endsWith_1) {
+ boolean _notEquals_1 = (!Objects.equal(expectedPropertyDescriptionProvider, null));
+ if (_notEquals_1) {
+ CharSequence _value_1 = e.getValue();
+ EmfComponentsDslGeneratorTests.this.assertEqualsStrings(expectedPropertyDescriptionProvider, _value_1);
+ }
+ } else {
+ String _key_2 = e.getKey();
+ boolean _endsWith_2 = _key_2.endsWith("FeaturesProviderGen.java");
+ if (_endsWith_2) {
+ boolean _notEquals_2 = (!Objects.equal(expectedFeatureProvider, null));
+ if (_notEquals_2) {
+ CharSequence _value_2 = e.getValue();
+ EmfComponentsDslGeneratorTests.this.assertEqualsStrings(expectedFeatureProvider, _value_2);
+ }
+ } else {
+ String _key_3 = e.getKey();
+ boolean _endsWith_3 = _key_3.endsWith("LabelProviderGen.java");
+ if (_endsWith_3) {
+ boolean _notEquals_3 = (!Objects.equal(expectedLabelProvider, null));
+ if (_notEquals_3) {
+ CharSequence _value_3 = e.getValue();
+ EmfComponentsDslGeneratorTests.this.assertEqualsStrings(expectedLabelProvider, _value_3);
+ }
+ } else {
+ String _key_4 = e.getKey();
+ boolean _endsWith_4 = _key_4.endsWith("FormFeatureControlFactoryGen.java");
+ if (_endsWith_4) {
+ boolean _notEquals_4 = (!Objects.equal(expectedFormFeatureControlFactory, null));
+ if (_notEquals_4) {
+ CharSequence _value_4 = e.getValue();
+ EmfComponentsDslGeneratorTests.this.assertEqualsStrings(expectedFormFeatureControlFactory, _value_4);
+ }
+ } else {
+ String _key_5 = e.getKey();
+ boolean _endsWith_5 = _key_5.endsWith("ViewerContentProviderGen.java");
+ if (_endsWith_5) {
+ boolean _notEquals_5 = (!Objects.equal(expectedViewerContentProvider, null));
+ if (_notEquals_5) {
+ CharSequence _value_5 = e.getValue();
+ EmfComponentsDslGeneratorTests.this.assertEqualsStrings(expectedViewerContentProvider, _value_5);
+ }
+ } else {
+ String _key_6 = e.getKey();
+ boolean _endsWith_6 = _key_6.endsWith("ProposalCreatorGen.java");
+ if (_endsWith_6) {
+ boolean _notEquals_6 = (!Objects.equal(expectedProposalCreator, null));
+ if (_notEquals_6) {
+ CharSequence _value_6 = e.getValue();
+ EmfComponentsDslGeneratorTests.this.assertEqualsStrings(expectedProposalCreator, _value_6);
+ }
+ } else {
+ String _key_7 = e.getKey();
+ boolean _endsWith_7 = _key_7.endsWith(".xml_emfparsley_gen");
+ if (_endsWith_7) {
+ boolean _notEquals_7 = (!Objects.equal(expectedPluginXmlGen, null));
+ if (_notEquals_7) {
+ CharSequence _value_7 = e.getValue();
+ EmfComponentsDslGeneratorTests.this.assertEqualsStrings(expectedPluginXmlGen, _value_7);
+ }
+ } else {
+ CharSequence _value_8 = e.getValue();
+ String _plus = ("unexpected generated code: " + _value_8);
+ Assert.fail(_plus);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ it.compileToJava();
+ }
+ };
+ this._customCompilationTestHelper.compileAll(input, _function);
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslJvmModelInferrerTests.java b/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslJvmModelInferrerTests.java
new file mode 100644
index 000000000..f96d906c0
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslJvmModelInferrerTests.java
@@ -0,0 +1,106 @@
+package org.eclipse.emf.parsley.dsl.tests;
+
+import com.google.inject.Inject;
+import org.eclipse.emf.parsley.dsl.EmfParsleyDslInjectorProvider;
+import org.eclipse.emf.parsley.dsl.jvmmodel.EmfParsleyDslJvmModelInferrer;
+import org.eclipse.emf.parsley.dsl.model.Module;
+import org.eclipse.emf.parsley.dsl.model.PartSpecification;
+import org.eclipse.emf.parsley.dsl.tests.EmfComponentsDslAbstractTests;
+import org.eclipse.xtext.junit4.InjectWith;
+import org.eclipse.xtext.junit4.XtextRunner;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(XtextRunner.class)
+@InjectWith(EmfParsleyDslInjectorProvider.class)
+@SuppressWarnings("all")
+public class EmfComponentsDslJvmModelInferrerTests extends EmfComponentsDslAbstractTests {
+ @Inject
+ private EmfParsleyDslJvmModelInferrer inferrer;
+
+ @Test
+ public void testEmptyModule() {
+ CharSequence _emptyModule = this.inputs.emptyModule();
+ this.parseAndAssertNoError(_emptyModule);
+ }
+
+ @Test
+ public void testModuleName() {
+ CharSequence _emptyModule = this.inputs.emptyModule();
+ Module _module = this.module(_emptyModule);
+ String _moduleQN = this.inferrer.moduleQN(_module);
+ this.assertEqualsStrings("my.empty.EmfComponentsGuiceModuleGen", _moduleQN);
+ }
+
+ @Test
+ public void testExecutableExtensionFactoryName() {
+ CharSequence _emptyModule = this.inputs.emptyModule();
+ Module _module = this.module(_emptyModule);
+ String _executableExtensionFactoryQN = this.inferrer.executableExtensionFactoryQN(_module);
+ this.assertEqualsStrings("my.empty.EmptyExecutableExtensionFactory", _executableExtensionFactoryQN);
+ }
+
+ @Test
+ public void testViewSpecificationExecutableExtensionFactoryName() {
+ CharSequence _nonEmptyViewsSpecifications = this.inputs.nonEmptyViewsSpecifications();
+ PartSpecification _partSpecification = this.partSpecification(_nonEmptyViewsSpecifications);
+ String _executableExtensionFactoryQN = this.inferrer.executableExtensionFactoryQN(_partSpecification);
+ this.assertEqualsStrings("my.test.TestExecutableExtensionFactory", _executableExtensionFactoryQN);
+ }
+
+ @Test
+ public void testActivatorName() {
+ CharSequence _emptyModule = this.inputs.emptyModule();
+ Module _module = this.module(_emptyModule);
+ String _activatorQN = this.inferrer.activatorQN(_module);
+ this.assertEqualsStrings("my.empty.Activator", _activatorQN);
+ }
+
+ @Test
+ public void testLabelProviderName() {
+ CharSequence _emptyModule = this.inputs.emptyModule();
+ Module _module = this.module(_emptyModule);
+ String _labelProviderQN = this.inferrer.labelProviderQN(_module);
+ this.assertEqualsStrings("my.empty.ui.provider.LabelProviderGen", _labelProviderQN);
+ }
+
+ @Test
+ public void testPropertyDescriptionProviderName() {
+ CharSequence _emptyModule = this.inputs.emptyModule();
+ Module _module = this.module(_emptyModule);
+ String _propertyDescriptionProviderQN = this.inferrer.propertyDescriptionProviderQN(_module);
+ this.assertEqualsStrings("my.empty.ui.provider.PropertyDescriptionProviderGen", _propertyDescriptionProviderQN);
+ }
+
+ @Test
+ public void testFeaturesProviderName() {
+ CharSequence _emptyModule = this.inputs.emptyModule();
+ Module _module = this.module(_emptyModule);
+ String _featuresProviderQN = this.inferrer.featuresProviderQN(_module);
+ this.assertEqualsStrings("my.empty.ui.provider.FeaturesProviderGen", _featuresProviderQN);
+ }
+
+ @Test
+ public void testFormFeatureControlFactoryName() {
+ CharSequence _emptyModule = this.inputs.emptyModule();
+ Module _module = this.module(_emptyModule);
+ String _formFeatureControlFactoryQN = this.inferrer.formFeatureControlFactoryQN(_module);
+ this.assertEqualsStrings("my.empty.binding.FormFeatureControlFactoryGen", _formFeatureControlFactoryQN);
+ }
+
+ @Test
+ public void testViewerContentProviderName() {
+ CharSequence _emptyModule = this.inputs.emptyModule();
+ Module _module = this.module(_emptyModule);
+ String _viewerContentProviderQN = this.inferrer.viewerContentProviderQN(_module);
+ this.assertEqualsStrings("my.empty.edit.ui.provider.ViewerContentProviderGen", _viewerContentProviderQN);
+ }
+
+ @Test
+ public void testProposalCreatorName() {
+ CharSequence _proposalsSpecifications = this.inputs.proposalsSpecifications();
+ Module _module = this.module(_proposalsSpecifications);
+ String _proposalCreatorQN = this.inferrer.proposalCreatorQN(_module);
+ this.assertEqualsStrings("my.empty.binding.ProposalCreatorGen", _proposalCreatorQN);
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslParserTests.java b/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslParserTests.java
new file mode 100644
index 000000000..9bbe464fd
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslParserTests.java
@@ -0,0 +1,122 @@
+package org.eclipse.emf.parsley.dsl.tests;
+
+import com.google.inject.Inject;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.parsley.dsl.EmfParsleyDslInjectorProvider;
+import org.eclipse.emf.parsley.dsl.model.Model;
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+import org.eclipse.emf.parsley.dsl.tests.EmfComponentsDslAbstractTests;
+import org.eclipse.xtext.diagnostics.Diagnostic;
+import org.eclipse.xtext.junit4.InjectWith;
+import org.eclipse.xtext.junit4.XtextRunner;
+import org.eclipse.xtext.junit4.validation.ValidationTestHelper;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(XtextRunner.class)
+@InjectWith(EmfParsleyDslInjectorProvider.class)
+@SuppressWarnings("all")
+public class EmfComponentsDslParserTests extends EmfComponentsDslAbstractTests {
+ @Inject
+ @Extension
+ private ValidationTestHelper _validationTestHelper;
+
+ @Test
+ public void testEmptyModule() {
+ CharSequence _emptyModule = this.inputs.emptyModule();
+ this.parseAndAssertNoError(_emptyModule);
+ }
+
+ @Test
+ public void testModuleWithExtends() {
+ CharSequence _moduleWithExtends = this.inputs.moduleWithExtends();
+ this.parseAndAssertNoError(_moduleWithExtends);
+ }
+
+ @Test
+ public void testEmptyLabelProvider() {
+ CharSequence _emptyLabelProvider = this.inputs.emptyLabelProvider();
+ this.parseAndAssertNoError(_emptyLabelProvider);
+ }
+
+ @Test
+ public void testEmptyLabelSpecifications() {
+ CharSequence _emptyLabelSpecifications = this.inputs.emptyLabelSpecifications();
+ this.parseAndAssertNoError(_emptyLabelSpecifications);
+ }
+
+ @Test
+ public void testLabelSpecifications() {
+ CharSequence _labelSpecifications = this.inputs.labelSpecifications();
+ this.parseAndAssertNoError(_labelSpecifications);
+ }
+
+ @Test
+ public void testDuplicateLabelSpecifications() {
+ CharSequence _duplicateLabelSpecifications = this.inputsWithErrors.duplicateLabelSpecifications();
+ this.parseAndAssertErrors(_duplicateLabelSpecifications);
+ }
+
+ @Test
+ public void testPropertyDescriptionSpecifications() {
+ CharSequence _propertyDescriptionSpecifications = this.inputs.propertyDescriptionSpecifications();
+ this.parseAndAssertNoError(_propertyDescriptionSpecifications);
+ }
+
+ @Test
+ public void testWrongFeatureLabelSpecifications() {
+ CharSequence _wrongPropertyDescriptionSpecifications = this.inputsWithErrors.wrongPropertyDescriptionSpecifications();
+ final Model model = this.parseModel(_wrongPropertyDescriptionSpecifications);
+ EClass _propertyDescriptionSpecification = ModelPackage.eINSTANCE.getPropertyDescriptionSpecification();
+ this._validationTestHelper.assertError(model, _propertyDescriptionSpecification,
+ Diagnostic.LINKING_DIAGNOSTIC,
+ "newArrayList");
+ EClass _propertyDescriptionSpecification_1 = ModelPackage.eINSTANCE.getPropertyDescriptionSpecification();
+ this._validationTestHelper.assertError(model, _propertyDescriptionSpecification_1,
+ Diagnostic.LINKING_DIAGNOSTIC,
+ "getBooks");
+ }
+
+ @Test
+ public void testFeaturesSpecifications() {
+ CharSequence _featuresSpecifications = this.inputs.featuresSpecifications();
+ this.parseAndAssertNoError(_featuresSpecifications);
+ }
+
+ @Test
+ public void testFormControlSpecifications() {
+ CharSequence _formControlSpecifications = this.inputs.formControlSpecifications();
+ this.parseAndAssertNoError(_formControlSpecifications);
+ }
+
+ @Test
+ public void testProposalsSpecifications() {
+ CharSequence _proposalsSpecifications = this.inputs.proposalsSpecifications();
+ this.parseAndAssertNoError(_proposalsSpecifications);
+ }
+
+ @Test
+ public void testViewerContentProviderSpecifications() {
+ CharSequence _viewerContentProviderSpecifications = this.inputs.viewerContentProviderSpecifications();
+ this.parseAndAssertNoError(_viewerContentProviderSpecifications);
+ }
+
+ @Test
+ public void testEmptyViewsSpecifications() {
+ CharSequence _emptyViewsSpecifications = this.inputs.emptyViewsSpecifications();
+ this.parseAndAssertNoError(_emptyViewsSpecifications);
+ }
+
+ @Test
+ public void testNonEmptyViewsSpecifications() {
+ CharSequence _nonEmptyViewsSpecifications = this.inputs.nonEmptyViewsSpecifications();
+ this.parseAndAssertNoError(_nonEmptyViewsSpecifications);
+ }
+
+ @Test
+ public void testMultipleViewsSpecifications() {
+ CharSequence _multipleViewsSpecifications = this.inputs.multipleViewsSpecifications();
+ this.parseAndAssertNoError(_multipleViewsSpecifications);
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslPluginXmlGeneratorTests.java b/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslPluginXmlGeneratorTests.java
new file mode 100644
index 000000000..da79ac130
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslPluginXmlGeneratorTests.java
@@ -0,0 +1,289 @@
+package org.eclipse.emf.parsley.dsl.tests;
+
+import com.google.inject.Inject;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.parsley.dsl.EmfParsleyDslInjectorProvider;
+import org.eclipse.emf.parsley.dsl.generator.EmfParsleyDslOutputConfigurationProvider;
+import org.eclipse.emf.parsley.dsl.generator.EmfParsleyDslPluginXmlGenerator;
+import org.eclipse.emf.parsley.dsl.model.Model;
+import org.eclipse.emf.parsley.dsl.model.Module;
+import org.eclipse.emf.parsley.dsl.model.PartSpecification;
+import org.eclipse.emf.parsley.dsl.tests.EmfComponentsDslAbstractTests;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.generator.InMemoryFileSystemAccess;
+import org.eclipse.xtext.junit4.InjectWith;
+import org.eclipse.xtext.junit4.XtextRunner;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(XtextRunner.class)
+@InjectWith(EmfParsleyDslInjectorProvider.class)
+@SuppressWarnings("all")
+public class EmfComponentsDslPluginXmlGeneratorTests extends EmfComponentsDslAbstractTests {
+ @Inject
+ private EmfParsleyDslPluginXmlGenerator pluginXmlGenerator;
+
+ @Test
+ public void testEmptyContents() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+ _builder.newLine();
+ _builder.append("<?eclipse version=\"3.4\"?>");
+ _builder.newLine();
+ _builder.append("<plugin>");
+ _builder.newLine();
+ _builder.append("</plugin>");
+ _builder.newLine();
+ this.assertPluginXmlContents("", _builder);
+ }
+
+ @Test
+ public void testViewExtensionPoint() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("<view");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("category=\"org.eclipse.emf.parsley\"");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("class=\"my.test.TestExecutableExtensionFactory:org.eclipse.emf.parsley.views.AbstractSaveableTreeView\"");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("id=\"my.view.part\"");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("name=\"My View\"");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("restorable=\"true\">");
+ _builder.newLine();
+ _builder.append("</view>");
+ _builder.newLine();
+ CharSequence _nonEmptyViewsSpecifications = this.inputs.nonEmptyViewsSpecifications();
+ PartSpecification _partSpecification = this.partSpecification(_nonEmptyViewsSpecifications);
+ CharSequence _generateExtensionPoint = this.pluginXmlGenerator.generateExtensionPoint(_partSpecification);
+ this.assertEqualsStrings(_builder, _generateExtensionPoint);
+ }
+
+ @Test
+ public void testNoViewSpecification() {
+ CharSequence _emptyModule = this.inputs.emptyModule();
+ Module _module = this.module(_emptyModule);
+ this.assertPluginXmlContents(_module, "");
+ }
+
+ @Test
+ public void testSingleViewSpecification() {
+ CharSequence _nonEmptyViewsSpecifications = this.inputs.nonEmptyViewsSpecifications();
+ Module _module = this.module(_nonEmptyViewsSpecifications);
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+ _builder.newLine();
+ _builder.append("<?eclipse version=\"3.4\"?>");
+ _builder.newLine();
+ _builder.append("<plugin>");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("<extension");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("point=\"org.eclipse.ui.views\">");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("<view");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("category=\"org.eclipse.emf.parsley\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("class=\"my.test.TestExecutableExtensionFactory:org.eclipse.emf.parsley.views.AbstractSaveableTreeView\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("id=\"my.view.part\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("name=\"My View\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("restorable=\"true\">");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("</view>");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("</extension>");
+ _builder.newLine();
+ _builder.append("</plugin>");
+ _builder.newLine();
+ this.assertPluginXmlContents(_module, _builder);
+ }
+
+ @Test
+ public void testMultipleViewSpecification() {
+ CharSequence _multipleViewsSpecifications = this.inputs.multipleViewsSpecifications();
+ Module _module = this.module(_multipleViewsSpecifications);
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+ _builder.newLine();
+ _builder.append("<?eclipse version=\"3.4\"?>");
+ _builder.newLine();
+ _builder.append("<plugin>");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("<extension");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("point=\"org.eclipse.ui.views\">");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("<view");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("category=\"org.eclipse.emf.parsley\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("class=\"my.test.TestExecutableExtensionFactory:org.eclipse.emf.parsley.views.AbstractSaveableTreeView\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("id=\"my.view.tree.part\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("name=\"My Tree View\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("restorable=\"true\">");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("</view>");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("<view");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("category=\"my.view.category\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("class=\"my.test.TestExecutableExtensionFactory:org.eclipse.emf.parsley.views.AbstractSaveableTreeFormView\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("id=\"my.view.form.part\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("name=\"My Tree Form View\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("restorable=\"true\">");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("</view>");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("</extension>");
+ _builder.newLine();
+ _builder.append("</plugin>");
+ _builder.newLine();
+ this.assertPluginXmlContents(_module, _builder);
+ }
+
+ @Test
+ public void testPluginXmlGen() {
+ CharSequence _multipleViewsSpecifications = this.inputs.multipleViewsSpecifications();
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+ _builder.newLine();
+ _builder.append("<?eclipse version=\"3.4\"?>");
+ _builder.newLine();
+ _builder.append("<plugin>");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("<extension");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("point=\"org.eclipse.ui.views\">");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("<view");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("category=\"org.eclipse.emf.parsley\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("class=\"my.test.TestExecutableExtensionFactory:org.eclipse.emf.parsley.views.AbstractSaveableTreeView\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("id=\"my.view.tree.part\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("name=\"My Tree View\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("restorable=\"true\">");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("</view>");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("<view");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("category=\"my.view.category\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("class=\"my.test.TestExecutableExtensionFactory:org.eclipse.emf.parsley.views.AbstractSaveableTreeFormView\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("id=\"my.view.form.part\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("name=\"My Tree Form View\"");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("restorable=\"true\">");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("</view>");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("</extension>");
+ _builder.newLine();
+ _builder.append("</plugin>");
+ _builder.newLine();
+ this.assertPluginXmlGeneration(_multipleViewsSpecifications, _builder);
+ }
+
+ private void assertPluginXmlGeneration(final CharSequence input, final CharSequence expected) {
+ InMemoryFileSystemAccess _inMemoryFileSystemAccess = new InMemoryFileSystemAccess();
+ final InMemoryFileSystemAccess access = _inMemoryFileSystemAccess;
+ final Model parsed = this.parseAndAssertNoError(input);
+ Resource _eResource = parsed.eResource();
+ this.pluginXmlGenerator.doGenerate(_eResource, access);
+ Map<String,CharSequence> _files = access.getFiles();
+ final Set<Entry<String,CharSequence>> entrySet = _files.entrySet();
+ int _size = entrySet.size();
+ this.assertEqualsStrings(Integer.valueOf(1), Integer.valueOf(_size));
+ final Entry<String,CharSequence> e = IterableExtensions.<Entry<String,CharSequence>>head(entrySet);
+ String _key = e.getKey();
+ String _plus = (EmfParsleyDslOutputConfigurationProvider.PROJECT_ROOT_OUTPUT +
+ EmfParsleyDslOutputConfigurationProvider.PLUGIN_XML_EMFPARSLEY_REL_GEN_PATH);
+ int _length = _plus.length();
+ final String name = _key.substring(_length);
+ this.assertEqualsStrings(
+ EmfParsleyDslOutputConfigurationProvider.PLUGIN_XML_EMFPARSLEY_GEN, name);
+ CharSequence _value = e.getValue();
+ this.assertEqualsStrings(expected, _value);
+ }
+
+ private void assertPluginXmlContents(final Module module, final CharSequence expected) {
+ CharSequence _generatePluginXml = this.pluginXmlGenerator.generatePluginXml(module);
+ this.assertEqualsStrings(expected, _generatePluginXml);
+ }
+
+ private void assertPluginXmlContents(final CharSequence contents, final CharSequence expected) {
+ CharSequence _generatePluginXml = this.pluginXmlGenerator.generatePluginXml(contents);
+ this.assertEqualsStrings(expected, _generatePluginXml);
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslValidatorTests.java b/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslValidatorTests.java
new file mode 100644
index 000000000..d80126a87
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfComponentsDslValidatorTests.java
@@ -0,0 +1,54 @@
+package org.eclipse.emf.parsley.dsl.tests;
+
+import com.google.inject.Inject;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.parsley.dsl.EmfParsleyDslInjectorProvider;
+import org.eclipse.emf.parsley.dsl.model.Model;
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+import org.eclipse.emf.parsley.dsl.tests.EmfComponentsDslAbstractTests;
+import org.eclipse.emf.parsley.dsl.validation.EmfParsleyDslJavaValidator;
+import org.eclipse.xtext.junit4.InjectWith;
+import org.eclipse.xtext.junit4.XtextRunner;
+import org.eclipse.xtext.junit4.validation.ValidationTestHelper;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(XtextRunner.class)
+@InjectWith(EmfParsleyDslInjectorProvider.class)
+@SuppressWarnings("all")
+public class EmfComponentsDslValidatorTests extends EmfComponentsDslAbstractTests {
+ @Inject
+ @Extension
+ private ValidationTestHelper _validationTestHelper;
+
+ @Test
+ public void testNonEmptyViewsSpecifications() {
+ CharSequence _viewSpecificationIsNotIViewPart = this.inputsWithErrors.viewSpecificationIsNotIViewPart();
+ Model _parseModel = this.parseModel(_viewSpecificationIsNotIViewPart);
+ EClass _viewSpecification = ModelPackage.eINSTANCE.getViewSpecification();
+ this._validationTestHelper.assertError(_parseModel, _viewSpecification,
+ EmfParsleyDslJavaValidator.NOT_I_VIEW_PART,
+ "Must be an IViewPart");
+ }
+
+ @Test
+ public void testNotAnEObjectInEmfFeatureAccess() {
+ CharSequence _notAnEObjectInEmfFeatureAccess = this.inputsWithErrors.notAnEObjectInEmfFeatureAccess();
+ final Model model = this.parseModel(_notAnEObjectInEmfFeatureAccess);
+ EClass _emfFeatureAccess = ModelPackage.eINSTANCE.getEmfFeatureAccess();
+ this._validationTestHelper.assertError(model, _emfFeatureAccess,
+ EmfParsleyDslJavaValidator.NOT_EOBJECT,
+ "Must be an EObject derived class");
+ }
+
+ @Test
+ public void testValidModuleExtends() {
+ CharSequence _notValidModuleExtends = this.inputsWithErrors.notValidModuleExtends();
+ final Model model = this.parseModel(_notValidModuleExtends);
+ EClass _extendsClause = ModelPackage.eINSTANCE.getExtendsClause();
+ this._validationTestHelper.assertError(model, _extendsClause,
+ EmfParsleyDslJavaValidator.NOT_EMFCOMPONENTS_MODULE,
+ "Must be an EmfComponentsGuiceModule derived class");
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfParsleyDslScopingTests.java b/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfParsleyDslScopingTests.java
new file mode 100644
index 000000000..76927fb5c
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/EmfParsleyDslScopingTests.java
@@ -0,0 +1,89 @@
+package org.eclipse.emf.parsley.dsl.tests;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import java.util.List;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.parsley.dsl.EmfParsleyDslInjectorProvider;
+import org.eclipse.emf.parsley.dsl.model.Model;
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+import org.eclipse.emf.parsley.dsl.model.Module;
+import org.eclipse.emf.parsley.dsl.model.PropertyDescriptionProvider;
+import org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification;
+import org.eclipse.emf.parsley.dsl.scoping.EmfParsleyDslXbaseBatchScopeProvider;
+import org.eclipse.emf.parsley.dsl.tests.EmfComponentsDslAbstractTests;
+import org.eclipse.xtext.junit4.InjectWith;
+import org.eclipse.xtext.junit4.XtextRunner;
+import org.eclipse.xtext.naming.QualifiedName;
+import org.eclipse.xtext.resource.IEObjectDescription;
+import org.eclipse.xtext.scoping.IScope;
+import org.eclipse.xtext.xbase.lib.Conversions;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(XtextRunner.class)
+@InjectWith(EmfParsleyDslInjectorProvider.class)
+@SuppressWarnings("all")
+public class EmfParsleyDslScopingTests extends EmfComponentsDslAbstractTests {
+ @Inject
+ @Extension
+ private EmfParsleyDslXbaseBatchScopeProvider _emfParsleyDslXbaseBatchScopeProvider;
+
+ @Test
+ public void testFeaturesForLabelSpecifications() {
+ CharSequence _propertyDescriptionSpecifications = this.inputs.propertyDescriptionSpecifications();
+ Model _parseModel = this.parseModel(_propertyDescriptionSpecifications);
+ Module _module = _parseModel.getModule();
+ PropertyDescriptionProvider _propertyDescriptionProvider = _module.getPropertyDescriptionProvider();
+ EList<PropertyDescriptionSpecification> _labelSpecifications = _propertyDescriptionProvider.getLabelSpecifications();
+ PropertyDescriptionSpecification _head = IterableExtensions.<PropertyDescriptionSpecification>head(_labelSpecifications);
+ EReference _propertyDescriptionSpecification_Feature = ModelPackage.eINSTANCE.getPropertyDescriptionSpecification_Feature();
+ this.assertScope(_head, _propertyDescriptionSpecification_Feature,
+ "name, books, borrowers, writers, employees, stock, branches, parentBranch, people, address, class");
+ }
+
+ private void assertScope(final EObject o, final EReference ref, final String expected) {
+ String[] _split = expected.split(", ");
+ final List<String> listExpected = IterableExtensions.<String>toList(((Iterable<String>)Conversions.doWrapArray(_split)));
+ IScope _scope = this._emfParsleyDslXbaseBatchScopeProvider.getScope(o, ref);
+ Iterable<IEObjectDescription> _allElements = _scope.getAllElements();
+ final Function1<IEObjectDescription,QualifiedName> _function = new Function1<IEObjectDescription,QualifiedName>() {
+ public QualifiedName apply(final IEObjectDescription it) {
+ QualifiedName _name = it.getName();
+ return _name;
+ }
+ };
+ final Iterable<QualifiedName> scope = IterableExtensions.<IEObjectDescription, QualifiedName>map(_allElements, _function);
+ for (final String exp : listExpected) {
+ String _plus = ("not found: " + exp);
+ final Function1<QualifiedName,Boolean> _function_1 = new Function1<QualifiedName,Boolean>() {
+ public Boolean apply(final QualifiedName it) {
+ String _string = it.toString();
+ boolean _equals = Objects.equal(exp, _string);
+ return Boolean.valueOf(_equals);
+ }
+ };
+ boolean _exists = IterableExtensions.<QualifiedName>exists(scope, _function_1);
+ Assert.assertTrue(_plus, _exists);
+ }
+ for (final QualifiedName sc : scope) {
+ String _string = sc.toString();
+ String _plus_1 = ("not expected: " + _string);
+ final Function1<String,Boolean> _function_2 = new Function1<String,Boolean>() {
+ public Boolean apply(final String it) {
+ String _string = sc.toString();
+ boolean _equals = Objects.equal(_string, it);
+ return Boolean.valueOf(_equals);
+ }
+ };
+ boolean _exists_1 = IterableExtensions.<String>exists(listExpected, _function_2);
+ Assert.assertTrue(_plus_1, _exists_1);
+ }
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/inputs/TestInputs.java b/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/inputs/TestInputs.java
new file mode 100644
index 000000000..29af5f6b6
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/inputs/TestInputs.java
@@ -0,0 +1,536 @@
+package org.eclipse.emf.parsley.dsl.tests.inputs;
+
+import org.eclipse.xtend2.lib.StringConcatenation;
+
+@SuppressWarnings("all")
+public class TestInputs {
+ public CharSequence emptyModule() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.empty {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence moduleWithExtends() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.empty extends org.eclipse.emf.parsley.dsl.tests.additional.MyTestGuiceModule {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence emptyLabelProvider() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.empty {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("labelProvider {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence emptyPropertyDescriptionProvider() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.empty {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("propertyDescriptionProvider {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence emptyLabelSpecifications() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.empty {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("labelProvider {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("text {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("image {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence labelSpecifications() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.empty {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("labelProvider {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("text {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Library -> \'foo\' // constant");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Writer writer -> writer.getName() // explicit param");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Book -> title // implit \'it\' param");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Lendable -> \'copies: \' + copies");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Borrower -> { // complex block");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("val buffer = \'borrowed: \' + borrowed.map [");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("b | b.copies");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("]");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("buffer.toUpperCase");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("BookOnTape -> getTitle");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("image {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Library -> \'library.jpeg\' // constant");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Writer writer -> ");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (writer.name.nullOrEmpty) ");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("\"noname.gif\"");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("else");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("new org.eclipse.swt.graphics.ImageData(\"writer.jpeg\")");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence propertyDescriptionSpecifications() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.empty {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("propertyDescriptionProvider {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("text {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Library:name -> \'Name\' // constant");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Library:books -> \'Books\' // constant");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Writer:lastName -> name.toFirstUpper // the implicit param is an EStructuralFeature");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence featuresSpecifications() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.empty {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("featuresProvider {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("features {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Library -> name");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Writer -> firstName, lastName, books");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence formControlSpecifications() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.empty {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("formControlFactory {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("control {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Library : name -> { }");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Writer : books -> ");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("toolkit.createLabel(parent, ");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("books.map[title].join(\", \"))");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Writer : name -> { toolkit.createLabel(parent, \"\") }");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("target { observeText }");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Writer : firstName -> ");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("toolkit.createLabel(parent, \"\")");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("target observeText(SWT::Modify)");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence proposalsSpecifications() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.empty {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("proposals {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("Library : name -> { newArrayList(\'foo\', \'bar\') }");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("Writer : books -> ");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("{ books } // it.books");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("Book : author -> {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("newArrayList(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("EXTLibraryFactory::eINSTANCE.createWriter => [");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("name = \"Foo\"");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("],");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("EXTLibraryFactory::eINSTANCE.createWriter => [");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("name = \"Bar\"");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("]");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append(")");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("Borrower : borrowed -> {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("val p = defaultProposals(feature) => [");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("add(EXTLibraryFactory::eINSTANCE.createBook => [");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("title = \"Fake Book\"");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("])");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("]");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return p");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence viewerContentProviderSpecifications() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.empty {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("viewerContentProvider {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("children {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Library -> books + writers");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Writer writer -> writer.books");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Book -> author // implit \'it\' param");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence emptyViewsSpecifications() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.empty {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("parts {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence nonEmptyViewsSpecifications() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.*");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.views.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.test {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("parts {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("viewpart my.view.part {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("viewname \"My View\"");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("viewclass AbstractSaveableTreeView");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence multipleViewsSpecifications() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.*");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.views.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.test {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("parts {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("viewpart my.view.tree.part {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("viewname \"My Tree View\"");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("viewclass AbstractSaveableTreeView");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("viewpart my.view.form.part {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("viewname \"My Tree Form View\"");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("viewclass AbstractSaveableTreeFormView");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("viewcategory my.view.category");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/inputs/TestInputsWithErrors.java b/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/inputs/TestInputsWithErrors.java
new file mode 100644
index 000000000..a00a53787
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/xtend-gen/org/eclipse/emf/parsley/dsl/tests/inputs/TestInputsWithErrors.java
@@ -0,0 +1,168 @@
+package org.eclipse.emf.parsley.dsl.tests.inputs;
+
+import org.eclipse.xtend2.lib.StringConcatenation;
+
+@SuppressWarnings("all")
+public class TestInputsWithErrors {
+ public CharSequence duplicateLabelSpecifications() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.empty {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("labelProvider {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("text {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("image {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("text {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence wrongPropertyDescriptionSpecifications() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.empty {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("propertyDescriptionProvider {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("text {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Item:publicationDate -> \'Publication Date\'");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Library:newArrayList -> \'Name\' // static method, wrong");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Library:getBooks -> \'Books\' // don\'t use get methods");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Writer:lastName -> name.toFirstUpper // the implicit param is an EStructuralFeature");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence viewSpecificationIsNotIViewPart() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.empty {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("parts {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("viewpart my.view.part {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("viewname \"My View\"");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("viewclass Library // not an IViewPart!");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence notAnEObjectInEmfFeatureAccess() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.*");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.views.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.empty {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("propertyDescriptionProvider {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("text {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("List:publicationDate -> \'Publication Date\'");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("AbstractSaveableTreeView:lastName -> null");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence notValidModuleExtends() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.examples.library.*");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.views.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("module my.empty extends Library {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/.classpath b/dsl/org.eclipse.emf.parsley.dsl.ui/.classpath
new file mode 100644
index 000000000..406ca4abd
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/.project b/dsl/org.eclipse.emf.parsley.dsl.ui/.project
new file mode 100644
index 000000000..ac0ac9e71
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/.project
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.dsl.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtend.shared.ui.xtendBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.xtend.shared.ui.xtendXPandNature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.core.resources.prefs b/dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 000000000..99f26c020
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.jdt.core.prefs b/dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..c5dd0a0a7
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,85 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.jdt.launching.prefs b/dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.pde.prefs b/dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.pde.prefs
new file mode 100644
index 000000000..e32163db8
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,32 @@
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.encodings=2
+compilers.p.build.java.compiler=2
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=2
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=2
+compilers.p.missing-version-export-package=2
+compilers.p.missing-version-import-package=2
+compilers.p.missing-version-require-bundle=2
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.xtend.shared.ui.prefs b/dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.xtend.shared.ui.prefs
new file mode 100644
index 000000000..f42d94246
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/.settings/org.eclipse.xtend.shared.ui.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+metamodelContributor=org.eclipse.xtend.shared.ui.core.metamodel.jdt.javabean.JavaBeanMetamodelContributor
+project.specific.metamodel=true
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/META-INF/MANIFEST.MF b/dsl/org.eclipse.emf.parsley.dsl.ui/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..68b31e337
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,35 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.emf.parsley.dsl.ui
+Bundle-Vendor: My Company
+Bundle-Version: 0.1.0.qualifier
+Bundle-SymbolicName: org.eclipse.emf.parsley.dsl.ui;singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.emf.parsley.dsl;visibility:=reexport,
+ org.eclipse.xtext.ui;bundle-version="[2.4.2,2.5.0)",
+ org.eclipse.ui.editors;bundle-version="3.5.0",
+ org.eclipse.ui.ide;bundle-version="3.5.0",
+ org.eclipse.xtext.ui.shared;bundle-version="[2.4.2,2.5.0)",
+ org.eclipse.xtext.xbase.ui;bundle-version="[2.4.2,2.5.0)",
+ org.eclipse.ui;bundle-version="3.5.0",
+ org.eclipse.xtext.builder;bundle-version="[2.4.2,2.5.0)",
+ org.antlr.runtime,
+ org.eclipse.xtext.common.types.ui;bundle-version="[2.4.2,2.5.0)",
+ org.eclipse.xtext.ui.codetemplates.ui;bundle-version="[2.4.2,2.5.0)",
+ org.eclipse.compare;bundle-version="3.5.0",
+ org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.core.resources;bundle-version="3.5.0",
+ org.eclipse.xtend;bundle-version="[1.4.0,1.5.0)",
+ org.eclipse.xpand;bundle-version="[1.4.0,1.5.0)",
+ com.google.guava,
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.4.2,2.5.0)",
+ org.eclipse.emf.parsley.views;bundle-version="0.1.0",
+ org.eclipse.emf.parsley.generator.common;bundle-version="0.1.0",
+ org.eclipse.emf.parsley.wizards;bundle-version="0.1.0"
+Import-Package: org.apache.log4j
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.parsley.dsl.ui.contentassist,
+ org.eclipse.emf.parsley.dsl.ui.contentassist.antlr,
+ org.eclipse.emf.parsley.dsl.ui.internal,
+ org.eclipse.emf.parsley.dsl.ui.quickfix
+Bundle-Activator: org.eclipse.emf.parsley.dsl.ui.internal.EmfParsleyDslActivator
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/build.properties b/dsl/org.eclipse.emf.parsley.dsl.ui/build.properties
new file mode 100644
index 000000000..de2d2a360
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/build.properties
@@ -0,0 +1,9 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/,\
+ templates/
+
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/icons/sample.gif b/dsl/org.eclipse.emf.parsley.dsl.ui/icons/sample.gif
new file mode 100644
index 000000000..34fb3c9d8
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/icons/sample.gif
Binary files differ
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/plugin.xml b/dsl/org.eclipse.emf.parsley.dsl.ui/plugin.xml
new file mode 100644
index 000000000..a887e9d65
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/plugin.xml
@@ -0,0 +1,558 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+ contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+ default="true"
+ extensions="parsley"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ matchingStrategy="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.editor.JavaEditorInputMatcher"
+ name="EmfParsleyDsl Editor">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+ commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+ commandId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.validate">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <!-- copy qualified name -->
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+ commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+ <activeWhen>
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened" />
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+ commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+ <activeWhen>
+ <and>
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.XtextEditor.opened" />
+ <iterate>
+ <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+ </iterate>
+ </and>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.core.expressions.definitions">
+ <definition id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ <and>
+ <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ <definition id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.XtextEditor.opened">
+ <and>
+ <reference definitionId="isXtextEditorActive"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ name="EmfParsleyDsl">
+ <keywordReference id="org.eclipse.emf.parsley.dsl.ui.keyword_EmfParsleyDsl"/>
+ </page>
+ <page
+ category="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.coloring"
+ name="Syntax Coloring">
+ <keywordReference id="org.eclipse.emf.parsley.dsl.ui.keyword_EmfParsleyDsl"/>
+ </page>
+ <page
+ category="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.templates"
+ name="Templates">
+ <keywordReference id="org.eclipse.emf.parsley.dsl.ui.keyword_EmfParsleyDsl"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ name="EmfParsleyDsl">
+ <keywordReference id="org.eclipse.emf.parsley.dsl.ui.keyword_EmfParsleyDsl"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.keywords">
+ <keyword
+ id="org.eclipse.emf.parsley.dsl.ui.keyword_EmfParsleyDsl"
+ label="EmfParsleyDsl"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Trigger expensive validation"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.validate"
+ name="Validate">
+ </command>
+ <!-- copy qualified name -->
+ <command
+ id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ categoryId="org.eclipse.ui.category.edit"
+ description="Copy the qualified name for the selected element"
+ name="Copy Qualified Name">
+ </command>
+ <command
+ id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+ categoryId="org.eclipse.ui.category.edit"
+ description="Copy the qualified name for the selected element"
+ name="Copy Qualified Name">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command
+ commandId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.validate"
+ style="push"
+ tooltip="Trigger expensive validation">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <!-- copy qualified name -->
+ <menuContribution locationURI="popup:#TextEditorContext?after=copy">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution locationURI="menu:edit?after=copy">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <and>
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.XtextEditor.opened" />
+ <iterate>
+ <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+ </iterate>
+ </and>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
+ <command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+ commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+
+<!-- adding resource factories -->
+
+ <extension
+ point="org.eclipse.emf.ecore.extension_parser">
+ <parser
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+ type="parsley">
+ </parser>
+ </extension>
+ <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+ <resourceServiceProvider
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+ uriExtension="parsley">
+ </resourceServiceProvider>
+ </extension>
+
+
+ <!-- marker definitions for org.eclipse.emf.parsley.dsl.EmfParsleyDsl -->
+ <extension
+ id="emfparsleydsl.check.fast"
+ name="EmfParsleyDsl Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.fast"/>
+ <persistent value="true"/>
+ </extension>
+ <extension
+ id="emfparsleydsl.check.normal"
+ name="EmfParsleyDsl Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.normal"/>
+ <persistent value="true"/>
+ </extension>
+ <extension
+ id="emfparsleydsl.check.expensive"
+ name="EmfParsleyDsl Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.expensive"/>
+ <persistent value="true"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.xtext.builder.participant">
+ <participant
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant">
+ </participant>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.compiler.preferencePage"
+ name="Compiler">
+ <keywordReference id="org.eclipse.emf.parsley.dsl.ui.keyword_EmfParsleyDsl"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ category="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.compiler.propertyPage"
+ name="Compiler">
+ <keywordReference id="org.eclipse.emf.parsley.dsl.ui.keyword_EmfParsleyDsl"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+
+ <!-- Quick Outline -->
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+ commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Open the quick outline."
+ id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ name="Quick Outline">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ style="push"
+ tooltip="Open Quick Outline">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <!-- quickfix marker resolution generator for org.eclipse.emf.parsley.dsl.EmfParsleyDsl -->
+ <extension
+ point="org.eclipse.ui.ide.markerResolution">
+ <markerResolutionGenerator
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="org.eclipse.emf.parsley.dsl.ui.emfparsleydsl.check.fast">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ <markerResolutionGenerator
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="org.eclipse.emf.parsley.dsl.ui.emfparsleydsl.check.normal">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ <markerResolutionGenerator
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="org.eclipse.emf.parsley.dsl.ui.emfparsleydsl.check.expensive">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <wizard
+ category="org.eclipse.emf.parsley.wizards"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.emf.parsley.dsl.ui.wizard.EmfParsleyDslNewProjectWizard"
+ icon="icons/sample.gif"
+ id="org.eclipse.emf.parsley.dsl.ui.wizard.EmfParsleyDslNewProjectWizard"
+ name="Emf Parsley Dsl Based Project"
+ project="true">
+ </wizard>
+ </extension>
+ <!-- Rename Refactoring -->
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+ commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.refactoring"
+ name="Refactoring">
+ <keywordReference id="org.eclipse.emf.parsley.dsl.ui.keyword_EmfParsleyDsl"/>
+ </page>
+ </extension>
+
+<!-- Type Hierarchy -->
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchyHandler"
+ commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchy">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.QuickTypeHierarchyHandler"
+ commandId="org.eclipse.jdt.ui.edit.text.java.open.hierarchy">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.imports.OrganizeImportsHandler"
+ commandId="org.eclipse.xtext.xbase.ui.organizeImports">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command
+ commandId="org.eclipse.xtext.xbase.ui.organizeImports"
+ style="push"
+ tooltip="Organize Imports">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchy"
+ style="push"
+ tooltip="Open Type Hierarchy">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.jdt.ui.edit.text.java.open.hierarchy"
+ style="push"
+ tooltip="Quick Type Hierarchy">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <!-- Call Hierachy -->
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierachyHandler"
+ commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierarchy">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierarchy"
+ style="push"
+ tooltip="Open Call Hierarchy">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension
+ point="org.eclipse.core.runtime.adapters">
+ <factory class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.builder.smap.StratumBreakpointAdapterFactory"
+ adaptableType="org.eclipse.xtext.ui.editor.XtextEditor">
+ <adapter type="org.eclipse.debug.ui.actions.IToggleBreakpointsTarget"/>
+ </factory>
+ </extension>
+ <extension point="org.eclipse.ui.editorActions">
+ <editorContribution targetID="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.ide.rulerActions">
+ <action
+ label="Not Used"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
+ style="push"
+ actionID="RulerDoubleClick"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.doubleClickBreakpointAction"/>
+ </editorContribution>
+ </extension>
+ <extension point="org.eclipse.ui.popupMenus">
+ <viewerContribution
+ targetID="example.rulerContextMenuId"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.ide.RulerPopupActions">
+ <action
+ label="Toggle Breakpoint"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
+ menubarPath="additions"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.ide.rulerContextMenu.toggleBreakpointAction">
+ </action>
+ </viewerContribution>
+ </extension>
+
+ <!-- Introduce Local Variable Refactoring -->
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.refactoring.ExtractVariableHandler"
+ commandId="org.eclipse.xtext.xbase.ui.refactoring.ExtractLocalVariable">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command commandId="org.eclipse.xtext.xbase.ui.refactoring.ExtractLocalVariable"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+
+ <extension point="org.eclipse.compare.contentViewers">
+ <viewer id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.compare.contentViewers"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="parsley">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.compare.contentMergeViewers">
+ <viewer id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.compare.contentMergeViewers"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="parsley" label="EmfParsleyDsl Compare">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.ui.editors.documentProviders">
+ <provider id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.editors.documentProviders"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+ extensions="parsley">
+ </provider>
+ </extension>
+
+</plugin>
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/plugin.xml_gen b/dsl/org.eclipse.emf.parsley.dsl.ui/plugin.xml_gen
new file mode 100644
index 000000000..f1eb02286
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/plugin.xml_gen
@@ -0,0 +1,557 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+ contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+ default="true"
+ extensions="parsley"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ matchingStrategy="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.editor.JavaEditorInputMatcher"
+ name="EmfParsleyDsl Editor">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+ commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+ commandId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.validate">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <!-- copy qualified name -->
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+ commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+ <activeWhen>
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened" />
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+ commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+ <activeWhen>
+ <and>
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.XtextEditor.opened" />
+ <iterate>
+ <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+ </iterate>
+ </and>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.core.expressions.definitions">
+ <definition id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ <and>
+ <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ <definition id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.XtextEditor.opened">
+ <and>
+ <reference definitionId="isXtextEditorActive"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ name="EmfParsleyDsl">
+ <keywordReference id="org.eclipse.emf.parsley.dsl.ui.keyword_EmfParsleyDsl"/>
+ </page>
+ <page
+ category="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.coloring"
+ name="Syntax Coloring">
+ <keywordReference id="org.eclipse.emf.parsley.dsl.ui.keyword_EmfParsleyDsl"/>
+ </page>
+ <page
+ category="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.templates"
+ name="Templates">
+ <keywordReference id="org.eclipse.emf.parsley.dsl.ui.keyword_EmfParsleyDsl"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ name="EmfParsleyDsl">
+ <keywordReference id="org.eclipse.emf.parsley.dsl.ui.keyword_EmfParsleyDsl"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.keywords">
+ <keyword
+ id="org.eclipse.emf.parsley.dsl.ui.keyword_EmfParsleyDsl"
+ label="EmfParsleyDsl"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Trigger expensive validation"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.validate"
+ name="Validate">
+ </command>
+ <!-- copy qualified name -->
+ <command
+ id="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ categoryId="org.eclipse.ui.category.edit"
+ description="Copy the qualified name for the selected element"
+ name="Copy Qualified Name">
+ </command>
+ <command
+ id="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+ categoryId="org.eclipse.ui.category.edit"
+ description="Copy the qualified name for the selected element"
+ name="Copy Qualified Name">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command
+ commandId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.validate"
+ style="push"
+ tooltip="Trigger expensive validation">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <!-- copy qualified name -->
+ <menuContribution locationURI="popup:#TextEditorContext?after=copy">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution locationURI="menu:edit?after=copy">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened" />
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution locationURI="popup:org.eclipse.xtext.ui.outline?after=additions">
+ <command commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName"
+ style="push" tooltip="Copy Qualified Name">
+ <visibleWhen checkEnabled="false">
+ <and>
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.XtextEditor.opened" />
+ <iterate>
+ <adapt type="org.eclipse.xtext.ui.editor.outline.IOutlineNode" />
+ </iterate>
+ </and>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
+ <command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+ commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+
+<!-- adding resource factories -->
+
+ <extension
+ point="org.eclipse.emf.ecore.extension_parser">
+ <parser
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+ type="parsley">
+ </parser>
+ </extension>
+ <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+ <resourceServiceProvider
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+ uriExtension="parsley">
+ </resourceServiceProvider>
+ </extension>
+
+
+ <!-- marker definitions for org.eclipse.emf.parsley.dsl.EmfParsleyDsl -->
+ <extension
+ id="emfparsleydsl.check.fast"
+ name="EmfParsleyDsl Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.fast"/>
+ <persistent value="true"/>
+ </extension>
+ <extension
+ id="emfparsleydsl.check.normal"
+ name="EmfParsleyDsl Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.normal"/>
+ <persistent value="true"/>
+ </extension>
+ <extension
+ id="emfparsleydsl.check.expensive"
+ name="EmfParsleyDsl Problem"
+ point="org.eclipse.core.resources.markers">
+ <super type="org.eclipse.xtext.ui.check.expensive"/>
+ <persistent value="true"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.xtext.builder.participant">
+ <participant
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant">
+ </participant>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.compiler.preferencePage"
+ name="Compiler">
+ <keywordReference id="org.eclipse.emf.parsley.dsl.ui.keyword_EmfParsleyDsl"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ category="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.compiler.propertyPage"
+ name="Compiler">
+ <keywordReference id="org.eclipse.emf.parsley.dsl.ui.keyword_EmfParsleyDsl"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+
+ <!-- Quick Outline -->
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+ commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Open the quick outline."
+ id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ name="Quick Outline">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ style="push"
+ tooltip="Open Quick Outline">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <!-- quickfix marker resolution generator for org.eclipse.emf.parsley.dsl.EmfParsleyDsl -->
+ <extension
+ point="org.eclipse.ui.ide.markerResolution">
+ <markerResolutionGenerator
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="org.eclipse.emf.parsley.dsl.ui.emfparsleydsl.check.fast">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ <markerResolutionGenerator
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="org.eclipse.emf.parsley.dsl.ui.emfparsleydsl.check.normal">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ <markerResolutionGenerator
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+ markerType="org.eclipse.emf.parsley.dsl.ui.emfparsleydsl.check.expensive">
+ <attribute
+ name="FIXABLE_KEY"
+ value="true">
+ </attribute>
+ </markerResolutionGenerator>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <wizard
+ category="org.eclipse.xtext.projectwiz"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.emf.parsley.dsl.ui.wizard.EmfParsleyDslNewProjectWizard"
+ id="org.eclipse.emf.parsley.dsl.ui.wizard.EmfParsleyDslNewProjectWizard"
+ name="EmfParsleyDsl Project"
+ project="true">
+ </wizard>
+ </extension>
+ <!-- Rename Refactoring -->
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+ commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.refactoring"
+ name="Refactoring">
+ <keywordReference id="org.eclipse.emf.parsley.dsl.ui.keyword_EmfParsleyDsl"/>
+ </page>
+ </extension>
+
+<!-- Type Hierarchy -->
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchyHandler"
+ commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchy">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.QuickTypeHierarchyHandler"
+ commandId="org.eclipse.jdt.ui.edit.text.java.open.hierarchy">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.imports.OrganizeImportsHandler"
+ commandId="org.eclipse.xtext.xbase.ui.organizeImports">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command
+ commandId="org.eclipse.xtext.xbase.ui.organizeImports"
+ style="push"
+ tooltip="Organize Imports">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchy"
+ style="push"
+ tooltip="Open Type Hierarchy">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.jdt.ui.edit.text.java.open.hierarchy"
+ style="push"
+ tooltip="Quick Type Hierarchy">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <!-- Call Hierachy -->
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierachyHandler"
+ commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierarchy">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierarchy"
+ style="push"
+ tooltip="Open Call Hierarchy">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension
+ point="org.eclipse.core.runtime.adapters">
+ <factory class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.builder.smap.StratumBreakpointAdapterFactory"
+ adaptableType="org.eclipse.xtext.ui.editor.XtextEditor">
+ <adapter type="org.eclipse.debug.ui.actions.IToggleBreakpointsTarget"/>
+ </factory>
+ </extension>
+ <extension point="org.eclipse.ui.editorActions">
+ <editorContribution targetID="org.eclipse.emf.parsley.dsl.EmfParsleyDsl"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.ide.rulerActions">
+ <action
+ label="Not Used"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
+ style="push"
+ actionID="RulerDoubleClick"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.doubleClickBreakpointAction"/>
+ </editorContribution>
+ </extension>
+ <extension point="org.eclipse.ui.popupMenus">
+ <viewerContribution
+ targetID="example.rulerContextMenuId"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.ide.RulerPopupActions">
+ <action
+ label="Toggle Breakpoint"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
+ menubarPath="additions"
+ id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.ide.rulerContextMenu.toggleBreakpointAction">
+ </action>
+ </viewerContribution>
+ </extension>
+
+ <!-- Introduce Local Variable Refactoring -->
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.refactoring.ExtractVariableHandler"
+ commandId="org.eclipse.xtext.xbase.ui.refactoring.ExtractLocalVariable">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command commandId="org.eclipse.xtext.xbase.ui.refactoring.ExtractLocalVariable"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+
+ <extension point="org.eclipse.compare.contentViewers">
+ <viewer id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.compare.contentViewers"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="parsley">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.compare.contentMergeViewers">
+ <viewer id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.compare.contentMergeViewers"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="parsley" label="EmfParsleyDsl Compare">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.ui.editors.documentProviders">
+ <provider id="org.eclipse.emf.parsley.dsl.EmfParsleyDsl.editors.documentProviders"
+ class="org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+ extensions="parsley">
+ </provider>
+ </extension>
+
+</plugin>
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/AbstractEmfParsleyDslUiModule.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/AbstractEmfParsleyDslUiModule.java
new file mode 100644
index 000000000..8f82c7351
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/AbstractEmfParsleyDslUiModule.java
@@ -0,0 +1,360 @@
+
+/*
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.dsl.ui;
+
+import org.eclipse.xtext.ui.DefaultUiModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Manual modifications go to {org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslUiModule}
+ */
+@SuppressWarnings("all")
+public abstract class AbstractEmfParsleyDslUiModule extends DefaultUiModule {
+
+ public AbstractEmfParsleyDslUiModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+
+ // contributed by org.eclipse.xtext.ui.generator.ImplicitUiFragment
+ public com.google.inject.Provider<org.eclipse.xtext.resource.containers.IAllContainersState> provideIAllContainersState() {
+ return org.eclipse.xtext.ui.shared.Access.getJavaProjectsState();
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.ImplicitUiFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.XtextEditor> bindXtextEditor() {
+ return org.eclipse.xtext.xbase.ui.editor.XbaseEditor.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.ImplicitUiFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.model.XtextDocumentProvider> bindXtextDocumentProvider() {
+ return org.eclipse.xtext.xbase.ui.editor.XbaseDocumentProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IProposalConflictHelper> bindIProposalConflictHelper() {
+ return org.eclipse.xtext.ui.editor.contentassist.antlr.AntlrProposalConflictHelper.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public void configureHighlightingLexer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.emf.parsley.dsl.parser.antlr.internal.InternalEmfParsleyDslLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public void configureHighlightingTokenDefProvider(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.parser.antlr.ITokenDefProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(org.eclipse.xtext.builder.clustering.CurrentDescriptions.ResourceSetAware.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.IXtextEditorCallback> bindIXtextEditorCallback() {
+ return org.eclipse.xtext.builder.nature.NatureAddingEditorCallback.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public void configureIResourceDescriptionsPersisted(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource.PERSISTED_DESCRIPTIONS)).to(org.eclipse.xtext.builder.builderState.IBuilderState.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource> bindDocumentBasedDirtyResource() {
+ return org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+ public Class<? extends org.eclipse.xtext.builder.IXtextBuilderParticipant> bindIXtextBuilderParticipant() {
+ return org.eclipse.xtext.builder.BuilderParticipant.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+ public org.eclipse.core.resources.IWorkspaceRoot bindIWorkspaceRootToInstance() {
+ return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot();
+ }
+
+ // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+ public void configureBuilderPreferenceStoreInitializer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("builderPreferenceInitializer")).to(org.eclipse.xtext.builder.preferences.BuilderPreferenceAccess.Initializer.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment
+ public Class<? extends org.eclipse.jface.viewers.ILabelProvider> bindILabelProvider() {
+ return org.eclipse.emf.parsley.dsl.ui.labeling.EmfParsleyDslLabelProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment
+ public void configureResourceUIServiceLabelProvider(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.jface.viewers.ILabelProvider.class).annotatedWith(org.eclipse.xtext.ui.resource.ResourceServiceDescriptionLabelProvider.class).to(org.eclipse.emf.parsley.dsl.ui.labeling.EmfParsleyDslDescriptionLabelProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider> bindIOutlineTreeProvider() {
+ return org.eclipse.emf.parsley.dsl.ui.outline.EmfParsleyDslOutlineTreeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.outline.impl.IOutlineTreeStructureProvider> bindIOutlineTreeStructureProvider() {
+ return org.eclipse.emf.parsley.dsl.ui.outline.EmfParsleyDslOutlineTreeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.quickfix.QuickfixProviderFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider> bindIssueResolutionProvider() {
+ return org.eclipse.emf.parsley.dsl.ui.quickfix.EmfParsleyDslQuickfixProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.contentAssist.JavaBasedContentAssistFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider> bindIContentProposalProvider() {
+ return org.eclipse.emf.parsley.dsl.ui.contentassist.EmfParsleyDslProposalProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext.Factory> bindContentAssistContext$Factory() {
+ return org.eclipse.xtext.ui.editor.contentassist.antlr.ParserBasedContentAssistContextFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.antlr.IContentAssistParser> bindIContentAssistParser() {
+ return org.eclipse.emf.parsley.dsl.ui.contentassist.antlr.EmfParsleyDslParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public void configureContentAssistLexerProvider(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.emf.parsley.dsl.ui.contentassist.antlr.internal.InternalEmfParsleyDslLexer.class).toProvider(org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.emf.parsley.dsl.ui.contentassist.antlr.internal.InternalEmfParsleyDslLexer.class));
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public void configureContentAssistLexer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.CONTENT_ASSIST)).to(org.eclipse.emf.parsley.dsl.ui.contentassist.antlr.internal.InternalEmfParsleyDslLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.projectWizard.SimpleProjectWizardFragment
+ public Class<? extends org.eclipse.xtext.ui.wizard.IProjectCreator> bindIProjectCreator() {
+ return org.eclipse.emf.parsley.dsl.ui.wizard.EmfParsleyDslProjectCreator.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public void configureIPreferenceStoreInitializer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("RefactoringPreferences")).to(org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences.Initializer.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.ui.IRenameSupport.Factory> bindIRenameSupport$Factory() {
+ return org.eclipse.xtext.common.types.ui.refactoring.JdtRenameSupport.Factory.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameStrategy.Provider> bindIRenameStrategy$Provider() {
+ return org.eclipse.xtext.common.types.ui.refactoring.participant.JvmMemberRenameStrategy.Provider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public void configureJvmMemberRenameStrategy$Provider$Delegate(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.ui.refactoring.IRenameStrategy.Provider.class).annotatedWith(org.eclipse.xtext.common.types.ui.refactoring.participant.JvmMemberRenameStrategy.Provider.Delegate.class).to(org.eclipse.xtext.ui.refactoring.impl.DefaultRenameStrategyProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public java.lang.ClassLoader bindClassLoaderToInstance() {
+ return getClass().getClassLoader();
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.access.IJvmTypeProvider.Factory> bindIJvmTypeProvider$Factory() {
+ return org.eclipse.xtext.common.types.access.jdt.JdtTypeProviderFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.xtext.AbstractTypeScopeProvider> bindAbstractTypeScopeProvider() {
+ return org.eclipse.xtext.common.types.xtext.ui.JdtBasedSimpleTypeScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.access.jdt.IJavaProjectProvider> bindIJavaProjectProvider() {
+ return org.eclipse.xtext.common.types.xtext.ui.XtextResourceSetBasedProjectProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher> bindPrefixMatcher() {
+ return org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.IValidationJobScheduler> bindIValidationJobScheduler() {
+ return org.eclipse.xtext.common.types.xtext.ui.JdtValidationJobScheduler.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.impl.RefactoringResourceSetProvider> bindRefactoringResourceSetProvider() {
+ return org.eclipse.xtext.common.types.ui.refactoring.JvmRefactoringResourceSetProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.syntaxcoloring.AbstractAntlrTokenToAttributeIdMapper> bindAbstractAntlrTokenToAttributeIdMapper() {
+ return org.eclipse.xtext.xbase.ui.syntaxcoloring.XbaseTokenToAttributeIdMapper.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.AbstractJavaBasedContentProposalProvider.ReferenceProposalCreator> bindAbstractJavaBasedContentProposalProvider$ReferenceProposalCreator() {
+ return org.eclipse.xtext.xbase.ui.contentassist.XbaseReferenceProposalCreator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.jface.text.contentassist.IContentAssistProcessor> bindIContentAssistProcessor() {
+ return org.eclipse.xtext.ui.editor.contentassist.RepeatedContentAssistProcessor.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.syntaxcoloring.ISemanticHighlightingCalculator> bindISemanticHighlightingCalculator() {
+ return org.eclipse.xtext.xbase.ui.highlighting.XbaseHighlightingCalculator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightingConfiguration> bindIHighlightingConfiguration() {
+ return org.eclipse.xtext.xbase.ui.highlighting.XbaseHighlightingConfiguration.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider> bindIEObjectHoverProvider() {
+ return org.eclipse.xtext.xbase.ui.hover.XbaseHoverProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.hover.IEObjectHover> bindIEObjectHover() {
+ return org.eclipse.xtext.xbase.ui.hover.XbaseDispatchingEObjectTextHover.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.hover.html.IEObjectHoverDocumentationProvider> bindIEObjectHoverDocumentationProvider() {
+ return org.eclipse.xtext.xbase.ui.hover.XbaseHoverDocumentationProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider.CrossRefResolutionConverter> bindDefaultQuickfixProvider$CrossRefResolutionConverter() {
+ return org.eclipse.xtext.xbase.ui.quickfix.XbaseCrossRefResolutionConverter.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.eclipse.xtext.xbase.ui.validation.XbaseUIValidator> bindXbaseUIValidator() {
+ return org.eclipse.xtext.xbase.ui.validation.XbaseUIValidator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkHelper> bindIHyperlinkHelper() {
+ return org.eclipse.xtext.xbase.ui.navigation.TypeLiteralAwareHyperlinkHelper.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler> bindFindReferencesHandler() {
+ return org.eclipse.xtext.xbase.ui.jvmmodel.findrefs.JvmModelFindReferenceHandler.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.findrefs.ReferenceQueryExecutor> bindReferenceQueryExecutor() {
+ return org.eclipse.xtext.xbase.ui.jvmmodel.findrefs.JvmModelReferenceQueryExecutor.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator> bindIDependentElementsCalculator() {
+ return org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.JvmModelDependentElementsCalculator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameRefactoringProvider> bindIRenameRefactoringProvider() {
+ return org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.jdt.CombinedJvmJdtRenameRefactoringProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.IReferenceUpdater> bindIReferenceUpdater() {
+ return org.eclipse.xtext.xbase.ui.refactoring.XbaseReferenceUpdater.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.ui.IRenameContextFactory> bindIRenameContextFactory() {
+ return org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.jdt.CombinedJvmJdtRenameContextFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.ui.refactoring.participant.JdtRenameParticipant.ContextFactory> bindJdtRenameParticipant$ContextFactory() {
+ return org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.JvmModelJdtRenameParticipantContext.ContextFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameStrategy> bindIRenameStrategy() {
+ return org.eclipse.xtext.xbase.ui.jvmmodel.refactoring.DefaultJvmModelRenameStrategy.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.outline.impl.OutlineNodeElementOpener> bindOutlineNodeElementOpener() {
+ return org.eclipse.xtext.xbase.ui.jvmmodel.outline.JvmOutlineNodeElementOpener.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.GlobalURIEditorOpener> bindGlobalURIEditorOpener() {
+ return org.eclipse.xtext.common.types.ui.navigation.GlobalDerivedMemberAwareURIEditorOpener.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.occurrences.IOccurrenceComputer> bindIOccurrenceComputer() {
+ return org.eclipse.xtext.xbase.ui.jvmmodel.occurrence.JvmModelOccurrenceComputer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.ui.query.IJavaSearchParticipation> bindIJavaSearchParticipation() {
+ return org.eclipse.xtext.common.types.ui.query.IJavaSearchParticipation.No.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public void configureLanguageSpecificURIEditorOpener(com.google.inject.Binder binder) {
+ if (org.eclipse.ui.PlatformUI.isWorkbenchRunning()) {
+ binder.bind(org.eclipse.xtext.ui.editor.IURIEditorOpener.class).annotatedWith(org.eclipse.xtext.ui.LanguageSpecific.class).to(org.eclipse.xtext.xbase.ui.jvmmodel.navigation.DerivedMemberAwareEditorOpener.class);
+ binder.bind(org.eclipse.xtext.common.types.ui.navigation.IDerivedMemberAwareEditorOpener.class).to(org.eclipse.xtext.xbase.ui.jvmmodel.navigation.DerivedMemberAwareEditorOpener.class);
+ };
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.xbase.imports.IUnresolvedTypeResolver> bindIUnresolvedTypeResolver() {
+ return org.eclipse.xtext.xbase.ui.imports.InteractiveUnresolvedTypeResolver.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.xtext.ui.ITypesProposalProvider> bindITypesProposalProvider() {
+ return org.eclipse.xtext.xbase.ui.contentassist.ImportingTypesProposalProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.preferences.TemplatesLanguageConfiguration> provideTemplatesLanguageConfiguration() {
+ return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getTemplatesLanguageConfigurationProvider();
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistry> provideLanguageRegistry() {
+ return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getLanguageRegistry();
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar> bindLanguageRegistrar() {
+ return org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage> bindXtextTemplatePreferencePage() {
+ return org.eclipse.xtext.ui.codetemplates.ui.preferences.AdvancedTemplatesPreferencePage.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser> bindIPartialContentAssistParser() {
+ return org.eclipse.emf.parsley.dsl.ui.contentassist.antlr.PartialEmfParsleyDslContentAssistParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.compare.CompareFragment
+ public Class<? extends org.eclipse.compare.IViewerCreator> bindIViewerCreator() {
+ return org.eclipse.xtext.ui.compare.DefaultViewerCreator.class;
+ }
+
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/EmfParsleyDslExecutableExtensionFactory.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/EmfParsleyDslExecutableExtensionFactory.java
new file mode 100644
index 000000000..468b6d804
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/EmfParsleyDslExecutableExtensionFactory.java
@@ -0,0 +1,29 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.dsl.ui;
+
+import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
+import org.osgi.framework.Bundle;
+
+import com.google.inject.Injector;
+
+import org.eclipse.emf.parsley.dsl.ui.internal.EmfParsleyDslActivator;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class EmfParsleyDslExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return EmfParsleyDslActivator.getInstance().getBundle();
+ }
+
+ @Override
+ protected Injector getInjector() {
+ return EmfParsleyDslActivator.getInstance().getInjector(EmfParsleyDslActivator.ORG_ECLIPSE_EMF_PARSLEY_DSL_EMFPARSLEYDSL);
+ }
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/AbstractEmfParsleyDslProposalProvider.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/AbstractEmfParsleyDslProposalProvider.java
new file mode 100644
index 000000000..b221da082
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/AbstractEmfParsleyDslProposalProvider.java
@@ -0,0 +1,188 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.dsl.ui.contentassist;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+
+/**
+ * Represents a generated, default implementation of superclass {@link org.eclipse.xtext.xbase.ui.contentassist.XbaseProposalProvider}.
+ * Methods are dynamically dispatched on the first parameter, i.e., you can override them
+ * with a more concrete subtype.
+ */
+@SuppressWarnings("all")
+public class AbstractEmfParsleyDslProposalProvider extends org.eclipse.xtext.xbase.ui.contentassist.XbaseProposalProvider {
+
+ public void completeModel_ImportSection(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeModel_Module(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeModule_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeModule_ExtendsClause(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeModule_LabelProvider(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeModule_PropertyDescriptionProvider(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeModule_FeaturesProvider(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeModule_FormControlFactory(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeModule_ProposalCreator(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeModule_ViewerContentProvider(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeModule_Parts(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeExtendsClause_SuperType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLabelProvider_LabelSpecifications(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLabelProvider_ImageSpecifications(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLabelSpecification_ParameterType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLabelSpecification_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeLabelSpecification_Expression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePropertyDescriptionProvider_LabelSpecifications(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePropertyDescriptionSpecification_ParameterType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePropertyDescriptionSpecification_Feature(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completePropertyDescriptionSpecification_Expression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeFeaturesProvider_FeatureSpecifications(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeFeatureSpecification_ParameterType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeFeatureSpecification_Features(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeFormControlFactory_ControlSpecifications(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeFormControlSpecification_ParameterType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeFormControlSpecification_Feature(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeFormControlSpecification_Expression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeFormControlSpecification_Target(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeProposalCreator_ProposalsSpecifications(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeProposalSpecification_ParameterType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeProposalSpecification_Feature(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeProposalSpecification_Expression(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewerContentProvider_ChildrenSpecifications(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewSpecification_Id(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewSpecification_ViewName(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewSpecification_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeViewSpecification_Category(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+
+ public void complete_Model(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Module(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ExtendsClause(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_LabelProvider(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_LabelSpecification(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_PropertyDescriptionProvider(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_PropertyDescriptionSpecification(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_FeaturesProvider(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_FeatureSpecification(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_FormControlFactory(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_FormControlSpecification(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ProposalCreator(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ProposalSpecification(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ViewerContentProvider(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_EmfFeatureAccess(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_WithExtendsClause(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_PartSpecification(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_ViewSpecification(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/EmfParsleyDslParser.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/EmfParsleyDslParser.java
new file mode 100644
index 000000000..9701ca490
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/EmfParsleyDslParser.java
@@ -0,0 +1,452 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.dsl.ui.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.HashMap;
+
+import org.antlr.runtime.RecognitionException;
+import org.eclipse.xtext.AbstractElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.AbstractContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+
+import com.google.inject.Inject;
+
+import org.eclipse.emf.parsley.dsl.services.EmfParsleyDslGrammarAccess;
+
+public class EmfParsleyDslParser extends AbstractContentAssistParser {
+
+ @Inject
+ private EmfParsleyDslGrammarAccess grammarAccess;
+
+ private Map<AbstractElement, String> nameMappings;
+
+ @Override
+ protected org.eclipse.emf.parsley.dsl.ui.contentassist.antlr.internal.InternalEmfParsleyDslParser createParser() {
+ org.eclipse.emf.parsley.dsl.ui.contentassist.antlr.internal.InternalEmfParsleyDslParser result = new org.eclipse.emf.parsley.dsl.ui.contentassist.antlr.internal.InternalEmfParsleyDslParser(null);
+ result.setGrammarAccess(grammarAccess);
+ return result;
+ }
+
+ @Override
+ protected String getRuleName(AbstractElement element) {
+ if (nameMappings == null) {
+ nameMappings = new HashMap<AbstractElement, String>() {
+ private static final long serialVersionUID = 1L;
+ {
+ put(grammarAccess.getEmfFeatureAccessAccess().getAlternatives(), "rule__EmfFeatureAccess__Alternatives");
+ put(grammarAccess.getXAssignmentAccess().getAlternatives(), "rule__XAssignment__Alternatives");
+ put(grammarAccess.getOpMultiAssignAccess().getAlternatives(), "rule__OpMultiAssign__Alternatives");
+ put(grammarAccess.getOpEqualityAccess().getAlternatives(), "rule__OpEquality__Alternatives");
+ put(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1(), "rule__XRelationalExpression__Alternatives_1");
+ put(grammarAccess.getOpCompareAccess().getAlternatives(), "rule__OpCompare__Alternatives");
+ put(grammarAccess.getOpOtherAccess().getAlternatives(), "rule__OpOther__Alternatives");
+ put(grammarAccess.getOpOtherAccess().getAlternatives_5_1(), "rule__OpOther__Alternatives_5_1");
+ put(grammarAccess.getOpOtherAccess().getAlternatives_6_1(), "rule__OpOther__Alternatives_6_1");
+ put(grammarAccess.getOpAddAccess().getAlternatives(), "rule__OpAdd__Alternatives");
+ put(grammarAccess.getOpMultiAccess().getAlternatives(), "rule__OpMulti__Alternatives");
+ put(grammarAccess.getXUnaryOperationAccess().getAlternatives(), "rule__XUnaryOperation__Alternatives");
+ put(grammarAccess.getOpUnaryAccess().getAlternatives(), "rule__OpUnary__Alternatives");
+ put(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1(), "rule__XMemberFeatureCall__Alternatives_1");
+ put(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1(), "rule__XMemberFeatureCall__Alternatives_1_0_0_0_1");
+ put(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1(), "rule__XMemberFeatureCall__Alternatives_1_1_0_0_1");
+ put(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1(), "rule__XMemberFeatureCall__Alternatives_1_1_3_1");
+ put(grammarAccess.getXPrimaryExpressionAccess().getAlternatives(), "rule__XPrimaryExpression__Alternatives");
+ put(grammarAccess.getXLiteralAccess().getAlternatives(), "rule__XLiteral__Alternatives");
+ put(grammarAccess.getXCollectionLiteralAccess().getAlternatives(), "rule__XCollectionLiteral__Alternatives");
+ put(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2(), "rule__XSwitchExpression__Alternatives_2");
+ put(grammarAccess.getXExpressionInsideBlockAccess().getAlternatives(), "rule__XExpressionInsideBlock__Alternatives");
+ put(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1(), "rule__XVariableDeclaration__Alternatives_1");
+ put(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2(), "rule__XVariableDeclaration__Alternatives_2");
+ put(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1(), "rule__XFeatureCall__Alternatives_3_1");
+ put(grammarAccess.getFeatureCallIDAccess().getAlternatives(), "rule__FeatureCallID__Alternatives");
+ put(grammarAccess.getIdOrSuperAccess().getAlternatives(), "rule__IdOrSuper__Alternatives");
+ put(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1(), "rule__XConstructorCall__Alternatives_4_1");
+ put(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1(), "rule__XBooleanLiteral__Alternatives_1");
+ put(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3(), "rule__XTryCatchFinallyExpression__Alternatives_3");
+ put(grammarAccess.getNumberAccess().getAlternatives(), "rule__Number__Alternatives");
+ put(grammarAccess.getNumberAccess().getAlternatives_1_0(), "rule__Number__Alternatives_1_0");
+ put(grammarAccess.getNumberAccess().getAlternatives_1_1_1(), "rule__Number__Alternatives_1_1_1");
+ put(grammarAccess.getJvmTypeReferenceAccess().getAlternatives(), "rule__JvmTypeReference__Alternatives");
+ put(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives(), "rule__JvmArgumentTypeReference__Alternatives");
+ put(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2(), "rule__JvmWildcardTypeReference__Alternatives_2");
+ put(grammarAccess.getJvmTypeParameterAccess().getAlternatives_1(), "rule__JvmTypeParameter__Alternatives_1");
+ put(grammarAccess.getXImportDeclarationAccess().getAlternatives_1(), "rule__XImportDeclaration__Alternatives_1");
+ put(grammarAccess.getModelAccess().getGroup(), "rule__Model__Group__0");
+ put(grammarAccess.getModuleAccess().getGroup(), "rule__Module__Group__0");
+ put(grammarAccess.getModuleAccess().getGroup_4_6(), "rule__Module__Group_4_6__0");
+ put(grammarAccess.getExtendsClauseAccess().getGroup(), "rule__ExtendsClause__Group__0");
+ put(grammarAccess.getLabelProviderAccess().getGroup(), "rule__LabelProvider__Group__0");
+ put(grammarAccess.getLabelProviderAccess().getGroup_3_0(), "rule__LabelProvider__Group_3_0__0");
+ put(grammarAccess.getLabelProviderAccess().getGroup_3_1(), "rule__LabelProvider__Group_3_1__0");
+ put(grammarAccess.getLabelSpecificationAccess().getGroup(), "rule__LabelSpecification__Group__0");
+ put(grammarAccess.getPropertyDescriptionProviderAccess().getGroup(), "rule__PropertyDescriptionProvider__Group__0");
+ put(grammarAccess.getPropertyDescriptionProviderAccess().getGroup_3(), "rule__PropertyDescriptionProvider__Group_3__0");
+ put(grammarAccess.getPropertyDescriptionSpecificationAccess().getGroup(), "rule__PropertyDescriptionSpecification__Group__0");
+ put(grammarAccess.getFeaturesProviderAccess().getGroup(), "rule__FeaturesProvider__Group__0");
+ put(grammarAccess.getFeaturesProviderAccess().getGroup_3(), "rule__FeaturesProvider__Group_3__0");
+ put(grammarAccess.getFeatureSpecificationAccess().getGroup(), "rule__FeatureSpecification__Group__0");
+ put(grammarAccess.getFeatureSpecificationAccess().getGroup_3(), "rule__FeatureSpecification__Group_3__0");
+ put(grammarAccess.getFormControlFactoryAccess().getGroup(), "rule__FormControlFactory__Group__0");
+ put(grammarAccess.getFormControlFactoryAccess().getGroup_3(), "rule__FormControlFactory__Group_3__0");
+ put(grammarAccess.getFormControlSpecificationAccess().getGroup(), "rule__FormControlSpecification__Group__0");
+ put(grammarAccess.getFormControlSpecificationAccess().getGroup_5(), "rule__FormControlSpecification__Group_5__0");
+ put(grammarAccess.getProposalCreatorAccess().getGroup(), "rule__ProposalCreator__Group__0");
+ put(grammarAccess.getProposalSpecificationAccess().getGroup(), "rule__ProposalSpecification__Group__0");
+ put(grammarAccess.getViewerContentProviderAccess().getGroup(), "rule__ViewerContentProvider__Group__0");
+ put(grammarAccess.getViewerContentProviderAccess().getGroup_3(), "rule__ViewerContentProvider__Group_3__0");
+ put(grammarAccess.getViewSpecificationAccess().getGroup(), "rule__ViewSpecification__Group__0");
+ put(grammarAccess.getViewSpecificationAccess().getGroup_8(), "rule__ViewSpecification__Group_8__0");
+ put(grammarAccess.getXAssignmentAccess().getGroup_0(), "rule__XAssignment__Group_0__0");
+ put(grammarAccess.getXAssignmentAccess().getGroup_1(), "rule__XAssignment__Group_1__0");
+ put(grammarAccess.getXAssignmentAccess().getGroup_1_1(), "rule__XAssignment__Group_1_1__0");
+ put(grammarAccess.getXAssignmentAccess().getGroup_1_1_0(), "rule__XAssignment__Group_1_1_0__0");
+ put(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0(), "rule__XAssignment__Group_1_1_0_0__0");
+ put(grammarAccess.getXOrExpressionAccess().getGroup(), "rule__XOrExpression__Group__0");
+ put(grammarAccess.getXOrExpressionAccess().getGroup_1(), "rule__XOrExpression__Group_1__0");
+ put(grammarAccess.getXOrExpressionAccess().getGroup_1_0(), "rule__XOrExpression__Group_1_0__0");
+ put(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0(), "rule__XOrExpression__Group_1_0_0__0");
+ put(grammarAccess.getXAndExpressionAccess().getGroup(), "rule__XAndExpression__Group__0");
+ put(grammarAccess.getXAndExpressionAccess().getGroup_1(), "rule__XAndExpression__Group_1__0");
+ put(grammarAccess.getXAndExpressionAccess().getGroup_1_0(), "rule__XAndExpression__Group_1_0__0");
+ put(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0(), "rule__XAndExpression__Group_1_0_0__0");
+ put(grammarAccess.getXEqualityExpressionAccess().getGroup(), "rule__XEqualityExpression__Group__0");
+ put(grammarAccess.getXEqualityExpressionAccess().getGroup_1(), "rule__XEqualityExpression__Group_1__0");
+ put(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0(), "rule__XEqualityExpression__Group_1_0__0");
+ put(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0(), "rule__XEqualityExpression__Group_1_0_0__0");
+ put(grammarAccess.getXRelationalExpressionAccess().getGroup(), "rule__XRelationalExpression__Group__0");
+ put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0(), "rule__XRelationalExpression__Group_1_0__0");
+ put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0(), "rule__XRelationalExpression__Group_1_0_0__0");
+ put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0(), "rule__XRelationalExpression__Group_1_0_0_0__0");
+ put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1(), "rule__XRelationalExpression__Group_1_1__0");
+ put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0(), "rule__XRelationalExpression__Group_1_1_0__0");
+ put(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0(), "rule__XRelationalExpression__Group_1_1_0_0__0");
+ put(grammarAccess.getXOtherOperatorExpressionAccess().getGroup(), "rule__XOtherOperatorExpression__Group__0");
+ put(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1(), "rule__XOtherOperatorExpression__Group_1__0");
+ put(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0(), "rule__XOtherOperatorExpression__Group_1_0__0");
+ put(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0(), "rule__XOtherOperatorExpression__Group_1_0_0__0");
+ put(grammarAccess.getOpOtherAccess().getGroup_2(), "rule__OpOther__Group_2__0");
+ put(grammarAccess.getOpOtherAccess().getGroup_5(), "rule__OpOther__Group_5__0");
+ put(grammarAccess.getOpOtherAccess().getGroup_5_1_0(), "rule__OpOther__Group_5_1_0__0");
+ put(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0(), "rule__OpOther__Group_5_1_0_0__0");
+ put(grammarAccess.getOpOtherAccess().getGroup_6(), "rule__OpOther__Group_6__0");
+ put(grammarAccess.getOpOtherAccess().getGroup_6_1_0(), "rule__OpOther__Group_6_1_0__0");
+ put(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0(), "rule__OpOther__Group_6_1_0_0__0");
+ put(grammarAccess.getXAdditiveExpressionAccess().getGroup(), "rule__XAdditiveExpression__Group__0");
+ put(grammarAccess.getXAdditiveExpressionAccess().getGroup_1(), "rule__XAdditiveExpression__Group_1__0");
+ put(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0(), "rule__XAdditiveExpression__Group_1_0__0");
+ put(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0(), "rule__XAdditiveExpression__Group_1_0_0__0");
+ put(grammarAccess.getXMultiplicativeExpressionAccess().getGroup(), "rule__XMultiplicativeExpression__Group__0");
+ put(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1(), "rule__XMultiplicativeExpression__Group_1__0");
+ put(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0(), "rule__XMultiplicativeExpression__Group_1_0__0");
+ put(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0(), "rule__XMultiplicativeExpression__Group_1_0_0__0");
+ put(grammarAccess.getXUnaryOperationAccess().getGroup_0(), "rule__XUnaryOperation__Group_0__0");
+ put(grammarAccess.getXCastedExpressionAccess().getGroup(), "rule__XCastedExpression__Group__0");
+ put(grammarAccess.getXCastedExpressionAccess().getGroup_1(), "rule__XCastedExpression__Group_1__0");
+ put(grammarAccess.getXCastedExpressionAccess().getGroup_1_0(), "rule__XCastedExpression__Group_1_0__0");
+ put(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0(), "rule__XCastedExpression__Group_1_0_0__0");
+ put(grammarAccess.getXMemberFeatureCallAccess().getGroup(), "rule__XMemberFeatureCall__Group__0");
+ put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0(), "rule__XMemberFeatureCall__Group_1_0__0");
+ put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0(), "rule__XMemberFeatureCall__Group_1_0_0__0");
+ put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0(), "rule__XMemberFeatureCall__Group_1_0_0_0__0");
+ put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1(), "rule__XMemberFeatureCall__Group_1_1__0");
+ put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0(), "rule__XMemberFeatureCall__Group_1_1_0__0");
+ put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0(), "rule__XMemberFeatureCall__Group_1_1_0_0__0");
+ put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1(), "rule__XMemberFeatureCall__Group_1_1_1__0");
+ put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2(), "rule__XMemberFeatureCall__Group_1_1_1_2__0");
+ put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3(), "rule__XMemberFeatureCall__Group_1_1_3__0");
+ put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1(), "rule__XMemberFeatureCall__Group_1_1_3_1_1__0");
+ put(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1(), "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0");
+ put(grammarAccess.getXSetLiteralAccess().getGroup(), "rule__XSetLiteral__Group__0");
+ put(grammarAccess.getXSetLiteralAccess().getGroup_3(), "rule__XSetLiteral__Group_3__0");
+ put(grammarAccess.getXSetLiteralAccess().getGroup_3_1(), "rule__XSetLiteral__Group_3_1__0");
+ put(grammarAccess.getXListLiteralAccess().getGroup(), "rule__XListLiteral__Group__0");
+ put(grammarAccess.getXListLiteralAccess().getGroup_3(), "rule__XListLiteral__Group_3__0");
+ put(grammarAccess.getXListLiteralAccess().getGroup_3_1(), "rule__XListLiteral__Group_3_1__0");
+ put(grammarAccess.getXClosureAccess().getGroup(), "rule__XClosure__Group__0");
+ put(grammarAccess.getXClosureAccess().getGroup_0(), "rule__XClosure__Group_0__0");
+ put(grammarAccess.getXClosureAccess().getGroup_0_0(), "rule__XClosure__Group_0_0__0");
+ put(grammarAccess.getXClosureAccess().getGroup_1(), "rule__XClosure__Group_1__0");
+ put(grammarAccess.getXClosureAccess().getGroup_1_0(), "rule__XClosure__Group_1_0__0");
+ put(grammarAccess.getXClosureAccess().getGroup_1_0_0(), "rule__XClosure__Group_1_0_0__0");
+ put(grammarAccess.getXClosureAccess().getGroup_1_0_0_1(), "rule__XClosure__Group_1_0_0_1__0");
+ put(grammarAccess.getXExpressionInClosureAccess().getGroup(), "rule__XExpressionInClosure__Group__0");
+ put(grammarAccess.getXExpressionInClosureAccess().getGroup_1(), "rule__XExpressionInClosure__Group_1__0");
+ put(grammarAccess.getXShortClosureAccess().getGroup(), "rule__XShortClosure__Group__0");
+ put(grammarAccess.getXShortClosureAccess().getGroup_0(), "rule__XShortClosure__Group_0__0");
+ put(grammarAccess.getXShortClosureAccess().getGroup_0_0(), "rule__XShortClosure__Group_0_0__0");
+ put(grammarAccess.getXShortClosureAccess().getGroup_0_0_1(), "rule__XShortClosure__Group_0_0_1__0");
+ put(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1(), "rule__XShortClosure__Group_0_0_1_1__0");
+ put(grammarAccess.getXParenthesizedExpressionAccess().getGroup(), "rule__XParenthesizedExpression__Group__0");
+ put(grammarAccess.getXIfExpressionAccess().getGroup(), "rule__XIfExpression__Group__0");
+ put(grammarAccess.getXIfExpressionAccess().getGroup_6(), "rule__XIfExpression__Group_6__0");
+ put(grammarAccess.getXSwitchExpressionAccess().getGroup(), "rule__XSwitchExpression__Group__0");
+ put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0(), "rule__XSwitchExpression__Group_2_0__0");
+ put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0(), "rule__XSwitchExpression__Group_2_0_0__0");
+ put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0(), "rule__XSwitchExpression__Group_2_0_0_0__0");
+ put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1(), "rule__XSwitchExpression__Group_2_1__0");
+ put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0(), "rule__XSwitchExpression__Group_2_1_0__0");
+ put(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0(), "rule__XSwitchExpression__Group_2_1_0_0__0");
+ put(grammarAccess.getXSwitchExpressionAccess().getGroup_5(), "rule__XSwitchExpression__Group_5__0");
+ put(grammarAccess.getXCasePartAccess().getGroup(), "rule__XCasePart__Group__0");
+ put(grammarAccess.getXCasePartAccess().getGroup_1(), "rule__XCasePart__Group_1__0");
+ put(grammarAccess.getXForLoopExpressionAccess().getGroup(), "rule__XForLoopExpression__Group__0");
+ put(grammarAccess.getXWhileExpressionAccess().getGroup(), "rule__XWhileExpression__Group__0");
+ put(grammarAccess.getXDoWhileExpressionAccess().getGroup(), "rule__XDoWhileExpression__Group__0");
+ put(grammarAccess.getXBlockExpressionAccess().getGroup(), "rule__XBlockExpression__Group__0");
+ put(grammarAccess.getXBlockExpressionAccess().getGroup_2(), "rule__XBlockExpression__Group_2__0");
+ put(grammarAccess.getXVariableDeclarationAccess().getGroup(), "rule__XVariableDeclaration__Group__0");
+ put(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0(), "rule__XVariableDeclaration__Group_2_0__0");
+ put(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0(), "rule__XVariableDeclaration__Group_2_0_0__0");
+ put(grammarAccess.getXVariableDeclarationAccess().getGroup_3(), "rule__XVariableDeclaration__Group_3__0");
+ put(grammarAccess.getJvmFormalParameterAccess().getGroup(), "rule__JvmFormalParameter__Group__0");
+ put(grammarAccess.getFullJvmFormalParameterAccess().getGroup(), "rule__FullJvmFormalParameter__Group__0");
+ put(grammarAccess.getXFeatureCallAccess().getGroup(), "rule__XFeatureCall__Group__0");
+ put(grammarAccess.getXFeatureCallAccess().getGroup_1(), "rule__XFeatureCall__Group_1__0");
+ put(grammarAccess.getXFeatureCallAccess().getGroup_1_2(), "rule__XFeatureCall__Group_1_2__0");
+ put(grammarAccess.getXFeatureCallAccess().getGroup_3(), "rule__XFeatureCall__Group_3__0");
+ put(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1(), "rule__XFeatureCall__Group_3_1_1__0");
+ put(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1(), "rule__XFeatureCall__Group_3_1_1_1__0");
+ put(grammarAccess.getXConstructorCallAccess().getGroup(), "rule__XConstructorCall__Group__0");
+ put(grammarAccess.getXConstructorCallAccess().getGroup_3(), "rule__XConstructorCall__Group_3__0");
+ put(grammarAccess.getXConstructorCallAccess().getGroup_3_2(), "rule__XConstructorCall__Group_3_2__0");
+ put(grammarAccess.getXConstructorCallAccess().getGroup_4(), "rule__XConstructorCall__Group_4__0");
+ put(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1(), "rule__XConstructorCall__Group_4_1_1__0");
+ put(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1(), "rule__XConstructorCall__Group_4_1_1_1__0");
+ put(grammarAccess.getXBooleanLiteralAccess().getGroup(), "rule__XBooleanLiteral__Group__0");
+ put(grammarAccess.getXNullLiteralAccess().getGroup(), "rule__XNullLiteral__Group__0");
+ put(grammarAccess.getXNumberLiteralAccess().getGroup(), "rule__XNumberLiteral__Group__0");
+ put(grammarAccess.getXStringLiteralAccess().getGroup(), "rule__XStringLiteral__Group__0");
+ put(grammarAccess.getXTypeLiteralAccess().getGroup(), "rule__XTypeLiteral__Group__0");
+ put(grammarAccess.getXThrowExpressionAccess().getGroup(), "rule__XThrowExpression__Group__0");
+ put(grammarAccess.getXReturnExpressionAccess().getGroup(), "rule__XReturnExpression__Group__0");
+ put(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup(), "rule__XTryCatchFinallyExpression__Group__0");
+ put(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0(), "rule__XTryCatchFinallyExpression__Group_3_0__0");
+ put(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1(), "rule__XTryCatchFinallyExpression__Group_3_0_1__0");
+ put(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1(), "rule__XTryCatchFinallyExpression__Group_3_1__0");
+ put(grammarAccess.getXCatchClauseAccess().getGroup(), "rule__XCatchClause__Group__0");
+ put(grammarAccess.getQualifiedNameAccess().getGroup(), "rule__QualifiedName__Group__0");
+ put(grammarAccess.getQualifiedNameAccess().getGroup_1(), "rule__QualifiedName__Group_1__0");
+ put(grammarAccess.getNumberAccess().getGroup_1(), "rule__Number__Group_1__0");
+ put(grammarAccess.getNumberAccess().getGroup_1_1(), "rule__Number__Group_1_1__0");
+ put(grammarAccess.getStaticQualifierAccess().getGroup(), "rule__StaticQualifier__Group__0");
+ put(grammarAccess.getJvmTypeReferenceAccess().getGroup_0(), "rule__JvmTypeReference__Group_0__0");
+ put(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1(), "rule__JvmTypeReference__Group_0_1__0");
+ put(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0(), "rule__JvmTypeReference__Group_0_1_0__0");
+ put(grammarAccess.getArrayBracketsAccess().getGroup(), "rule__ArrayBrackets__Group__0");
+ put(grammarAccess.getXFunctionTypeRefAccess().getGroup(), "rule__XFunctionTypeRef__Group__0");
+ put(grammarAccess.getXFunctionTypeRefAccess().getGroup_0(), "rule__XFunctionTypeRef__Group_0__0");
+ put(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1(), "rule__XFunctionTypeRef__Group_0_1__0");
+ put(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1(), "rule__XFunctionTypeRef__Group_0_1_1__0");
+ put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup(), "rule__JvmParameterizedTypeReference__Group__0");
+ put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1(), "rule__JvmParameterizedTypeReference__Group_1__0");
+ put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2(), "rule__JvmParameterizedTypeReference__Group_1_2__0");
+ put(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup(), "rule__JvmWildcardTypeReference__Group__0");
+ put(grammarAccess.getJvmUpperBoundAccess().getGroup(), "rule__JvmUpperBound__Group__0");
+ put(grammarAccess.getJvmUpperBoundAndedAccess().getGroup(), "rule__JvmUpperBoundAnded__Group__0");
+ put(grammarAccess.getJvmLowerBoundAccess().getGroup(), "rule__JvmLowerBound__Group__0");
+ put(grammarAccess.getJvmTypeParameterAccess().getGroup(), "rule__JvmTypeParameter__Group__0");
+ put(grammarAccess.getJvmTypeParameterAccess().getGroup_1_0(), "rule__JvmTypeParameter__Group_1_0__0");
+ put(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup(), "rule__QualifiedNameWithWildcard__Group__0");
+ put(grammarAccess.getXImportDeclarationAccess().getGroup(), "rule__XImportDeclaration__Group__0");
+ put(grammarAccess.getXImportDeclarationAccess().getGroup_1_0(), "rule__XImportDeclaration__Group_1_0__0");
+ put(grammarAccess.getModelAccess().getImportSectionAssignment_0(), "rule__Model__ImportSectionAssignment_0");
+ put(grammarAccess.getModelAccess().getModuleAssignment_1(), "rule__Model__ModuleAssignment_1");
+ put(grammarAccess.getModuleAccess().getNameAssignment_1(), "rule__Module__NameAssignment_1");
+ put(grammarAccess.getModuleAccess().getExtendsClauseAssignment_2(), "rule__Module__ExtendsClauseAssignment_2");
+ put(grammarAccess.getModuleAccess().getLabelProviderAssignment_4_0(), "rule__Module__LabelProviderAssignment_4_0");
+ put(grammarAccess.getModuleAccess().getPropertyDescriptionProviderAssignment_4_1(), "rule__Module__PropertyDescriptionProviderAssignment_4_1");
+ put(grammarAccess.getModuleAccess().getFeaturesProviderAssignment_4_2(), "rule__Module__FeaturesProviderAssignment_4_2");
+ put(grammarAccess.getModuleAccess().getFormControlFactoryAssignment_4_3(), "rule__Module__FormControlFactoryAssignment_4_3");
+ put(grammarAccess.getModuleAccess().getProposalCreatorAssignment_4_4(), "rule__Module__ProposalCreatorAssignment_4_4");
+ put(grammarAccess.getModuleAccess().getViewerContentProviderAssignment_4_5(), "rule__Module__ViewerContentProviderAssignment_4_5");
+ put(grammarAccess.getModuleAccess().getPartsAssignment_4_6_2(), "rule__Module__PartsAssignment_4_6_2");
+ put(grammarAccess.getExtendsClauseAccess().getSuperTypeAssignment_1(), "rule__ExtendsClause__SuperTypeAssignment_1");
+ put(grammarAccess.getLabelProviderAccess().getLabelSpecificationsAssignment_3_0_2(), "rule__LabelProvider__LabelSpecificationsAssignment_3_0_2");
+ put(grammarAccess.getLabelProviderAccess().getImageSpecificationsAssignment_3_1_2(), "rule__LabelProvider__ImageSpecificationsAssignment_3_1_2");
+ put(grammarAccess.getLabelSpecificationAccess().getParameterTypeAssignment_0(), "rule__LabelSpecification__ParameterTypeAssignment_0");
+ put(grammarAccess.getLabelSpecificationAccess().getNameAssignment_1(), "rule__LabelSpecification__NameAssignment_1");
+ put(grammarAccess.getLabelSpecificationAccess().getExpressionAssignment_3(), "rule__LabelSpecification__ExpressionAssignment_3");
+ put(grammarAccess.getPropertyDescriptionProviderAccess().getLabelSpecificationsAssignment_3_2(), "rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_2");
+ put(grammarAccess.getPropertyDescriptionSpecificationAccess().getParameterTypeAssignment_0(), "rule__PropertyDescriptionSpecification__ParameterTypeAssignment_0");
+ put(grammarAccess.getPropertyDescriptionSpecificationAccess().getFeatureAssignment_2(), "rule__PropertyDescriptionSpecification__FeatureAssignment_2");
+ put(grammarAccess.getPropertyDescriptionSpecificationAccess().getExpressionAssignment_4(), "rule__PropertyDescriptionSpecification__ExpressionAssignment_4");
+ put(grammarAccess.getFeaturesProviderAccess().getFeatureSpecificationsAssignment_3_2(), "rule__FeaturesProvider__FeatureSpecificationsAssignment_3_2");
+ put(grammarAccess.getFeatureSpecificationAccess().getParameterTypeAssignment_0(), "rule__FeatureSpecification__ParameterTypeAssignment_0");
+ put(grammarAccess.getFeatureSpecificationAccess().getFeaturesAssignment_2(), "rule__FeatureSpecification__FeaturesAssignment_2");
+ put(grammarAccess.getFeatureSpecificationAccess().getFeaturesAssignment_3_1(), "rule__FeatureSpecification__FeaturesAssignment_3_1");
+ put(grammarAccess.getFormControlFactoryAccess().getControlSpecificationsAssignment_3_2(), "rule__FormControlFactory__ControlSpecificationsAssignment_3_2");
+ put(grammarAccess.getFormControlSpecificationAccess().getParameterTypeAssignment_0(), "rule__FormControlSpecification__ParameterTypeAssignment_0");
+ put(grammarAccess.getFormControlSpecificationAccess().getFeatureAssignment_2(), "rule__FormControlSpecification__FeatureAssignment_2");
+ put(grammarAccess.getFormControlSpecificationAccess().getExpressionAssignment_4(), "rule__FormControlSpecification__ExpressionAssignment_4");
+ put(grammarAccess.getFormControlSpecificationAccess().getTargetAssignment_5_1(), "rule__FormControlSpecification__TargetAssignment_5_1");
+ put(grammarAccess.getProposalCreatorAccess().getProposalsSpecificationsAssignment_3(), "rule__ProposalCreator__ProposalsSpecificationsAssignment_3");
+ put(grammarAccess.getProposalSpecificationAccess().getParameterTypeAssignment_0(), "rule__ProposalSpecification__ParameterTypeAssignment_0");
+ put(grammarAccess.getProposalSpecificationAccess().getFeatureAssignment_2(), "rule__ProposalSpecification__FeatureAssignment_2");
+ put(grammarAccess.getProposalSpecificationAccess().getExpressionAssignment_4(), "rule__ProposalSpecification__ExpressionAssignment_4");
+ put(grammarAccess.getViewerContentProviderAccess().getChildrenSpecificationsAssignment_3_2(), "rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_2");
+ put(grammarAccess.getViewSpecificationAccess().getIdAssignment_2(), "rule__ViewSpecification__IdAssignment_2");
+ put(grammarAccess.getViewSpecificationAccess().getViewNameAssignment_5(), "rule__ViewSpecification__ViewNameAssignment_5");
+ put(grammarAccess.getViewSpecificationAccess().getTypeAssignment_7(), "rule__ViewSpecification__TypeAssignment_7");
+ put(grammarAccess.getViewSpecificationAccess().getCategoryAssignment_8_1(), "rule__ViewSpecification__CategoryAssignment_8_1");
+ put(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1(), "rule__XAssignment__FeatureAssignment_0_1");
+ put(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3(), "rule__XAssignment__ValueAssignment_0_3");
+ put(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1(), "rule__XAssignment__FeatureAssignment_1_1_0_0_1");
+ put(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1(), "rule__XAssignment__RightOperandAssignment_1_1_1");
+ put(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XOrExpression__FeatureAssignment_1_0_0_1");
+ put(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1(), "rule__XOrExpression__RightOperandAssignment_1_1");
+ put(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XAndExpression__FeatureAssignment_1_0_0_1");
+ put(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1(), "rule__XAndExpression__RightOperandAssignment_1_1");
+ put(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XEqualityExpression__FeatureAssignment_1_0_0_1");
+ put(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1(), "rule__XEqualityExpression__RightOperandAssignment_1_1");
+ put(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1(), "rule__XRelationalExpression__TypeAssignment_1_0_1");
+ put(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1(), "rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1");
+ put(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1(), "rule__XRelationalExpression__RightOperandAssignment_1_1_1");
+ put(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1");
+ put(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1(), "rule__XOtherOperatorExpression__RightOperandAssignment_1_1");
+ put(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XAdditiveExpression__FeatureAssignment_1_0_0_1");
+ put(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1(), "rule__XAdditiveExpression__RightOperandAssignment_1_1");
+ put(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1(), "rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1");
+ put(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1(), "rule__XMultiplicativeExpression__RightOperandAssignment_1_1");
+ put(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1(), "rule__XUnaryOperation__FeatureAssignment_0_1");
+ put(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2(), "rule__XUnaryOperation__OperandAssignment_0_2");
+ put(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1(), "rule__XCastedExpression__TypeAssignment_1_1");
+ put(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1(), "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1");
+ put(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2(), "rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2");
+ put(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1(), "rule__XMemberFeatureCall__ValueAssignment_1_0_1");
+ put(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1(), "rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1");
+ put(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2(), "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2");
+ put(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1(), "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1");
+ put(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1(), "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1");
+ put(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2(), "rule__XMemberFeatureCall__FeatureAssignment_1_1_2");
+ put(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0(), "rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0");
+ put(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0(), "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0");
+ put(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0(), "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0");
+ put(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1(), "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1");
+ put(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4(), "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4");
+ put(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0(), "rule__XSetLiteral__ElementsAssignment_3_0");
+ put(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1(), "rule__XSetLiteral__ElementsAssignment_3_1_1");
+ put(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0(), "rule__XListLiteral__ElementsAssignment_3_0");
+ put(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1(), "rule__XListLiteral__ElementsAssignment_3_1_1");
+ put(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0(), "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0");
+ put(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1(), "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1");
+ put(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1(), "rule__XClosure__ExplicitSyntaxAssignment_1_0_1");
+ put(grammarAccess.getXClosureAccess().getExpressionAssignment_2(), "rule__XClosure__ExpressionAssignment_2");
+ put(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0(), "rule__XExpressionInClosure__ExpressionsAssignment_1_0");
+ put(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0(), "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0");
+ put(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1(), "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1");
+ put(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2(), "rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2");
+ put(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1(), "rule__XShortClosure__ExpressionAssignment_1");
+ put(grammarAccess.getXIfExpressionAccess().getIfAssignment_3(), "rule__XIfExpression__IfAssignment_3");
+ put(grammarAccess.getXIfExpressionAccess().getThenAssignment_5(), "rule__XIfExpression__ThenAssignment_5");
+ put(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1(), "rule__XIfExpression__ElseAssignment_6_1");
+ put(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameAssignment_2_0_0_0_0(), "rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_0");
+ put(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1(), "rule__XSwitchExpression__SwitchAssignment_2_0_1");
+ put(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameAssignment_2_1_0_0_1(), "rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_1");
+ put(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1(), "rule__XSwitchExpression__SwitchAssignment_2_1_1");
+ put(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4(), "rule__XSwitchExpression__CasesAssignment_4");
+ put(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2(), "rule__XSwitchExpression__DefaultAssignment_5_2");
+ put(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_0(), "rule__XCasePart__TypeGuardAssignment_0");
+ put(grammarAccess.getXCasePartAccess().getCaseAssignment_1_1(), "rule__XCasePart__CaseAssignment_1_1");
+ put(grammarAccess.getXCasePartAccess().getThenAssignment_3(), "rule__XCasePart__ThenAssignment_3");
+ put(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_3(), "rule__XForLoopExpression__DeclaredParamAssignment_3");
+ put(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_5(), "rule__XForLoopExpression__ForExpressionAssignment_5");
+ put(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_7(), "rule__XForLoopExpression__EachExpressionAssignment_7");
+ put(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3(), "rule__XWhileExpression__PredicateAssignment_3");
+ put(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5(), "rule__XWhileExpression__BodyAssignment_5");
+ put(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2(), "rule__XDoWhileExpression__BodyAssignment_2");
+ put(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5(), "rule__XDoWhileExpression__PredicateAssignment_5");
+ put(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0(), "rule__XBlockExpression__ExpressionsAssignment_2_0");
+ put(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0(), "rule__XVariableDeclaration__WriteableAssignment_1_0");
+ put(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0(), "rule__XVariableDeclaration__TypeAssignment_2_0_0_0");
+ put(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1(), "rule__XVariableDeclaration__NameAssignment_2_0_0_1");
+ put(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1(), "rule__XVariableDeclaration__NameAssignment_2_1");
+ put(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1(), "rule__XVariableDeclaration__RightAssignment_3_1");
+ put(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0(), "rule__JvmFormalParameter__ParameterTypeAssignment_0");
+ put(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1(), "rule__JvmFormalParameter__NameAssignment_1");
+ put(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0(), "rule__FullJvmFormalParameter__ParameterTypeAssignment_0");
+ put(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1(), "rule__FullJvmFormalParameter__NameAssignment_1");
+ put(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1(), "rule__XFeatureCall__TypeArgumentsAssignment_1_1");
+ put(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1(), "rule__XFeatureCall__TypeArgumentsAssignment_1_2_1");
+ put(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2(), "rule__XFeatureCall__FeatureAssignment_2");
+ put(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0(), "rule__XFeatureCall__ExplicitOperationCallAssignment_3_0");
+ put(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0(), "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0");
+ put(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0(), "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0");
+ put(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1(), "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1");
+ put(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4(), "rule__XFeatureCall__FeatureCallArgumentsAssignment_4");
+ put(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2(), "rule__XConstructorCall__ConstructorAssignment_2");
+ put(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1(), "rule__XConstructorCall__TypeArgumentsAssignment_3_1");
+ put(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1(), "rule__XConstructorCall__TypeArgumentsAssignment_3_2_1");
+ put(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0(), "rule__XConstructorCall__ArgumentsAssignment_4_1_0");
+ put(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0(), "rule__XConstructorCall__ArgumentsAssignment_4_1_1_0");
+ put(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1(), "rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1");
+ put(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5(), "rule__XConstructorCall__ArgumentsAssignment_5");
+ put(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1(), "rule__XBooleanLiteral__IsTrueAssignment_1_1");
+ put(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1(), "rule__XNumberLiteral__ValueAssignment_1");
+ put(grammarAccess.getXStringLiteralAccess().getValueAssignment_1(), "rule__XStringLiteral__ValueAssignment_1");
+ put(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3(), "rule__XTypeLiteral__TypeAssignment_3");
+ put(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4(), "rule__XTypeLiteral__ArrayDimensionsAssignment_4");
+ put(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2(), "rule__XThrowExpression__ExpressionAssignment_2");
+ put(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2(), "rule__XReturnExpression__ExpressionAssignment_2");
+ put(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2(), "rule__XTryCatchFinallyExpression__ExpressionAssignment_2");
+ put(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0(), "rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0");
+ put(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1(), "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1");
+ put(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1(), "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1");
+ put(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2(), "rule__XCatchClause__DeclaredParamAssignment_2");
+ put(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4(), "rule__XCatchClause__ExpressionAssignment_4");
+ put(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0(), "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0");
+ put(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1(), "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1");
+ put(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2(), "rule__XFunctionTypeRef__ReturnTypeAssignment_2");
+ put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0(), "rule__JvmParameterizedTypeReference__TypeAssignment_0");
+ put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1(), "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1");
+ put(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1(), "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1");
+ put(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0(), "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0");
+ put(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1(), "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1");
+ put(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1(), "rule__JvmUpperBound__TypeReferenceAssignment_1");
+ put(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1(), "rule__JvmUpperBoundAnded__TypeReferenceAssignment_1");
+ put(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1(), "rule__JvmLowerBound__TypeReferenceAssignment_1");
+ put(grammarAccess.getJvmTypeParameterAccess().getNameAssignment_0(), "rule__JvmTypeParameter__NameAssignment_0");
+ put(grammarAccess.getJvmTypeParameterAccess().getConstraintsAssignment_1_0_0(), "rule__JvmTypeParameter__ConstraintsAssignment_1_0_0");
+ put(grammarAccess.getJvmTypeParameterAccess().getConstraintsAssignment_1_0_1(), "rule__JvmTypeParameter__ConstraintsAssignment_1_0_1");
+ put(grammarAccess.getJvmTypeParameterAccess().getConstraintsAssignment_1_1(), "rule__JvmTypeParameter__ConstraintsAssignment_1_1");
+ put(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment(), "rule__XImportSection__ImportDeclarationsAssignment");
+ put(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_1_0_0(), "rule__XImportDeclaration__StaticAssignment_1_0_0");
+ put(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_1_0_1(), "rule__XImportDeclaration__ExtensionAssignment_1_0_1");
+ put(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_0_2(), "rule__XImportDeclaration__ImportedTypeAssignment_1_0_2");
+ put(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1(), "rule__XImportDeclaration__ImportedTypeAssignment_1_1");
+ put(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2(), "rule__XImportDeclaration__ImportedNamespaceAssignment_1_2");
+ put(grammarAccess.getModuleAccess().getUnorderedGroup_4(), "rule__Module__UnorderedGroup_4");
+ put(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), "rule__LabelProvider__UnorderedGroup_3");
+ }
+ };
+ }
+ return nameMappings.get(element);
+ }
+
+ @Override
+ protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+ try {
+ org.eclipse.emf.parsley.dsl.ui.contentassist.antlr.internal.InternalEmfParsleyDslParser typedParser = (org.eclipse.emf.parsley.dsl.ui.contentassist.antlr.internal.InternalEmfParsleyDslParser) parser;
+ typedParser.entryRuleModel();
+ return typedParser.getFollowElements();
+ } catch(RecognitionException ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+
+ @Override
+ protected String[] getInitialHiddenTokens() {
+ return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
+ }
+
+ public EmfParsleyDslGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(EmfParsleyDslGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/PartialEmfParsleyDslContentAssistParser.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/PartialEmfParsleyDslContentAssistParser.java
new file mode 100644
index 000000000..e6356471c
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/PartialEmfParsleyDslContentAssistParser.java
@@ -0,0 +1,37 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.dsl.ui.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.xtext.AbstractRule;
+import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.util.PolymorphicDispatcher;
+
+/**
+ * @author Sebastian Zarnekow - Initial contribution and API
+ */
+public class PartialEmfParsleyDslContentAssistParser extends EmfParsleyDslParser implements IPartialContentAssistParser {
+
+ private AbstractRule rule;
+
+ public void initializeFor(AbstractRule rule) {
+ this.rule = rule;
+ }
+
+ @Override
+ protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+ if (rule == null || rule.eIsProxy())
+ return Collections.emptyList();
+ String methodName = "entryRule" + rule.getName();
+ PolymorphicDispatcher<Collection<FollowElement>> dispatcher =
+ new PolymorphicDispatcher<Collection<FollowElement>>(methodName, 0, 0, Collections.singletonList(parser));
+ dispatcher.invoke();
+ return parser.getFollowElements();
+ }
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g
new file mode 100644
index 000000000..5595abcb3
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g
@@ -0,0 +1,21571 @@
+/*
+* generated by Xtext
+*/
+grammar InternalEmfParsleyDsl;
+
+options {
+ superClass=AbstractInternalContentAssistParser;
+ backtrack=true;
+
+}
+
+@lexer::header {
+package org.eclipse.emf.parsley.dsl.ui.contentassist.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer;
+}
+
+@parser::header {
+package org.eclipse.emf.parsley.dsl.ui.contentassist.antlr.internal;
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import org.eclipse.emf.parsley.dsl.services.EmfParsleyDslGrammarAccess;
+
+}
+
+@parser::members {
+
+ private EmfParsleyDslGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(EmfParsleyDslGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected Grammar getGrammar() {
+ return grammarAccess.getGrammar();
+ }
+
+ @Override
+ protected String getValueForTokenName(String tokenName) {
+ return tokenName;
+ }
+
+}
+
+
+
+
+// Entry rule entryRuleModel
+entryRuleModel
+:
+{ before(grammarAccess.getModelRule()); }
+ ruleModel
+{ after(grammarAccess.getModelRule()); }
+ EOF
+;
+
+// Rule Model
+ruleModel
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getModelAccess().getGroup()); }
+(rule__Model__Group__0)
+{ after(grammarAccess.getModelAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleModule
+entryRuleModule
+:
+{ before(grammarAccess.getModuleRule()); }
+ ruleModule
+{ after(grammarAccess.getModuleRule()); }
+ EOF
+;
+
+// Rule Module
+ruleModule
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getModuleAccess().getGroup()); }
+(rule__Module__Group__0)
+{ after(grammarAccess.getModuleAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleExtendsClause
+entryRuleExtendsClause
+:
+{ before(grammarAccess.getExtendsClauseRule()); }
+ ruleExtendsClause
+{ after(grammarAccess.getExtendsClauseRule()); }
+ EOF
+;
+
+// Rule ExtendsClause
+ruleExtendsClause
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getExtendsClauseAccess().getGroup()); }
+(rule__ExtendsClause__Group__0)
+{ after(grammarAccess.getExtendsClauseAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleLabelProvider
+entryRuleLabelProvider
+:
+{ before(grammarAccess.getLabelProviderRule()); }
+ ruleLabelProvider
+{ after(grammarAccess.getLabelProviderRule()); }
+ EOF
+;
+
+// Rule LabelProvider
+ruleLabelProvider
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getLabelProviderAccess().getGroup()); }
+(rule__LabelProvider__Group__0)
+{ after(grammarAccess.getLabelProviderAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleLabelSpecification
+entryRuleLabelSpecification
+:
+{ before(grammarAccess.getLabelSpecificationRule()); }
+ ruleLabelSpecification
+{ after(grammarAccess.getLabelSpecificationRule()); }
+ EOF
+;
+
+// Rule LabelSpecification
+ruleLabelSpecification
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getLabelSpecificationAccess().getGroup()); }
+(rule__LabelSpecification__Group__0)
+{ after(grammarAccess.getLabelSpecificationAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePropertyDescriptionProvider
+entryRulePropertyDescriptionProvider
+:
+{ before(grammarAccess.getPropertyDescriptionProviderRule()); }
+ rulePropertyDescriptionProvider
+{ after(grammarAccess.getPropertyDescriptionProviderRule()); }
+ EOF
+;
+
+// Rule PropertyDescriptionProvider
+rulePropertyDescriptionProvider
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getPropertyDescriptionProviderAccess().getGroup()); }
+(rule__PropertyDescriptionProvider__Group__0)
+{ after(grammarAccess.getPropertyDescriptionProviderAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePropertyDescriptionSpecification
+entryRulePropertyDescriptionSpecification
+:
+{ before(grammarAccess.getPropertyDescriptionSpecificationRule()); }
+ rulePropertyDescriptionSpecification
+{ after(grammarAccess.getPropertyDescriptionSpecificationRule()); }
+ EOF
+;
+
+// Rule PropertyDescriptionSpecification
+rulePropertyDescriptionSpecification
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getGroup()); }
+(rule__PropertyDescriptionSpecification__Group__0)
+{ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFeaturesProvider
+entryRuleFeaturesProvider
+:
+{ before(grammarAccess.getFeaturesProviderRule()); }
+ ruleFeaturesProvider
+{ after(grammarAccess.getFeaturesProviderRule()); }
+ EOF
+;
+
+// Rule FeaturesProvider
+ruleFeaturesProvider
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getFeaturesProviderAccess().getGroup()); }
+(rule__FeaturesProvider__Group__0)
+{ after(grammarAccess.getFeaturesProviderAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFeatureSpecification
+entryRuleFeatureSpecification
+:
+{ before(grammarAccess.getFeatureSpecificationRule()); }
+ ruleFeatureSpecification
+{ after(grammarAccess.getFeatureSpecificationRule()); }
+ EOF
+;
+
+// Rule FeatureSpecification
+ruleFeatureSpecification
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getFeatureSpecificationAccess().getGroup()); }
+(rule__FeatureSpecification__Group__0)
+{ after(grammarAccess.getFeatureSpecificationAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFormControlFactory
+entryRuleFormControlFactory
+:
+{ before(grammarAccess.getFormControlFactoryRule()); }
+ ruleFormControlFactory
+{ after(grammarAccess.getFormControlFactoryRule()); }
+ EOF
+;
+
+// Rule FormControlFactory
+ruleFormControlFactory
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getFormControlFactoryAccess().getGroup()); }
+(rule__FormControlFactory__Group__0)
+{ after(grammarAccess.getFormControlFactoryAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFormControlSpecification
+entryRuleFormControlSpecification
+:
+{ before(grammarAccess.getFormControlSpecificationRule()); }
+ ruleFormControlSpecification
+{ after(grammarAccess.getFormControlSpecificationRule()); }
+ EOF
+;
+
+// Rule FormControlSpecification
+ruleFormControlSpecification
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getFormControlSpecificationAccess().getGroup()); }
+(rule__FormControlSpecification__Group__0)
+{ after(grammarAccess.getFormControlSpecificationAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleProposalCreator
+entryRuleProposalCreator
+:
+{ before(grammarAccess.getProposalCreatorRule()); }
+ ruleProposalCreator
+{ after(grammarAccess.getProposalCreatorRule()); }
+ EOF
+;
+
+// Rule ProposalCreator
+ruleProposalCreator
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getProposalCreatorAccess().getGroup()); }
+(rule__ProposalCreator__Group__0)
+{ after(grammarAccess.getProposalCreatorAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleProposalSpecification
+entryRuleProposalSpecification
+:
+{ before(grammarAccess.getProposalSpecificationRule()); }
+ ruleProposalSpecification
+{ after(grammarAccess.getProposalSpecificationRule()); }
+ EOF
+;
+
+// Rule ProposalSpecification
+ruleProposalSpecification
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getProposalSpecificationAccess().getGroup()); }
+(rule__ProposalSpecification__Group__0)
+{ after(grammarAccess.getProposalSpecificationAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleViewerContentProvider
+entryRuleViewerContentProvider
+:
+{ before(grammarAccess.getViewerContentProviderRule()); }
+ ruleViewerContentProvider
+{ after(grammarAccess.getViewerContentProviderRule()); }
+ EOF
+;
+
+// Rule ViewerContentProvider
+ruleViewerContentProvider
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getViewerContentProviderAccess().getGroup()); }
+(rule__ViewerContentProvider__Group__0)
+{ after(grammarAccess.getViewerContentProviderAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+// Entry rule entryRulePartSpecification
+entryRulePartSpecification
+:
+{ before(grammarAccess.getPartSpecificationRule()); }
+ rulePartSpecification
+{ after(grammarAccess.getPartSpecificationRule()); }
+ EOF
+;
+
+// Rule PartSpecification
+rulePartSpecification
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getPartSpecificationAccess().getViewSpecificationParserRuleCall()); }
+ ruleViewSpecification
+{ after(grammarAccess.getPartSpecificationAccess().getViewSpecificationParserRuleCall()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleViewSpecification
+entryRuleViewSpecification
+:
+{ before(grammarAccess.getViewSpecificationRule()); }
+ ruleViewSpecification
+{ after(grammarAccess.getViewSpecificationRule()); }
+ EOF
+;
+
+// Rule ViewSpecification
+ruleViewSpecification
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getViewSpecificationAccess().getGroup()); }
+(rule__ViewSpecification__Group__0)
+{ after(grammarAccess.getViewSpecificationAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXExpression
+entryRuleXExpression
+:
+{ before(grammarAccess.getXExpressionRule()); }
+ ruleXExpression
+{ after(grammarAccess.getXExpressionRule()); }
+ EOF
+;
+
+// Rule XExpression
+ruleXExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); }
+ ruleXAssignment
+{ after(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXAssignment
+entryRuleXAssignment
+:
+{ before(grammarAccess.getXAssignmentRule()); }
+ ruleXAssignment
+{ after(grammarAccess.getXAssignmentRule()); }
+ EOF
+;
+
+// Rule XAssignment
+ruleXAssignment
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXAssignmentAccess().getAlternatives()); }
+(rule__XAssignment__Alternatives)
+{ after(grammarAccess.getXAssignmentAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpSingleAssign
+entryRuleOpSingleAssign
+:
+{ before(grammarAccess.getOpSingleAssignRule()); }
+ ruleOpSingleAssign
+{ after(grammarAccess.getOpSingleAssignRule()); }
+ EOF
+;
+
+// Rule OpSingleAssign
+ruleOpSingleAssign
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); }
+
+ '='
+
+{ after(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpMultiAssign
+entryRuleOpMultiAssign
+:
+{ before(grammarAccess.getOpMultiAssignRule()); }
+ ruleOpMultiAssign
+{ after(grammarAccess.getOpMultiAssignRule()); }
+ EOF
+;
+
+// Rule OpMultiAssign
+ruleOpMultiAssign
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getOpMultiAssignAccess().getAlternatives()); }
+(rule__OpMultiAssign__Alternatives)
+{ after(grammarAccess.getOpMultiAssignAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXOrExpression
+entryRuleXOrExpression
+:
+{ before(grammarAccess.getXOrExpressionRule()); }
+ ruleXOrExpression
+{ after(grammarAccess.getXOrExpressionRule()); }
+ EOF
+;
+
+// Rule XOrExpression
+ruleXOrExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXOrExpressionAccess().getGroup()); }
+(rule__XOrExpression__Group__0)
+{ after(grammarAccess.getXOrExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpOr
+entryRuleOpOr
+:
+{ before(grammarAccess.getOpOrRule()); }
+ ruleOpOr
+{ after(grammarAccess.getOpOrRule()); }
+ EOF
+;
+
+// Rule OpOr
+ruleOpOr
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); }
+
+ '||'
+
+{ after(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXAndExpression
+entryRuleXAndExpression
+:
+{ before(grammarAccess.getXAndExpressionRule()); }
+ ruleXAndExpression
+{ after(grammarAccess.getXAndExpressionRule()); }
+ EOF
+;
+
+// Rule XAndExpression
+ruleXAndExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXAndExpressionAccess().getGroup()); }
+(rule__XAndExpression__Group__0)
+{ after(grammarAccess.getXAndExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpAnd
+entryRuleOpAnd
+:
+{ before(grammarAccess.getOpAndRule()); }
+ ruleOpAnd
+{ after(grammarAccess.getOpAndRule()); }
+ EOF
+;
+
+// Rule OpAnd
+ruleOpAnd
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); }
+
+ '&&'
+
+{ after(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXEqualityExpression
+entryRuleXEqualityExpression
+:
+{ before(grammarAccess.getXEqualityExpressionRule()); }
+ ruleXEqualityExpression
+{ after(grammarAccess.getXEqualityExpressionRule()); }
+ EOF
+;
+
+// Rule XEqualityExpression
+ruleXEqualityExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getGroup()); }
+(rule__XEqualityExpression__Group__0)
+{ after(grammarAccess.getXEqualityExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpEquality
+entryRuleOpEquality
+:
+{ before(grammarAccess.getOpEqualityRule()); }
+ ruleOpEquality
+{ after(grammarAccess.getOpEqualityRule()); }
+ EOF
+;
+
+// Rule OpEquality
+ruleOpEquality
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getOpEqualityAccess().getAlternatives()); }
+(rule__OpEquality__Alternatives)
+{ after(grammarAccess.getOpEqualityAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXRelationalExpression
+entryRuleXRelationalExpression
+:
+{ before(grammarAccess.getXRelationalExpressionRule()); }
+ ruleXRelationalExpression
+{ after(grammarAccess.getXRelationalExpressionRule()); }
+ EOF
+;
+
+// Rule XRelationalExpression
+ruleXRelationalExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getGroup()); }
+(rule__XRelationalExpression__Group__0)
+{ after(grammarAccess.getXRelationalExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpCompare
+entryRuleOpCompare
+:
+{ before(grammarAccess.getOpCompareRule()); }
+ ruleOpCompare
+{ after(grammarAccess.getOpCompareRule()); }
+ EOF
+;
+
+// Rule OpCompare
+ruleOpCompare
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getOpCompareAccess().getAlternatives()); }
+(rule__OpCompare__Alternatives)
+{ after(grammarAccess.getOpCompareAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXOtherOperatorExpression
+entryRuleXOtherOperatorExpression
+:
+{ before(grammarAccess.getXOtherOperatorExpressionRule()); }
+ ruleXOtherOperatorExpression
+{ after(grammarAccess.getXOtherOperatorExpressionRule()); }
+ EOF
+;
+
+// Rule XOtherOperatorExpression
+ruleXOtherOperatorExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); }
+(rule__XOtherOperatorExpression__Group__0)
+{ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpOther
+entryRuleOpOther
+:
+{ before(grammarAccess.getOpOtherRule()); }
+ ruleOpOther
+{ after(grammarAccess.getOpOtherRule()); }
+ EOF
+;
+
+// Rule OpOther
+ruleOpOther
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getOpOtherAccess().getAlternatives()); }
+(rule__OpOther__Alternatives)
+{ after(grammarAccess.getOpOtherAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXAdditiveExpression
+entryRuleXAdditiveExpression
+:
+{ before(grammarAccess.getXAdditiveExpressionRule()); }
+ ruleXAdditiveExpression
+{ after(grammarAccess.getXAdditiveExpressionRule()); }
+ EOF
+;
+
+// Rule XAdditiveExpression
+ruleXAdditiveExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXAdditiveExpressionAccess().getGroup()); }
+(rule__XAdditiveExpression__Group__0)
+{ after(grammarAccess.getXAdditiveExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpAdd
+entryRuleOpAdd
+:
+{ before(grammarAccess.getOpAddRule()); }
+ ruleOpAdd
+{ after(grammarAccess.getOpAddRule()); }
+ EOF
+;
+
+// Rule OpAdd
+ruleOpAdd
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getOpAddAccess().getAlternatives()); }
+(rule__OpAdd__Alternatives)
+{ after(grammarAccess.getOpAddAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXMultiplicativeExpression
+entryRuleXMultiplicativeExpression
+:
+{ before(grammarAccess.getXMultiplicativeExpressionRule()); }
+ ruleXMultiplicativeExpression
+{ after(grammarAccess.getXMultiplicativeExpressionRule()); }
+ EOF
+;
+
+// Rule XMultiplicativeExpression
+ruleXMultiplicativeExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); }
+(rule__XMultiplicativeExpression__Group__0)
+{ after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpMulti
+entryRuleOpMulti
+:
+{ before(grammarAccess.getOpMultiRule()); }
+ ruleOpMulti
+{ after(grammarAccess.getOpMultiRule()); }
+ EOF
+;
+
+// Rule OpMulti
+ruleOpMulti
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getOpMultiAccess().getAlternatives()); }
+(rule__OpMulti__Alternatives)
+{ after(grammarAccess.getOpMultiAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXUnaryOperation
+entryRuleXUnaryOperation
+:
+{ before(grammarAccess.getXUnaryOperationRule()); }
+ ruleXUnaryOperation
+{ after(grammarAccess.getXUnaryOperationRule()); }
+ EOF
+;
+
+// Rule XUnaryOperation
+ruleXUnaryOperation
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXUnaryOperationAccess().getAlternatives()); }
+(rule__XUnaryOperation__Alternatives)
+{ after(grammarAccess.getXUnaryOperationAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleOpUnary
+entryRuleOpUnary
+:
+{ before(grammarAccess.getOpUnaryRule()); }
+ ruleOpUnary
+{ after(grammarAccess.getOpUnaryRule()); }
+ EOF
+;
+
+// Rule OpUnary
+ruleOpUnary
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getOpUnaryAccess().getAlternatives()); }
+(rule__OpUnary__Alternatives)
+{ after(grammarAccess.getOpUnaryAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXCastedExpression
+entryRuleXCastedExpression
+:
+{ before(grammarAccess.getXCastedExpressionRule()); }
+ ruleXCastedExpression
+{ after(grammarAccess.getXCastedExpressionRule()); }
+ EOF
+;
+
+// Rule XCastedExpression
+ruleXCastedExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXCastedExpressionAccess().getGroup()); }
+(rule__XCastedExpression__Group__0)
+{ after(grammarAccess.getXCastedExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXMemberFeatureCall
+entryRuleXMemberFeatureCall
+:
+{ before(grammarAccess.getXMemberFeatureCallRule()); }
+ ruleXMemberFeatureCall
+{ after(grammarAccess.getXMemberFeatureCallRule()); }
+ EOF
+;
+
+// Rule XMemberFeatureCall
+ruleXMemberFeatureCall
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup()); }
+(rule__XMemberFeatureCall__Group__0)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXPrimaryExpression
+entryRuleXPrimaryExpression
+:
+{ before(grammarAccess.getXPrimaryExpressionRule()); }
+ ruleXPrimaryExpression
+{ after(grammarAccess.getXPrimaryExpressionRule()); }
+ EOF
+;
+
+// Rule XPrimaryExpression
+ruleXPrimaryExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); }
+(rule__XPrimaryExpression__Alternatives)
+{ after(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXLiteral
+entryRuleXLiteral
+:
+{ before(grammarAccess.getXLiteralRule()); }
+ ruleXLiteral
+{ after(grammarAccess.getXLiteralRule()); }
+ EOF
+;
+
+// Rule XLiteral
+ruleXLiteral
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXLiteralAccess().getAlternatives()); }
+(rule__XLiteral__Alternatives)
+{ after(grammarAccess.getXLiteralAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXCollectionLiteral
+entryRuleXCollectionLiteral
+:
+{ before(grammarAccess.getXCollectionLiteralRule()); }
+ ruleXCollectionLiteral
+{ after(grammarAccess.getXCollectionLiteralRule()); }
+ EOF
+;
+
+// Rule XCollectionLiteral
+ruleXCollectionLiteral
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); }
+(rule__XCollectionLiteral__Alternatives)
+{ after(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXSetLiteral
+entryRuleXSetLiteral
+:
+{ before(grammarAccess.getXSetLiteralRule()); }
+ ruleXSetLiteral
+{ after(grammarAccess.getXSetLiteralRule()); }
+ EOF
+;
+
+// Rule XSetLiteral
+ruleXSetLiteral
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXSetLiteralAccess().getGroup()); }
+(rule__XSetLiteral__Group__0)
+{ after(grammarAccess.getXSetLiteralAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXListLiteral
+entryRuleXListLiteral
+:
+{ before(grammarAccess.getXListLiteralRule()); }
+ ruleXListLiteral
+{ after(grammarAccess.getXListLiteralRule()); }
+ EOF
+;
+
+// Rule XListLiteral
+ruleXListLiteral
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXListLiteralAccess().getGroup()); }
+(rule__XListLiteral__Group__0)
+{ after(grammarAccess.getXListLiteralAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXClosure
+entryRuleXClosure
+:
+{ before(grammarAccess.getXClosureRule()); }
+ ruleXClosure
+{ after(grammarAccess.getXClosureRule()); }
+ EOF
+;
+
+// Rule XClosure
+ruleXClosure
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXClosureAccess().getGroup()); }
+(rule__XClosure__Group__0)
+{ after(grammarAccess.getXClosureAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXExpressionInClosure
+entryRuleXExpressionInClosure
+:
+{ before(grammarAccess.getXExpressionInClosureRule()); }
+ ruleXExpressionInClosure
+{ after(grammarAccess.getXExpressionInClosureRule()); }
+ EOF
+;
+
+// Rule XExpressionInClosure
+ruleXExpressionInClosure
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXExpressionInClosureAccess().getGroup()); }
+(rule__XExpressionInClosure__Group__0)
+{ after(grammarAccess.getXExpressionInClosureAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXShortClosure
+entryRuleXShortClosure
+:
+{ before(grammarAccess.getXShortClosureRule()); }
+ ruleXShortClosure
+{ after(grammarAccess.getXShortClosureRule()); }
+ EOF
+;
+
+// Rule XShortClosure
+ruleXShortClosure
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXShortClosureAccess().getGroup()); }
+(rule__XShortClosure__Group__0)
+{ after(grammarAccess.getXShortClosureAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXParenthesizedExpression
+entryRuleXParenthesizedExpression
+:
+{ before(grammarAccess.getXParenthesizedExpressionRule()); }
+ ruleXParenthesizedExpression
+{ after(grammarAccess.getXParenthesizedExpressionRule()); }
+ EOF
+;
+
+// Rule XParenthesizedExpression
+ruleXParenthesizedExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); }
+(rule__XParenthesizedExpression__Group__0)
+{ after(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXIfExpression
+entryRuleXIfExpression
+:
+{ before(grammarAccess.getXIfExpressionRule()); }
+ ruleXIfExpression
+{ after(grammarAccess.getXIfExpressionRule()); }
+ EOF
+;
+
+// Rule XIfExpression
+ruleXIfExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXIfExpressionAccess().getGroup()); }
+(rule__XIfExpression__Group__0)
+{ after(grammarAccess.getXIfExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXSwitchExpression
+entryRuleXSwitchExpression
+:
+{ before(grammarAccess.getXSwitchExpressionRule()); }
+ ruleXSwitchExpression
+{ after(grammarAccess.getXSwitchExpressionRule()); }
+ EOF
+;
+
+// Rule XSwitchExpression
+ruleXSwitchExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getGroup()); }
+(rule__XSwitchExpression__Group__0)
+{ after(grammarAccess.getXSwitchExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXCasePart
+entryRuleXCasePart
+:
+{ before(grammarAccess.getXCasePartRule()); }
+ ruleXCasePart
+{ after(grammarAccess.getXCasePartRule()); }
+ EOF
+;
+
+// Rule XCasePart
+ruleXCasePart
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXCasePartAccess().getGroup()); }
+(rule__XCasePart__Group__0)
+{ after(grammarAccess.getXCasePartAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXForLoopExpression
+entryRuleXForLoopExpression
+:
+{ before(grammarAccess.getXForLoopExpressionRule()); }
+ ruleXForLoopExpression
+{ after(grammarAccess.getXForLoopExpressionRule()); }
+ EOF
+;
+
+// Rule XForLoopExpression
+ruleXForLoopExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXForLoopExpressionAccess().getGroup()); }
+(rule__XForLoopExpression__Group__0)
+{ after(grammarAccess.getXForLoopExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXWhileExpression
+entryRuleXWhileExpression
+:
+{ before(grammarAccess.getXWhileExpressionRule()); }
+ ruleXWhileExpression
+{ after(grammarAccess.getXWhileExpressionRule()); }
+ EOF
+;
+
+// Rule XWhileExpression
+ruleXWhileExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXWhileExpressionAccess().getGroup()); }
+(rule__XWhileExpression__Group__0)
+{ after(grammarAccess.getXWhileExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXDoWhileExpression
+entryRuleXDoWhileExpression
+:
+{ before(grammarAccess.getXDoWhileExpressionRule()); }
+ ruleXDoWhileExpression
+{ after(grammarAccess.getXDoWhileExpressionRule()); }
+ EOF
+;
+
+// Rule XDoWhileExpression
+ruleXDoWhileExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXDoWhileExpressionAccess().getGroup()); }
+(rule__XDoWhileExpression__Group__0)
+{ after(grammarAccess.getXDoWhileExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXBlockExpression
+entryRuleXBlockExpression
+:
+{ before(grammarAccess.getXBlockExpressionRule()); }
+ ruleXBlockExpression
+{ after(grammarAccess.getXBlockExpressionRule()); }
+ EOF
+;
+
+// Rule XBlockExpression
+ruleXBlockExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXBlockExpressionAccess().getGroup()); }
+(rule__XBlockExpression__Group__0)
+{ after(grammarAccess.getXBlockExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXExpressionInsideBlock
+entryRuleXExpressionInsideBlock
+:
+{ before(grammarAccess.getXExpressionInsideBlockRule()); }
+ ruleXExpressionInsideBlock
+{ after(grammarAccess.getXExpressionInsideBlockRule()); }
+ EOF
+;
+
+// Rule XExpressionInsideBlock
+ruleXExpressionInsideBlock
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXExpressionInsideBlockAccess().getAlternatives()); }
+(rule__XExpressionInsideBlock__Alternatives)
+{ after(grammarAccess.getXExpressionInsideBlockAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXVariableDeclaration
+entryRuleXVariableDeclaration
+:
+{ before(grammarAccess.getXVariableDeclarationRule()); }
+ ruleXVariableDeclaration
+{ after(grammarAccess.getXVariableDeclarationRule()); }
+ EOF
+;
+
+// Rule XVariableDeclaration
+ruleXVariableDeclaration
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getGroup()); }
+(rule__XVariableDeclaration__Group__0)
+{ after(grammarAccess.getXVariableDeclarationAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleJvmFormalParameter
+entryRuleJvmFormalParameter
+:
+{ before(grammarAccess.getJvmFormalParameterRule()); }
+ ruleJvmFormalParameter
+{ after(grammarAccess.getJvmFormalParameterRule()); }
+ EOF
+;
+
+// Rule JvmFormalParameter
+ruleJvmFormalParameter
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getJvmFormalParameterAccess().getGroup()); }
+(rule__JvmFormalParameter__Group__0)
+{ after(grammarAccess.getJvmFormalParameterAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFullJvmFormalParameter
+entryRuleFullJvmFormalParameter
+:
+{ before(grammarAccess.getFullJvmFormalParameterRule()); }
+ ruleFullJvmFormalParameter
+{ after(grammarAccess.getFullJvmFormalParameterRule()); }
+ EOF
+;
+
+// Rule FullJvmFormalParameter
+ruleFullJvmFormalParameter
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); }
+(rule__FullJvmFormalParameter__Group__0)
+{ after(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXFeatureCall
+entryRuleXFeatureCall
+:
+{ before(grammarAccess.getXFeatureCallRule()); }
+ ruleXFeatureCall
+{ after(grammarAccess.getXFeatureCallRule()); }
+ EOF
+;
+
+// Rule XFeatureCall
+ruleXFeatureCall
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXFeatureCallAccess().getGroup()); }
+(rule__XFeatureCall__Group__0)
+{ after(grammarAccess.getXFeatureCallAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFeatureCallID
+entryRuleFeatureCallID
+:
+{ before(grammarAccess.getFeatureCallIDRule()); }
+ ruleFeatureCallID
+{ after(grammarAccess.getFeatureCallIDRule()); }
+ EOF
+;
+
+// Rule FeatureCallID
+ruleFeatureCallID
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getFeatureCallIDAccess().getAlternatives()); }
+(rule__FeatureCallID__Alternatives)
+{ after(grammarAccess.getFeatureCallIDAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleIdOrSuper
+entryRuleIdOrSuper
+:
+{ before(grammarAccess.getIdOrSuperRule()); }
+ ruleIdOrSuper
+{ after(grammarAccess.getIdOrSuperRule()); }
+ EOF
+;
+
+// Rule IdOrSuper
+ruleIdOrSuper
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getIdOrSuperAccess().getAlternatives()); }
+(rule__IdOrSuper__Alternatives)
+{ after(grammarAccess.getIdOrSuperAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXConstructorCall
+entryRuleXConstructorCall
+:
+{ before(grammarAccess.getXConstructorCallRule()); }
+ ruleXConstructorCall
+{ after(grammarAccess.getXConstructorCallRule()); }
+ EOF
+;
+
+// Rule XConstructorCall
+ruleXConstructorCall
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXConstructorCallAccess().getGroup()); }
+(rule__XConstructorCall__Group__0)
+{ after(grammarAccess.getXConstructorCallAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXBooleanLiteral
+entryRuleXBooleanLiteral
+:
+{ before(grammarAccess.getXBooleanLiteralRule()); }
+ ruleXBooleanLiteral
+{ after(grammarAccess.getXBooleanLiteralRule()); }
+ EOF
+;
+
+// Rule XBooleanLiteral
+ruleXBooleanLiteral
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXBooleanLiteralAccess().getGroup()); }
+(rule__XBooleanLiteral__Group__0)
+{ after(grammarAccess.getXBooleanLiteralAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXNullLiteral
+entryRuleXNullLiteral
+:
+{ before(grammarAccess.getXNullLiteralRule()); }
+ ruleXNullLiteral
+{ after(grammarAccess.getXNullLiteralRule()); }
+ EOF
+;
+
+// Rule XNullLiteral
+ruleXNullLiteral
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXNullLiteralAccess().getGroup()); }
+(rule__XNullLiteral__Group__0)
+{ after(grammarAccess.getXNullLiteralAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXNumberLiteral
+entryRuleXNumberLiteral
+:
+{ before(grammarAccess.getXNumberLiteralRule()); }
+ ruleXNumberLiteral
+{ after(grammarAccess.getXNumberLiteralRule()); }
+ EOF
+;
+
+// Rule XNumberLiteral
+ruleXNumberLiteral
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXNumberLiteralAccess().getGroup()); }
+(rule__XNumberLiteral__Group__0)
+{ after(grammarAccess.getXNumberLiteralAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXStringLiteral
+entryRuleXStringLiteral
+:
+{ before(grammarAccess.getXStringLiteralRule()); }
+ ruleXStringLiteral
+{ after(grammarAccess.getXStringLiteralRule()); }
+ EOF
+;
+
+// Rule XStringLiteral
+ruleXStringLiteral
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXStringLiteralAccess().getGroup()); }
+(rule__XStringLiteral__Group__0)
+{ after(grammarAccess.getXStringLiteralAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXTypeLiteral
+entryRuleXTypeLiteral
+:
+{ before(grammarAccess.getXTypeLiteralRule()); }
+ ruleXTypeLiteral
+{ after(grammarAccess.getXTypeLiteralRule()); }
+ EOF
+;
+
+// Rule XTypeLiteral
+ruleXTypeLiteral
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXTypeLiteralAccess().getGroup()); }
+(rule__XTypeLiteral__Group__0)
+{ after(grammarAccess.getXTypeLiteralAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXThrowExpression
+entryRuleXThrowExpression
+:
+{ before(grammarAccess.getXThrowExpressionRule()); }
+ ruleXThrowExpression
+{ after(grammarAccess.getXThrowExpressionRule()); }
+ EOF
+;
+
+// Rule XThrowExpression
+ruleXThrowExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXThrowExpressionAccess().getGroup()); }
+(rule__XThrowExpression__Group__0)
+{ after(grammarAccess.getXThrowExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXReturnExpression
+entryRuleXReturnExpression
+:
+{ before(grammarAccess.getXReturnExpressionRule()); }
+ ruleXReturnExpression
+{ after(grammarAccess.getXReturnExpressionRule()); }
+ EOF
+;
+
+// Rule XReturnExpression
+ruleXReturnExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXReturnExpressionAccess().getGroup()); }
+(rule__XReturnExpression__Group__0)
+{ after(grammarAccess.getXReturnExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXTryCatchFinallyExpression
+entryRuleXTryCatchFinallyExpression
+:
+{ before(grammarAccess.getXTryCatchFinallyExpressionRule()); }
+ ruleXTryCatchFinallyExpression
+{ after(grammarAccess.getXTryCatchFinallyExpressionRule()); }
+ EOF
+;
+
+// Rule XTryCatchFinallyExpression
+ruleXTryCatchFinallyExpression
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); }
+(rule__XTryCatchFinallyExpression__Group__0)
+{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXCatchClause
+entryRuleXCatchClause
+:
+{ before(grammarAccess.getXCatchClauseRule()); }
+ ruleXCatchClause
+{ after(grammarAccess.getXCatchClauseRule()); }
+ EOF
+;
+
+// Rule XCatchClause
+ruleXCatchClause
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXCatchClauseAccess().getGroup()); }
+(rule__XCatchClause__Group__0)
+{ after(grammarAccess.getXCatchClauseAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleQualifiedName
+entryRuleQualifiedName
+:
+{ before(grammarAccess.getQualifiedNameRule()); }
+ ruleQualifiedName
+{ after(grammarAccess.getQualifiedNameRule()); }
+ EOF
+;
+
+// Rule QualifiedName
+ruleQualifiedName
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getQualifiedNameAccess().getGroup()); }
+(rule__QualifiedName__Group__0)
+{ after(grammarAccess.getQualifiedNameAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNumber
+entryRuleNumber
+@init {
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+}
+:
+{ before(grammarAccess.getNumberRule()); }
+ ruleNumber
+{ after(grammarAccess.getNumberRule()); }
+ EOF
+;
+finally {
+ myHiddenTokenState.restore();
+}
+
+// Rule Number
+ruleNumber
+ @init {
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getNumberAccess().getAlternatives()); }
+(rule__Number__Alternatives)
+{ after(grammarAccess.getNumberAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+ myHiddenTokenState.restore();
+}
+
+
+
+
+
+// Entry rule entryRuleJvmTypeReference
+entryRuleJvmTypeReference
+:
+{ before(grammarAccess.getJvmTypeReferenceRule()); }
+ ruleJvmTypeReference
+{ after(grammarAccess.getJvmTypeReferenceRule()); }
+ EOF
+;
+
+// Rule JvmTypeReference
+ruleJvmTypeReference
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); }
+(rule__JvmTypeReference__Alternatives)
+{ after(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleArrayBrackets
+entryRuleArrayBrackets
+:
+{ before(grammarAccess.getArrayBracketsRule()); }
+ ruleArrayBrackets
+{ after(grammarAccess.getArrayBracketsRule()); }
+ EOF
+;
+
+// Rule ArrayBrackets
+ruleArrayBrackets
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getArrayBracketsAccess().getGroup()); }
+(rule__ArrayBrackets__Group__0)
+{ after(grammarAccess.getArrayBracketsAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXFunctionTypeRef
+entryRuleXFunctionTypeRef
+:
+{ before(grammarAccess.getXFunctionTypeRefRule()); }
+ ruleXFunctionTypeRef
+{ after(grammarAccess.getXFunctionTypeRefRule()); }
+ EOF
+;
+
+// Rule XFunctionTypeRef
+ruleXFunctionTypeRef
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXFunctionTypeRefAccess().getGroup()); }
+(rule__XFunctionTypeRef__Group__0)
+{ after(grammarAccess.getXFunctionTypeRefAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleJvmParameterizedTypeReference
+entryRuleJvmParameterizedTypeReference
+:
+{ before(grammarAccess.getJvmParameterizedTypeReferenceRule()); }
+ ruleJvmParameterizedTypeReference
+{ after(grammarAccess.getJvmParameterizedTypeReferenceRule()); }
+ EOF
+;
+
+// Rule JvmParameterizedTypeReference
+ruleJvmParameterizedTypeReference
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); }
+(rule__JvmParameterizedTypeReference__Group__0)
+{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleJvmArgumentTypeReference
+entryRuleJvmArgumentTypeReference
+:
+{ before(grammarAccess.getJvmArgumentTypeReferenceRule()); }
+ ruleJvmArgumentTypeReference
+{ after(grammarAccess.getJvmArgumentTypeReferenceRule()); }
+ EOF
+;
+
+// Rule JvmArgumentTypeReference
+ruleJvmArgumentTypeReference
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); }
+(rule__JvmArgumentTypeReference__Alternatives)
+{ after(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleJvmWildcardTypeReference
+entryRuleJvmWildcardTypeReference
+:
+{ before(grammarAccess.getJvmWildcardTypeReferenceRule()); }
+ ruleJvmWildcardTypeReference
+{ after(grammarAccess.getJvmWildcardTypeReferenceRule()); }
+ EOF
+;
+
+// Rule JvmWildcardTypeReference
+ruleJvmWildcardTypeReference
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); }
+(rule__JvmWildcardTypeReference__Group__0)
+{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleJvmUpperBound
+entryRuleJvmUpperBound
+:
+{ before(grammarAccess.getJvmUpperBoundRule()); }
+ ruleJvmUpperBound
+{ after(grammarAccess.getJvmUpperBoundRule()); }
+ EOF
+;
+
+// Rule JvmUpperBound
+ruleJvmUpperBound
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getJvmUpperBoundAccess().getGroup()); }
+(rule__JvmUpperBound__Group__0)
+{ after(grammarAccess.getJvmUpperBoundAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleJvmUpperBoundAnded
+entryRuleJvmUpperBoundAnded
+:
+{ before(grammarAccess.getJvmUpperBoundAndedRule()); }
+ ruleJvmUpperBoundAnded
+{ after(grammarAccess.getJvmUpperBoundAndedRule()); }
+ EOF
+;
+
+// Rule JvmUpperBoundAnded
+ruleJvmUpperBoundAnded
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); }
+(rule__JvmUpperBoundAnded__Group__0)
+{ after(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleJvmLowerBound
+entryRuleJvmLowerBound
+:
+{ before(grammarAccess.getJvmLowerBoundRule()); }
+ ruleJvmLowerBound
+{ after(grammarAccess.getJvmLowerBoundRule()); }
+ EOF
+;
+
+// Rule JvmLowerBound
+ruleJvmLowerBound
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getJvmLowerBoundAccess().getGroup()); }
+(rule__JvmLowerBound__Group__0)
+{ after(grammarAccess.getJvmLowerBoundAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+// Entry rule entryRuleQualifiedNameWithWildcard
+entryRuleQualifiedNameWithWildcard
+:
+{ before(grammarAccess.getQualifiedNameWithWildcardRule()); }
+ ruleQualifiedNameWithWildcard
+{ after(grammarAccess.getQualifiedNameWithWildcardRule()); }
+ EOF
+;
+
+// Rule QualifiedNameWithWildcard
+ruleQualifiedNameWithWildcard
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); }
+(rule__QualifiedNameWithWildcard__Group__0)
+{ after(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleValidID
+entryRuleValidID
+:
+{ before(grammarAccess.getValidIDRule()); }
+ ruleValidID
+{ after(grammarAccess.getValidIDRule()); }
+ EOF
+;
+
+// Rule ValidID
+ruleValidID
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); }
+ RULE_ID
+{ after(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXImportSection
+entryRuleXImportSection
+:
+{ before(grammarAccess.getXImportSectionRule()); }
+ ruleXImportSection
+{ after(grammarAccess.getXImportSectionRule()); }
+ EOF
+;
+
+// Rule XImportSection
+ruleXImportSection
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+(
+{ before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); }
+(rule__XImportSection__ImportDeclarationsAssignment)
+{ after(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); }
+)
+(
+{ before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); }
+(rule__XImportSection__ImportDeclarationsAssignment)*
+{ after(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment()); }
+)
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleXImportDeclaration
+entryRuleXImportDeclaration
+:
+{ before(grammarAccess.getXImportDeclarationRule()); }
+ ruleXImportDeclaration
+{ after(grammarAccess.getXImportDeclarationRule()); }
+ EOF
+;
+
+// Rule XImportDeclaration
+ruleXImportDeclaration
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getGroup()); }
+(rule__XImportDeclaration__Group__0)
+{ after(grammarAccess.getXImportDeclarationAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+rule__XAssignment__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getGroup_0()); }
+(rule__XAssignment__Group_0__0)
+{ after(grammarAccess.getXAssignmentAccess().getGroup_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXAssignmentAccess().getGroup_1()); }
+(rule__XAssignment__Group_1__0)
+{ after(grammarAccess.getXAssignmentAccess().getGroup_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); }
+
+ '+='
+
+{ after(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); }
+)
+
+ |(
+{ before(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); }
+
+ '-='
+
+{ after(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpEquality__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); }
+
+ '=='
+
+{ after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); }
+)
+
+ |(
+{ before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); }
+
+ '!='
+
+{ after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); }
+)
+
+ |(
+{ before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); }
+
+ '==='
+
+{ after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); }
+)
+
+ |(
+{ before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); }
+
+ '!=='
+
+{ after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Alternatives_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); }
+(rule__XRelationalExpression__Group_1_0__0)
+{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); }
+(rule__XRelationalExpression__Group_1_1__0)
+{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpCompare__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); }
+
+ '>='
+
+{ after(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); }
+)
+
+ |(
+{ before(grammarAccess.getOpCompareAccess().getLessThanSignEqualsSignKeyword_1()); }
+
+ '<='
+
+{ after(grammarAccess.getOpCompareAccess().getLessThanSignEqualsSignKeyword_1()); }
+)
+
+ |(
+{ before(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); }
+
+ '>'
+
+{ after(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); }
+)
+
+ |(
+{ before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); }
+
+ '<'
+
+{ after(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpOther__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); }
+
+ '->'
+
+{ after(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); }
+)
+
+ |(
+{ before(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); }
+
+ '..<'
+
+{ after(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); }
+)
+
+ |(
+{ before(grammarAccess.getOpOtherAccess().getGroup_2()); }
+(rule__OpOther__Group_2__0)
+{ after(grammarAccess.getOpOtherAccess().getGroup_2()); }
+)
+
+ |(
+{ before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); }
+
+ '..'
+
+{ after(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); }
+)
+
+ |(
+{ before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); }
+
+ '=>'
+
+{ after(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); }
+)
+
+ |(
+{ before(grammarAccess.getOpOtherAccess().getGroup_5()); }
+(rule__OpOther__Group_5__0)
+{ after(grammarAccess.getOpOtherAccess().getGroup_5()); }
+)
+
+ |(
+{ before(grammarAccess.getOpOtherAccess().getGroup_6()); }
+(rule__OpOther__Group_6__0)
+{ after(grammarAccess.getOpOtherAccess().getGroup_6()); }
+)
+
+ |(
+{ before(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); }
+
+ '<>'
+
+{ after(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); }
+)
+
+ |(
+{ before(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); }
+
+ '?:'
+
+{ after(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); }
+)
+
+ |(
+{ before(grammarAccess.getOpOtherAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_9()); }
+
+ '<=>'
+
+{ after(grammarAccess.getOpOtherAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_9()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpOther__Alternatives_5_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); }
+(rule__OpOther__Group_5_1_0__0)
+{ after(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); }
+)
+
+ |(
+{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); }
+
+ '>'
+
+{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpOther__Alternatives_6_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); }
+(rule__OpOther__Group_6_1_0__0)
+{ after(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); }
+)
+
+ |(
+{ before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); }
+
+ '<'
+
+{ after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpAdd__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); }
+
+ '+'
+
+{ after(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); }
+)
+
+ |(
+{ before(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); }
+
+ '-'
+
+{ after(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpMulti__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); }
+
+ '*'
+
+{ after(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); }
+)
+
+ |(
+{ before(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); }
+
+ '**'
+
+{ after(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); }
+)
+
+ |(
+{ before(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); }
+
+ '/'
+
+{ after(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); }
+)
+
+ |(
+{ before(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); }
+
+ '%'
+
+{ after(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XUnaryOperation__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXUnaryOperationAccess().getGroup_0()); }
+(rule__XUnaryOperation__Group_0__0)
+{ after(grammarAccess.getXUnaryOperationAccess().getGroup_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); }
+ ruleXCastedExpression
+{ after(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpUnary__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); }
+
+ '!'
+
+{ after(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); }
+)
+
+ |(
+{ before(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); }
+
+ '-'
+
+{ after(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); }
+)
+
+ |(
+{ before(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); }
+
+ '+'
+
+{ after(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Alternatives_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); }
+(rule__XMemberFeatureCall__Group_1_0__0)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); }
+(rule__XMemberFeatureCall__Group_1_1__0)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); }
+
+ '.'
+
+{ after(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1()); }
+(rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); }
+
+ '.'
+
+{ after(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1()); }
+(rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1()); }
+)
+
+ |(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2()); }
+(rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Alternatives_1_1_3_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); }
+(rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); }
+(rule__XMemberFeatureCall__Group_1_1_3_1_1__0)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XPrimaryExpression__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); }
+ ruleXConstructorCall
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); }
+ ruleXBlockExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); }
+)
+
+ |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); }
+ ruleXSwitchExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); }
+)
+
+ |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_3()); }
+ ruleXFeatureCall
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_3()); }
+)
+
+ |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_4()); }
+ ruleXLiteral
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_4()); }
+)
+
+ |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_5()); }
+ ruleXIfExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_5()); }
+)
+
+ |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_6()); }
+ ruleXForLoopExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_6()); }
+)
+
+ |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_7()); }
+ ruleXWhileExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_7()); }
+)
+
+ |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_8()); }
+ ruleXDoWhileExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_8()); }
+)
+
+ |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_9()); }
+ ruleXThrowExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_9()); }
+)
+
+ |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_10()); }
+ ruleXReturnExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_10()); }
+)
+
+ |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_11()); }
+ ruleXTryCatchFinallyExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_11()); }
+)
+
+ |(
+{ before(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_12()); }
+ ruleXParenthesizedExpression
+{ after(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_12()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XLiteral__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); }
+ ruleXCollectionLiteral
+{ after(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); }
+( ruleXClosure)
+{ after(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); }
+)
+
+ |(
+{ before(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); }
+ ruleXBooleanLiteral
+{ after(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); }
+)
+
+ |(
+{ before(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); }
+ ruleXNumberLiteral
+{ after(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); }
+)
+
+ |(
+{ before(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); }
+ ruleXNullLiteral
+{ after(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); }
+)
+
+ |(
+{ before(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); }
+ ruleXStringLiteral
+{ after(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); }
+)
+
+ |(
+{ before(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); }
+ ruleXTypeLiteral
+{ after(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCollectionLiteral__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); }
+ ruleXSetLiteral
+{ after(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); }
+ ruleXListLiteral
+{ after(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Alternatives_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); }
+(rule__XSwitchExpression__Group_2_0__0)
+{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); }
+(rule__XSwitchExpression__Group_2_1__0)
+{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XExpressionInsideBlock__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXExpressionInsideBlockAccess().getXVariableDeclarationParserRuleCall_0()); }
+ ruleXVariableDeclaration
+{ after(grammarAccess.getXExpressionInsideBlockAccess().getXVariableDeclarationParserRuleCall_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXExpressionInsideBlockAccess().getXExpressionParserRuleCall_1()); }
+ ruleXExpression
+{ after(grammarAccess.getXExpressionInsideBlockAccess().getXExpressionParserRuleCall_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Alternatives_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); }
+(rule__XVariableDeclaration__WriteableAssignment_1_0)
+{ after(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); }
+
+ 'val'
+
+{ after(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Alternatives_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); }
+(rule__XVariableDeclaration__Group_2_0__0)
+{ after(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); }
+(rule__XVariableDeclaration__NameAssignment_2_1)
+{ after(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Alternatives_3_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); }
+(rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0)
+{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); }
+(rule__XFeatureCall__Group_3_1_1__0)
+{ after(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeatureCallID__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); }
+ ruleValidID
+{ after(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); }
+)
+
+ |(
+{ before(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); }
+
+ 'extends'
+
+{ after(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); }
+)
+
+ |(
+{ before(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); }
+
+ 'static'
+
+{ after(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); }
+)
+
+ |(
+{ before(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); }
+
+ 'import'
+
+{ after(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); }
+)
+
+ |(
+{ before(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); }
+
+ 'extension'
+
+{ after(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__IdOrSuper__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); }
+ ruleFeatureCallID
+{ after(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); }
+)
+
+ |(
+{ before(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); }
+
+ 'super'
+
+{ after(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Alternatives_4_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); }
+(rule__XConstructorCall__ArgumentsAssignment_4_1_0)
+{ after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); }
+(rule__XConstructorCall__Group_4_1_1__0)
+{ after(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XBooleanLiteral__Alternatives_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); }
+
+ 'false'
+
+{ after(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); }
+(rule__XBooleanLiteral__IsTrueAssignment_1_1)
+{ after(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Alternatives_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); }
+(rule__XTryCatchFinallyExpression__Group_3_0__0)
+{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); }
+(rule__XTryCatchFinallyExpression__Group_3_1__0)
+{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Number__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); }
+ RULE_HEX
+{ after(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); }
+)
+
+ |(
+{ before(grammarAccess.getNumberAccess().getGroup_1()); }
+(rule__Number__Group_1__0)
+{ after(grammarAccess.getNumberAccess().getGroup_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Number__Alternatives_1_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); }
+ RULE_INT
+{ after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); }
+)
+
+ |(
+{ before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); }
+ RULE_DECIMAL
+{ after(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Number__Alternatives_1_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); }
+ RULE_INT
+{ after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); }
+)
+
+ |(
+{ before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); }
+ RULE_DECIMAL
+{ after(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmTypeReference__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); }
+(rule__JvmTypeReference__Group_0__0)
+{ after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); }
+)
+
+ |(
+{ before(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); }
+ ruleXFunctionTypeRef
+{ after(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmArgumentTypeReference__Alternatives
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); }
+ ruleJvmTypeReference
+{ after(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); }
+)
+
+ |(
+{ before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); }
+ ruleJvmWildcardTypeReference
+{ after(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__Alternatives_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0()); }
+(rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0)
+{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0()); }
+)
+
+ |(
+{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1()); }
+(rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1)
+{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XImportDeclaration__Alternatives_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getGroup_1_0()); }
+(rule__XImportDeclaration__Group_1_0__0)
+{ after(grammarAccess.getXImportDeclarationAccess().getGroup_1_0()); }
+)
+
+ |(
+{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1()); }
+(rule__XImportDeclaration__ImportedTypeAssignment_1_1)
+{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1()); }
+)
+
+ |(
+{ before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2()); }
+(rule__XImportDeclaration__ImportedNamespaceAssignment_1_2)
+{ after(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+rule__Model__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Model__Group__0__Impl
+ rule__Model__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Model__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModelAccess().getImportSectionAssignment_0()); }
+(rule__Model__ImportSectionAssignment_0)?
+{ after(grammarAccess.getModelAccess().getImportSectionAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Model__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Model__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Model__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModelAccess().getModuleAssignment_1()); }
+(rule__Model__ModuleAssignment_1)
+{ after(grammarAccess.getModelAccess().getModuleAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Module__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__Group__0__Impl
+ rule__Module__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getModuleKeyword_0()); }
+
+ 'module'
+
+{ after(grammarAccess.getModuleAccess().getModuleKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__Group__1__Impl
+ rule__Module__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getNameAssignment_1()); }
+(rule__Module__NameAssignment_1)
+{ after(grammarAccess.getModuleAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__Group__2__Impl
+ rule__Module__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getExtendsClauseAssignment_2()); }
+(rule__Module__ExtendsClauseAssignment_2)?
+{ after(grammarAccess.getModuleAccess().getExtendsClauseAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__Group__3__Impl
+ rule__Module__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_3()); }
+
+ '{'
+
+{ after(grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__Group__4__Impl
+ rule__Module__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getUnorderedGroup_4()); }
+(rule__Module__UnorderedGroup_4)
+{ after(grammarAccess.getModuleAccess().getUnorderedGroup_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_5()); }
+
+ '}'
+
+{ after(grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Module__Group_4_6__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__Group_4_6__0__Impl
+ rule__Module__Group_4_6__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__Group_4_6__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getPartsKeyword_4_6_0()); }
+
+ 'parts'
+
+{ after(grammarAccess.getModuleAccess().getPartsKeyword_4_6_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__Group_4_6__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__Group_4_6__1__Impl
+ rule__Module__Group_4_6__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__Group_4_6__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_4_6_1()); }
+
+ '{'
+
+{ after(grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_4_6_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__Group_4_6__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__Group_4_6__2__Impl
+ rule__Module__Group_4_6__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__Group_4_6__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getPartsAssignment_4_6_2()); }
+(rule__Module__PartsAssignment_4_6_2)*
+{ after(grammarAccess.getModuleAccess().getPartsAssignment_4_6_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__Group_4_6__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__Group_4_6__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__Group_4_6__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_4_6_3()); }
+
+ '}'
+
+{ after(grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_4_6_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__ExtendsClause__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ExtendsClause__Group__0__Impl
+ rule__ExtendsClause__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ExtendsClause__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getExtendsClauseAccess().getExtendsKeyword_0()); }
+
+ 'extends'
+
+{ after(grammarAccess.getExtendsClauseAccess().getExtendsKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ExtendsClause__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ExtendsClause__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ExtendsClause__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getExtendsClauseAccess().getSuperTypeAssignment_1()); }
+(rule__ExtendsClause__SuperTypeAssignment_1)
+{ after(grammarAccess.getExtendsClauseAccess().getSuperTypeAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__LabelProvider__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelProvider__Group__0__Impl
+ rule__LabelProvider__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelProvider__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelProviderAccess().getLabelProviderAction_0()); }
+(
+
+)
+{ after(grammarAccess.getLabelProviderAccess().getLabelProviderAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LabelProvider__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelProvider__Group__1__Impl
+ rule__LabelProvider__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelProvider__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelProviderAccess().getLabelProviderKeyword_1()); }
+
+ 'labelProvider'
+
+{ after(grammarAccess.getLabelProviderAccess().getLabelProviderKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LabelProvider__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelProvider__Group__2__Impl
+ rule__LabelProvider__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelProvider__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_2()); }
+
+ '{'
+
+{ after(grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LabelProvider__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelProvider__Group__3__Impl
+ rule__LabelProvider__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelProvider__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3()); }
+(rule__LabelProvider__UnorderedGroup_3)
+{ after(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LabelProvider__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelProvider__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelProvider__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_4()); }
+
+ '}'
+
+{ after(grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__LabelProvider__Group_3_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelProvider__Group_3_0__0__Impl
+ rule__LabelProvider__Group_3_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelProvider__Group_3_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0()); }
+
+ 'text'
+
+{ after(grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LabelProvider__Group_3_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelProvider__Group_3_0__1__Impl
+ rule__LabelProvider__Group_3_0__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelProvider__Group_3_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1()); }
+
+ '{'
+
+{ after(grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LabelProvider__Group_3_0__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelProvider__Group_3_0__2__Impl
+ rule__LabelProvider__Group_3_0__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelProvider__Group_3_0__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelProviderAccess().getLabelSpecificationsAssignment_3_0_2()); }
+(rule__LabelProvider__LabelSpecificationsAssignment_3_0_2)*
+{ after(grammarAccess.getLabelProviderAccess().getLabelSpecificationsAssignment_3_0_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LabelProvider__Group_3_0__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelProvider__Group_3_0__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelProvider__Group_3_0__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3()); }
+
+ '}'
+
+{ after(grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__LabelProvider__Group_3_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelProvider__Group_3_1__0__Impl
+ rule__LabelProvider__Group_3_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelProvider__Group_3_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0()); }
+
+ 'image'
+
+{ after(grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LabelProvider__Group_3_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelProvider__Group_3_1__1__Impl
+ rule__LabelProvider__Group_3_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelProvider__Group_3_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1()); }
+
+ '{'
+
+{ after(grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LabelProvider__Group_3_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelProvider__Group_3_1__2__Impl
+ rule__LabelProvider__Group_3_1__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelProvider__Group_3_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelProviderAccess().getImageSpecificationsAssignment_3_1_2()); }
+(rule__LabelProvider__ImageSpecificationsAssignment_3_1_2)*
+{ after(grammarAccess.getLabelProviderAccess().getImageSpecificationsAssignment_3_1_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LabelProvider__Group_3_1__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelProvider__Group_3_1__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelProvider__Group_3_1__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3()); }
+
+ '}'
+
+{ after(grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__LabelSpecification__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelSpecification__Group__0__Impl
+ rule__LabelSpecification__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelSpecification__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelSpecificationAccess().getParameterTypeAssignment_0()); }
+(rule__LabelSpecification__ParameterTypeAssignment_0)
+{ after(grammarAccess.getLabelSpecificationAccess().getParameterTypeAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LabelSpecification__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelSpecification__Group__1__Impl
+ rule__LabelSpecification__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelSpecification__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelSpecificationAccess().getNameAssignment_1()); }
+(rule__LabelSpecification__NameAssignment_1)?
+{ after(grammarAccess.getLabelSpecificationAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LabelSpecification__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelSpecification__Group__2__Impl
+ rule__LabelSpecification__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelSpecification__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_2()); }
+
+ '->'
+
+{ after(grammarAccess.getLabelSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LabelSpecification__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelSpecification__Group__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelSpecification__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelSpecificationAccess().getExpressionAssignment_3()); }
+(rule__LabelSpecification__ExpressionAssignment_3)
+{ after(grammarAccess.getLabelSpecificationAccess().getExpressionAssignment_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__PropertyDescriptionProvider__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PropertyDescriptionProvider__Group__0__Impl
+ rule__PropertyDescriptionProvider__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PropertyDescriptionProvider__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getPropertyDescriptionProviderAccess().getPropertyDescriptionProviderAction_0()); }
+(
+
+)
+{ after(grammarAccess.getPropertyDescriptionProviderAccess().getPropertyDescriptionProviderAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__PropertyDescriptionProvider__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PropertyDescriptionProvider__Group__1__Impl
+ rule__PropertyDescriptionProvider__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PropertyDescriptionProvider__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getPropertyDescriptionProviderAccess().getPropertyDescriptionProviderKeyword_1()); }
+
+ 'propertyDescriptionProvider'
+
+{ after(grammarAccess.getPropertyDescriptionProviderAccess().getPropertyDescriptionProviderKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__PropertyDescriptionProvider__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PropertyDescriptionProvider__Group__2__Impl
+ rule__PropertyDescriptionProvider__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PropertyDescriptionProvider__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getPropertyDescriptionProviderAccess().getLeftCurlyBracketKeyword_2()); }
+
+ '{'
+
+{ after(grammarAccess.getPropertyDescriptionProviderAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__PropertyDescriptionProvider__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PropertyDescriptionProvider__Group__3__Impl
+ rule__PropertyDescriptionProvider__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PropertyDescriptionProvider__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getPropertyDescriptionProviderAccess().getGroup_3()); }
+(rule__PropertyDescriptionProvider__Group_3__0)?
+{ after(grammarAccess.getPropertyDescriptionProviderAccess().getGroup_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__PropertyDescriptionProvider__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PropertyDescriptionProvider__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PropertyDescriptionProvider__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getPropertyDescriptionProviderAccess().getRightCurlyBracketKeyword_4()); }
+
+ '}'
+
+{ after(grammarAccess.getPropertyDescriptionProviderAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PropertyDescriptionProvider__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PropertyDescriptionProvider__Group_3__0__Impl
+ rule__PropertyDescriptionProvider__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PropertyDescriptionProvider__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getPropertyDescriptionProviderAccess().getTextKeyword_3_0()); }
+
+ 'text'
+
+{ after(grammarAccess.getPropertyDescriptionProviderAccess().getTextKeyword_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__PropertyDescriptionProvider__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PropertyDescriptionProvider__Group_3__1__Impl
+ rule__PropertyDescriptionProvider__Group_3__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PropertyDescriptionProvider__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getPropertyDescriptionProviderAccess().getLeftCurlyBracketKeyword_3_1()); }
+
+ '{'
+
+{ after(grammarAccess.getPropertyDescriptionProviderAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__PropertyDescriptionProvider__Group_3__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PropertyDescriptionProvider__Group_3__2__Impl
+ rule__PropertyDescriptionProvider__Group_3__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PropertyDescriptionProvider__Group_3__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getPropertyDescriptionProviderAccess().getLabelSpecificationsAssignment_3_2()); }
+(rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_2)*
+{ after(grammarAccess.getPropertyDescriptionProviderAccess().getLabelSpecificationsAssignment_3_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__PropertyDescriptionProvider__Group_3__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PropertyDescriptionProvider__Group_3__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PropertyDescriptionProvider__Group_3__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getPropertyDescriptionProviderAccess().getRightCurlyBracketKeyword_3_3()); }
+
+ '}'
+
+{ after(grammarAccess.getPropertyDescriptionProviderAccess().getRightCurlyBracketKeyword_3_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__PropertyDescriptionSpecification__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PropertyDescriptionSpecification__Group__0__Impl
+ rule__PropertyDescriptionSpecification__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PropertyDescriptionSpecification__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getParameterTypeAssignment_0()); }
+(rule__PropertyDescriptionSpecification__ParameterTypeAssignment_0)
+{ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getParameterTypeAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__PropertyDescriptionSpecification__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PropertyDescriptionSpecification__Group__1__Impl
+ rule__PropertyDescriptionSpecification__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PropertyDescriptionSpecification__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getColonKeyword_1()); }
+
+ ':'
+
+{ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getColonKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__PropertyDescriptionSpecification__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PropertyDescriptionSpecification__Group__2__Impl
+ rule__PropertyDescriptionSpecification__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PropertyDescriptionSpecification__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getFeatureAssignment_2()); }
+(rule__PropertyDescriptionSpecification__FeatureAssignment_2)
+{ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getFeatureAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__PropertyDescriptionSpecification__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PropertyDescriptionSpecification__Group__3__Impl
+ rule__PropertyDescriptionSpecification__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PropertyDescriptionSpecification__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_3()); }
+
+ '->'
+
+{ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__PropertyDescriptionSpecification__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__PropertyDescriptionSpecification__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PropertyDescriptionSpecification__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getExpressionAssignment_4()); }
+(rule__PropertyDescriptionSpecification__ExpressionAssignment_4)
+{ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getExpressionAssignment_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__FeaturesProvider__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FeaturesProvider__Group__0__Impl
+ rule__FeaturesProvider__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeaturesProvider__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeaturesProviderAccess().getFeaturesProviderAction_0()); }
+(
+
+)
+{ after(grammarAccess.getFeaturesProviderAccess().getFeaturesProviderAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FeaturesProvider__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FeaturesProvider__Group__1__Impl
+ rule__FeaturesProvider__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeaturesProvider__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeaturesProviderAccess().getFeaturesProviderKeyword_1()); }
+
+ 'featuresProvider'
+
+{ after(grammarAccess.getFeaturesProviderAccess().getFeaturesProviderKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FeaturesProvider__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FeaturesProvider__Group__2__Impl
+ rule__FeaturesProvider__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeaturesProvider__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeaturesProviderAccess().getLeftCurlyBracketKeyword_2()); }
+
+ '{'
+
+{ after(grammarAccess.getFeaturesProviderAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FeaturesProvider__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FeaturesProvider__Group__3__Impl
+ rule__FeaturesProvider__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeaturesProvider__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeaturesProviderAccess().getGroup_3()); }
+(rule__FeaturesProvider__Group_3__0)?
+{ after(grammarAccess.getFeaturesProviderAccess().getGroup_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FeaturesProvider__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FeaturesProvider__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeaturesProvider__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeaturesProviderAccess().getRightCurlyBracketKeyword_4()); }
+
+ '}'
+
+{ after(grammarAccess.getFeaturesProviderAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__FeaturesProvider__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FeaturesProvider__Group_3__0__Impl
+ rule__FeaturesProvider__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeaturesProvider__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeaturesProviderAccess().getFeaturesKeyword_3_0()); }
+
+ 'features'
+
+{ after(grammarAccess.getFeaturesProviderAccess().getFeaturesKeyword_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FeaturesProvider__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FeaturesProvider__Group_3__1__Impl
+ rule__FeaturesProvider__Group_3__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeaturesProvider__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeaturesProviderAccess().getLeftCurlyBracketKeyword_3_1()); }
+
+ '{'
+
+{ after(grammarAccess.getFeaturesProviderAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FeaturesProvider__Group_3__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FeaturesProvider__Group_3__2__Impl
+ rule__FeaturesProvider__Group_3__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeaturesProvider__Group_3__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeaturesProviderAccess().getFeatureSpecificationsAssignment_3_2()); }
+(rule__FeaturesProvider__FeatureSpecificationsAssignment_3_2)*
+{ after(grammarAccess.getFeaturesProviderAccess().getFeatureSpecificationsAssignment_3_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FeaturesProvider__Group_3__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FeaturesProvider__Group_3__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeaturesProvider__Group_3__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeaturesProviderAccess().getRightCurlyBracketKeyword_3_3()); }
+
+ '}'
+
+{ after(grammarAccess.getFeaturesProviderAccess().getRightCurlyBracketKeyword_3_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__FeatureSpecification__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FeatureSpecification__Group__0__Impl
+ rule__FeatureSpecification__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeatureSpecification__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeatureSpecificationAccess().getParameterTypeAssignment_0()); }
+(rule__FeatureSpecification__ParameterTypeAssignment_0)
+{ after(grammarAccess.getFeatureSpecificationAccess().getParameterTypeAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FeatureSpecification__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FeatureSpecification__Group__1__Impl
+ rule__FeatureSpecification__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeatureSpecification__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeatureSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_1()); }
+
+ '->'
+
+{ after(grammarAccess.getFeatureSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FeatureSpecification__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FeatureSpecification__Group__2__Impl
+ rule__FeatureSpecification__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeatureSpecification__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeatureSpecificationAccess().getFeaturesAssignment_2()); }
+(rule__FeatureSpecification__FeaturesAssignment_2)
+{ after(grammarAccess.getFeatureSpecificationAccess().getFeaturesAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FeatureSpecification__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FeatureSpecification__Group__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeatureSpecification__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeatureSpecificationAccess().getGroup_3()); }
+(rule__FeatureSpecification__Group_3__0)*
+{ after(grammarAccess.getFeatureSpecificationAccess().getGroup_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__FeatureSpecification__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FeatureSpecification__Group_3__0__Impl
+ rule__FeatureSpecification__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeatureSpecification__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeatureSpecificationAccess().getCommaKeyword_3_0()); }
+
+ ','
+
+{ after(grammarAccess.getFeatureSpecificationAccess().getCommaKeyword_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FeatureSpecification__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FeatureSpecification__Group_3__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeatureSpecification__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeatureSpecificationAccess().getFeaturesAssignment_3_1()); }
+(rule__FeatureSpecification__FeaturesAssignment_3_1)
+{ after(grammarAccess.getFeatureSpecificationAccess().getFeaturesAssignment_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__FormControlFactory__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FormControlFactory__Group__0__Impl
+ rule__FormControlFactory__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlFactory__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlFactoryAccess().getFormControlFactoryAction_0()); }
+(
+
+)
+{ after(grammarAccess.getFormControlFactoryAccess().getFormControlFactoryAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FormControlFactory__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FormControlFactory__Group__1__Impl
+ rule__FormControlFactory__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlFactory__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlFactoryAccess().getFormControlFactoryKeyword_1()); }
+
+ 'formControlFactory'
+
+{ after(grammarAccess.getFormControlFactoryAccess().getFormControlFactoryKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FormControlFactory__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FormControlFactory__Group__2__Impl
+ rule__FormControlFactory__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlFactory__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlFactoryAccess().getLeftCurlyBracketKeyword_2()); }
+
+ '{'
+
+{ after(grammarAccess.getFormControlFactoryAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FormControlFactory__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FormControlFactory__Group__3__Impl
+ rule__FormControlFactory__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlFactory__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlFactoryAccess().getGroup_3()); }
+(rule__FormControlFactory__Group_3__0)?
+{ after(grammarAccess.getFormControlFactoryAccess().getGroup_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FormControlFactory__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FormControlFactory__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlFactory__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlFactoryAccess().getRightCurlyBracketKeyword_4()); }
+
+ '}'
+
+{ after(grammarAccess.getFormControlFactoryAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__FormControlFactory__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FormControlFactory__Group_3__0__Impl
+ rule__FormControlFactory__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlFactory__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlFactoryAccess().getControlKeyword_3_0()); }
+
+ 'control'
+
+{ after(grammarAccess.getFormControlFactoryAccess().getControlKeyword_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FormControlFactory__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FormControlFactory__Group_3__1__Impl
+ rule__FormControlFactory__Group_3__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlFactory__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlFactoryAccess().getLeftCurlyBracketKeyword_3_1()); }
+
+ '{'
+
+{ after(grammarAccess.getFormControlFactoryAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FormControlFactory__Group_3__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FormControlFactory__Group_3__2__Impl
+ rule__FormControlFactory__Group_3__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlFactory__Group_3__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlFactoryAccess().getControlSpecificationsAssignment_3_2()); }
+(rule__FormControlFactory__ControlSpecificationsAssignment_3_2)*
+{ after(grammarAccess.getFormControlFactoryAccess().getControlSpecificationsAssignment_3_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FormControlFactory__Group_3__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FormControlFactory__Group_3__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlFactory__Group_3__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlFactoryAccess().getRightCurlyBracketKeyword_3_3()); }
+
+ '}'
+
+{ after(grammarAccess.getFormControlFactoryAccess().getRightCurlyBracketKeyword_3_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__FormControlSpecification__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FormControlSpecification__Group__0__Impl
+ rule__FormControlSpecification__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlSpecification__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlSpecificationAccess().getParameterTypeAssignment_0()); }
+(rule__FormControlSpecification__ParameterTypeAssignment_0)
+{ after(grammarAccess.getFormControlSpecificationAccess().getParameterTypeAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FormControlSpecification__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FormControlSpecification__Group__1__Impl
+ rule__FormControlSpecification__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlSpecification__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlSpecificationAccess().getColonKeyword_1()); }
+
+ ':'
+
+{ after(grammarAccess.getFormControlSpecificationAccess().getColonKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FormControlSpecification__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FormControlSpecification__Group__2__Impl
+ rule__FormControlSpecification__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlSpecification__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlSpecificationAccess().getFeatureAssignment_2()); }
+(rule__FormControlSpecification__FeatureAssignment_2)
+{ after(grammarAccess.getFormControlSpecificationAccess().getFeatureAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FormControlSpecification__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FormControlSpecification__Group__3__Impl
+ rule__FormControlSpecification__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlSpecification__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_3()); }
+
+ '->'
+
+{ after(grammarAccess.getFormControlSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FormControlSpecification__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FormControlSpecification__Group__4__Impl
+ rule__FormControlSpecification__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlSpecification__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlSpecificationAccess().getExpressionAssignment_4()); }
+(rule__FormControlSpecification__ExpressionAssignment_4)
+{ after(grammarAccess.getFormControlSpecificationAccess().getExpressionAssignment_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FormControlSpecification__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FormControlSpecification__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlSpecification__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlSpecificationAccess().getGroup_5()); }
+(rule__FormControlSpecification__Group_5__0)?
+{ after(grammarAccess.getFormControlSpecificationAccess().getGroup_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__FormControlSpecification__Group_5__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FormControlSpecification__Group_5__0__Impl
+ rule__FormControlSpecification__Group_5__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlSpecification__Group_5__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlSpecificationAccess().getTargetKeyword_5_0()); }
+
+ 'target'
+
+{ after(grammarAccess.getFormControlSpecificationAccess().getTargetKeyword_5_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FormControlSpecification__Group_5__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FormControlSpecification__Group_5__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlSpecification__Group_5__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlSpecificationAccess().getTargetAssignment_5_1()); }
+(rule__FormControlSpecification__TargetAssignment_5_1)
+{ after(grammarAccess.getFormControlSpecificationAccess().getTargetAssignment_5_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ProposalCreator__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ProposalCreator__Group__0__Impl
+ rule__ProposalCreator__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ProposalCreator__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getProposalCreatorAccess().getProposalCreatorAction_0()); }
+(
+
+)
+{ after(grammarAccess.getProposalCreatorAccess().getProposalCreatorAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ProposalCreator__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ProposalCreator__Group__1__Impl
+ rule__ProposalCreator__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ProposalCreator__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getProposalCreatorAccess().getProposalsKeyword_1()); }
+
+ 'proposals'
+
+{ after(grammarAccess.getProposalCreatorAccess().getProposalsKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ProposalCreator__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ProposalCreator__Group__2__Impl
+ rule__ProposalCreator__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ProposalCreator__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getProposalCreatorAccess().getLeftCurlyBracketKeyword_2()); }
+
+ '{'
+
+{ after(grammarAccess.getProposalCreatorAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ProposalCreator__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ProposalCreator__Group__3__Impl
+ rule__ProposalCreator__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ProposalCreator__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getProposalCreatorAccess().getProposalsSpecificationsAssignment_3()); }
+(rule__ProposalCreator__ProposalsSpecificationsAssignment_3)*
+{ after(grammarAccess.getProposalCreatorAccess().getProposalsSpecificationsAssignment_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ProposalCreator__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ProposalCreator__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ProposalCreator__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getProposalCreatorAccess().getRightCurlyBracketKeyword_4()); }
+
+ '}'
+
+{ after(grammarAccess.getProposalCreatorAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ProposalSpecification__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ProposalSpecification__Group__0__Impl
+ rule__ProposalSpecification__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ProposalSpecification__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getProposalSpecificationAccess().getParameterTypeAssignment_0()); }
+(rule__ProposalSpecification__ParameterTypeAssignment_0)
+{ after(grammarAccess.getProposalSpecificationAccess().getParameterTypeAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ProposalSpecification__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ProposalSpecification__Group__1__Impl
+ rule__ProposalSpecification__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ProposalSpecification__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getProposalSpecificationAccess().getColonKeyword_1()); }
+
+ ':'
+
+{ after(grammarAccess.getProposalSpecificationAccess().getColonKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ProposalSpecification__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ProposalSpecification__Group__2__Impl
+ rule__ProposalSpecification__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ProposalSpecification__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getProposalSpecificationAccess().getFeatureAssignment_2()); }
+(rule__ProposalSpecification__FeatureAssignment_2)
+{ after(grammarAccess.getProposalSpecificationAccess().getFeatureAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ProposalSpecification__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ProposalSpecification__Group__3__Impl
+ rule__ProposalSpecification__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ProposalSpecification__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getProposalSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_3()); }
+
+ '->'
+
+{ after(grammarAccess.getProposalSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ProposalSpecification__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ProposalSpecification__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ProposalSpecification__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getProposalSpecificationAccess().getExpressionAssignment_4()); }
+(rule__ProposalSpecification__ExpressionAssignment_4)
+{ after(grammarAccess.getProposalSpecificationAccess().getExpressionAssignment_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ViewerContentProvider__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewerContentProvider__Group__0__Impl
+ rule__ViewerContentProvider__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewerContentProvider__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewerContentProviderAccess().getViewerContentProviderAction_0()); }
+(
+
+)
+{ after(grammarAccess.getViewerContentProviderAccess().getViewerContentProviderAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewerContentProvider__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewerContentProvider__Group__1__Impl
+ rule__ViewerContentProvider__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewerContentProvider__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewerContentProviderAccess().getViewerContentProviderKeyword_1()); }
+
+ 'viewerContentProvider'
+
+{ after(grammarAccess.getViewerContentProviderAccess().getViewerContentProviderKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewerContentProvider__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewerContentProvider__Group__2__Impl
+ rule__ViewerContentProvider__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewerContentProvider__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewerContentProviderAccess().getLeftCurlyBracketKeyword_2()); }
+
+ '{'
+
+{ after(grammarAccess.getViewerContentProviderAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewerContentProvider__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewerContentProvider__Group__3__Impl
+ rule__ViewerContentProvider__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewerContentProvider__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewerContentProviderAccess().getGroup_3()); }
+(rule__ViewerContentProvider__Group_3__0)?
+{ after(grammarAccess.getViewerContentProviderAccess().getGroup_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewerContentProvider__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewerContentProvider__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewerContentProvider__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewerContentProviderAccess().getRightCurlyBracketKeyword_4()); }
+
+ '}'
+
+{ after(grammarAccess.getViewerContentProviderAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ViewerContentProvider__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewerContentProvider__Group_3__0__Impl
+ rule__ViewerContentProvider__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewerContentProvider__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewerContentProviderAccess().getChildrenKeyword_3_0()); }
+
+ 'children'
+
+{ after(grammarAccess.getViewerContentProviderAccess().getChildrenKeyword_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewerContentProvider__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewerContentProvider__Group_3__1__Impl
+ rule__ViewerContentProvider__Group_3__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewerContentProvider__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewerContentProviderAccess().getLeftCurlyBracketKeyword_3_1()); }
+
+ '{'
+
+{ after(grammarAccess.getViewerContentProviderAccess().getLeftCurlyBracketKeyword_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewerContentProvider__Group_3__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewerContentProvider__Group_3__2__Impl
+ rule__ViewerContentProvider__Group_3__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewerContentProvider__Group_3__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewerContentProviderAccess().getChildrenSpecificationsAssignment_3_2()); }
+(rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_2)*
+{ after(grammarAccess.getViewerContentProviderAccess().getChildrenSpecificationsAssignment_3_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewerContentProvider__Group_3__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewerContentProvider__Group_3__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewerContentProvider__Group_3__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewerContentProviderAccess().getRightCurlyBracketKeyword_3_3()); }
+
+ '}'
+
+{ after(grammarAccess.getViewerContentProviderAccess().getRightCurlyBracketKeyword_3_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__ViewSpecification__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewSpecification__Group__0__Impl
+ rule__ViewSpecification__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewSpecification__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewSpecificationAccess().getViewSpecificationAction_0()); }
+(
+
+)
+{ after(grammarAccess.getViewSpecificationAccess().getViewSpecificationAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewSpecification__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewSpecification__Group__1__Impl
+ rule__ViewSpecification__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewSpecification__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewSpecificationAccess().getViewpartKeyword_1()); }
+
+ 'viewpart'
+
+{ after(grammarAccess.getViewSpecificationAccess().getViewpartKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewSpecification__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewSpecification__Group__2__Impl
+ rule__ViewSpecification__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewSpecification__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewSpecificationAccess().getIdAssignment_2()); }
+(rule__ViewSpecification__IdAssignment_2)
+{ after(grammarAccess.getViewSpecificationAccess().getIdAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewSpecification__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewSpecification__Group__3__Impl
+ rule__ViewSpecification__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewSpecification__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewSpecificationAccess().getLeftCurlyBracketKeyword_3()); }
+
+ '{'
+
+{ after(grammarAccess.getViewSpecificationAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewSpecification__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewSpecification__Group__4__Impl
+ rule__ViewSpecification__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewSpecification__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewSpecificationAccess().getViewnameKeyword_4()); }
+
+ 'viewname'
+
+{ after(grammarAccess.getViewSpecificationAccess().getViewnameKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewSpecification__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewSpecification__Group__5__Impl
+ rule__ViewSpecification__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewSpecification__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewSpecificationAccess().getViewNameAssignment_5()); }
+(rule__ViewSpecification__ViewNameAssignment_5)
+{ after(grammarAccess.getViewSpecificationAccess().getViewNameAssignment_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewSpecification__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewSpecification__Group__6__Impl
+ rule__ViewSpecification__Group__7
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewSpecification__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewSpecificationAccess().getViewclassKeyword_6()); }
+
+ 'viewclass'
+
+{ after(grammarAccess.getViewSpecificationAccess().getViewclassKeyword_6()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewSpecification__Group__7
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewSpecification__Group__7__Impl
+ rule__ViewSpecification__Group__8
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewSpecification__Group__7__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewSpecificationAccess().getTypeAssignment_7()); }
+(rule__ViewSpecification__TypeAssignment_7)
+{ after(grammarAccess.getViewSpecificationAccess().getTypeAssignment_7()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewSpecification__Group__8
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewSpecification__Group__8__Impl
+ rule__ViewSpecification__Group__9
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewSpecification__Group__8__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewSpecificationAccess().getGroup_8()); }
+(rule__ViewSpecification__Group_8__0)?
+{ after(grammarAccess.getViewSpecificationAccess().getGroup_8()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewSpecification__Group__9
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewSpecification__Group__9__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewSpecification__Group__9__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewSpecificationAccess().getRightCurlyBracketKeyword_9()); }
+
+ '}'
+
+{ after(grammarAccess.getViewSpecificationAccess().getRightCurlyBracketKeyword_9()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ViewSpecification__Group_8__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewSpecification__Group_8__0__Impl
+ rule__ViewSpecification__Group_8__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewSpecification__Group_8__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewSpecificationAccess().getViewcategoryKeyword_8_0()); }
+
+ 'viewcategory'
+
+{ after(grammarAccess.getViewSpecificationAccess().getViewcategoryKeyword_8_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ViewSpecification__Group_8__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ViewSpecification__Group_8__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewSpecification__Group_8__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewSpecificationAccess().getCategoryAssignment_8_1()); }
+(rule__ViewSpecification__CategoryAssignment_8_1)
+{ after(grammarAccess.getViewSpecificationAccess().getCategoryAssignment_8_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAssignment__Group_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAssignment__Group_0__0__Impl
+ rule__XAssignment__Group_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XAssignment__Group_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAssignment__Group_0__1__Impl
+ rule__XAssignment__Group_0__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); }
+(rule__XAssignment__FeatureAssignment_0_1)
+{ after(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XAssignment__Group_0__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAssignment__Group_0__2__Impl
+ rule__XAssignment__Group_0__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_0__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); }
+ ruleOpSingleAssign
+{ after(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XAssignment__Group_0__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAssignment__Group_0__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_0__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); }
+(rule__XAssignment__ValueAssignment_0_3)
+{ after(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__XAssignment__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAssignment__Group_1__0__Impl
+ rule__XAssignment__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); }
+ ruleXOrExpression
+{ after(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XAssignment__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAssignment__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getGroup_1_1()); }
+(rule__XAssignment__Group_1_1__0)?
+{ after(grammarAccess.getXAssignmentAccess().getGroup_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAssignment__Group_1_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAssignment__Group_1_1__0__Impl
+ rule__XAssignment__Group_1_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); }
+(rule__XAssignment__Group_1_1_0__0)
+{ after(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XAssignment__Group_1_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAssignment__Group_1_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); }
+(rule__XAssignment__RightOperandAssignment_1_1_1)
+{ after(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAssignment__Group_1_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAssignment__Group_1_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); }
+(rule__XAssignment__Group_1_1_0_0__0)
+{ after(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XAssignment__Group_1_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAssignment__Group_1_1_0_0__0__Impl
+ rule__XAssignment__Group_1_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XAssignment__Group_1_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAssignment__Group_1_1_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); }
+(rule__XAssignment__FeatureAssignment_1_1_0_0_1)
+{ after(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XOrExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XOrExpression__Group__0__Impl
+ rule__XOrExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); }
+ ruleXAndExpression
+{ after(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XOrExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XOrExpression__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXOrExpressionAccess().getGroup_1()); }
+(rule__XOrExpression__Group_1__0)*
+{ after(grammarAccess.getXOrExpressionAccess().getGroup_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XOrExpression__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XOrExpression__Group_1__0__Impl
+ rule__XOrExpression__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); }
+(rule__XOrExpression__Group_1_0__0)
+{ after(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XOrExpression__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XOrExpression__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); }
+(rule__XOrExpression__RightOperandAssignment_1_1)
+{ after(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XOrExpression__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XOrExpression__Group_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); }
+(rule__XOrExpression__Group_1_0_0__0)
+{ after(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XOrExpression__Group_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XOrExpression__Group_1_0_0__0__Impl
+ rule__XOrExpression__Group_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XOrExpression__Group_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XOrExpression__Group_1_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+(rule__XOrExpression__FeatureAssignment_1_0_0_1)
+{ after(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAndExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAndExpression__Group__0__Impl
+ rule__XAndExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); }
+ ruleXEqualityExpression
+{ after(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XAndExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAndExpression__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAndExpressionAccess().getGroup_1()); }
+(rule__XAndExpression__Group_1__0)*
+{ after(grammarAccess.getXAndExpressionAccess().getGroup_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAndExpression__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAndExpression__Group_1__0__Impl
+ rule__XAndExpression__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); }
+(rule__XAndExpression__Group_1_0__0)
+{ after(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XAndExpression__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAndExpression__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); }
+(rule__XAndExpression__RightOperandAssignment_1_1)
+{ after(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAndExpression__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAndExpression__Group_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); }
+(rule__XAndExpression__Group_1_0_0__0)
+{ after(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XAndExpression__Group_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAndExpression__Group_1_0_0__0__Impl
+ rule__XAndExpression__Group_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XAndExpression__Group_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAndExpression__Group_1_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+(rule__XAndExpression__FeatureAssignment_1_0_0_1)
+{ after(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XEqualityExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XEqualityExpression__Group__0__Impl
+ rule__XEqualityExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); }
+ ruleXRelationalExpression
+{ after(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XEqualityExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XEqualityExpression__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); }
+(rule__XEqualityExpression__Group_1__0)*
+{ after(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XEqualityExpression__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XEqualityExpression__Group_1__0__Impl
+ rule__XEqualityExpression__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); }
+(rule__XEqualityExpression__Group_1_0__0)
+{ after(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XEqualityExpression__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XEqualityExpression__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); }
+(rule__XEqualityExpression__RightOperandAssignment_1_1)
+{ after(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XEqualityExpression__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XEqualityExpression__Group_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); }
+(rule__XEqualityExpression__Group_1_0_0__0)
+{ after(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XEqualityExpression__Group_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XEqualityExpression__Group_1_0_0__0__Impl
+ rule__XEqualityExpression__Group_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XEqualityExpression__Group_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XEqualityExpression__Group_1_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+(rule__XEqualityExpression__FeatureAssignment_1_0_0_1)
+{ after(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XRelationalExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XRelationalExpression__Group__0__Impl
+ rule__XRelationalExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); }
+ ruleXOtherOperatorExpression
+{ after(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XRelationalExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XRelationalExpression__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); }
+(rule__XRelationalExpression__Alternatives_1)*
+{ after(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XRelationalExpression__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XRelationalExpression__Group_1_0__0__Impl
+ rule__XRelationalExpression__Group_1_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); }
+(rule__XRelationalExpression__Group_1_0_0__0)
+{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XRelationalExpression__Group_1_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XRelationalExpression__Group_1_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); }
+(rule__XRelationalExpression__TypeAssignment_1_0_1)
+{ after(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XRelationalExpression__Group_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XRelationalExpression__Group_1_0_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); }
+(rule__XRelationalExpression__Group_1_0_0_0__0)
+{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XRelationalExpression__Group_1_0_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XRelationalExpression__Group_1_0_0_0__0__Impl
+ rule__XRelationalExpression__Group_1_0_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_0_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XRelationalExpression__Group_1_0_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XRelationalExpression__Group_1_0_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_0_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); }
+
+ 'instanceof'
+
+{ after(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XRelationalExpression__Group_1_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XRelationalExpression__Group_1_1__0__Impl
+ rule__XRelationalExpression__Group_1_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); }
+(rule__XRelationalExpression__Group_1_1_0__0)
+{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XRelationalExpression__Group_1_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XRelationalExpression__Group_1_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); }
+(rule__XRelationalExpression__RightOperandAssignment_1_1_1)
+{ after(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XRelationalExpression__Group_1_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XRelationalExpression__Group_1_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); }
+(rule__XRelationalExpression__Group_1_1_0_0__0)
+{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XRelationalExpression__Group_1_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XRelationalExpression__Group_1_1_0_0__0__Impl
+ rule__XRelationalExpression__Group_1_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XRelationalExpression__Group_1_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XRelationalExpression__Group_1_1_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); }
+(rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1)
+{ after(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XOtherOperatorExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XOtherOperatorExpression__Group__0__Impl
+ rule__XOtherOperatorExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); }
+ ruleXAdditiveExpression
+{ after(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XOtherOperatorExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XOtherOperatorExpression__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); }
+(rule__XOtherOperatorExpression__Group_1__0)*
+{ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XOtherOperatorExpression__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XOtherOperatorExpression__Group_1__0__Impl
+ rule__XOtherOperatorExpression__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); }
+(rule__XOtherOperatorExpression__Group_1_0__0)
+{ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XOtherOperatorExpression__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XOtherOperatorExpression__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); }
+(rule__XOtherOperatorExpression__RightOperandAssignment_1_1)
+{ after(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XOtherOperatorExpression__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XOtherOperatorExpression__Group_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); }
+(rule__XOtherOperatorExpression__Group_1_0_0__0)
+{ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XOtherOperatorExpression__Group_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XOtherOperatorExpression__Group_1_0_0__0__Impl
+ rule__XOtherOperatorExpression__Group_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XOtherOperatorExpression__Group_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+(rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1)
+{ after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OpOther__Group_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OpOther__Group_2__0__Impl
+ rule__OpOther__Group_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); }
+
+ '>'
+
+{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__OpOther__Group_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OpOther__Group_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); }
+
+ '..'
+
+{ after(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OpOther__Group_5__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OpOther__Group_5__0__Impl
+ rule__OpOther__Group_5__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_5__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); }
+
+ '>'
+
+{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__OpOther__Group_5__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OpOther__Group_5__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_5__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); }
+(rule__OpOther__Alternatives_5_1)
+{ after(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OpOther__Group_5_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OpOther__Group_5_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_5_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); }
+(rule__OpOther__Group_5_1_0_0__0)
+{ after(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__OpOther__Group_5_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OpOther__Group_5_1_0_0__0__Impl
+ rule__OpOther__Group_5_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_5_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); }
+
+ '>'
+
+{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__OpOther__Group_5_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OpOther__Group_5_1_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_5_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); }
+
+ '>'
+
+{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OpOther__Group_6__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OpOther__Group_6__0__Impl
+ rule__OpOther__Group_6__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_6__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); }
+
+ '<'
+
+{ after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__OpOther__Group_6__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OpOther__Group_6__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_6__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getAlternatives_6_1()); }
+(rule__OpOther__Alternatives_6_1)
+{ after(grammarAccess.getOpOtherAccess().getAlternatives_6_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OpOther__Group_6_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OpOther__Group_6_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_6_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0()); }
+(rule__OpOther__Group_6_1_0_0__0)
+{ after(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__OpOther__Group_6_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OpOther__Group_6_1_0_0__0__Impl
+ rule__OpOther__Group_6_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_6_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); }
+
+ '<'
+
+{ after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__OpOther__Group_6_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__OpOther__Group_6_1_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_6_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); }
+
+ '<'
+
+{ after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAdditiveExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAdditiveExpression__Group__0__Impl
+ rule__XAdditiveExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); }
+ ruleXMultiplicativeExpression
+{ after(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XAdditiveExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAdditiveExpression__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1()); }
+(rule__XAdditiveExpression__Group_1__0)*
+{ after(grammarAccess.getXAdditiveExpressionAccess().getGroup_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAdditiveExpression__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAdditiveExpression__Group_1__0__Impl
+ rule__XAdditiveExpression__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0()); }
+(rule__XAdditiveExpression__Group_1_0__0)
+{ after(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XAdditiveExpression__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAdditiveExpression__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1()); }
+(rule__XAdditiveExpression__RightOperandAssignment_1_1)
+{ after(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAdditiveExpression__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAdditiveExpression__Group_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0()); }
+(rule__XAdditiveExpression__Group_1_0_0__0)
+{ after(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XAdditiveExpression__Group_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAdditiveExpression__Group_1_0_0__0__Impl
+ rule__XAdditiveExpression__Group_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__Group_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XAdditiveExpression__Group_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XAdditiveExpression__Group_1_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__Group_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+(rule__XAdditiveExpression__FeatureAssignment_1_0_0_1)
+{ after(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XMultiplicativeExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMultiplicativeExpression__Group__0__Impl
+ rule__XMultiplicativeExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); }
+ ruleXUnaryOperation
+{ after(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMultiplicativeExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMultiplicativeExpression__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1()); }
+(rule__XMultiplicativeExpression__Group_1__0)*
+{ after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XMultiplicativeExpression__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMultiplicativeExpression__Group_1__0__Impl
+ rule__XMultiplicativeExpression__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0()); }
+(rule__XMultiplicativeExpression__Group_1_0__0)
+{ after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMultiplicativeExpression__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMultiplicativeExpression__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1()); }
+(rule__XMultiplicativeExpression__RightOperandAssignment_1_1)
+{ after(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XMultiplicativeExpression__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMultiplicativeExpression__Group_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0()); }
+(rule__XMultiplicativeExpression__Group_1_0_0__0)
+{ after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XMultiplicativeExpression__Group_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMultiplicativeExpression__Group_1_0_0__0__Impl
+ rule__XMultiplicativeExpression__Group_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__Group_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMultiplicativeExpression__Group_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+(rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1)
+{ after(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XUnaryOperation__Group_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XUnaryOperation__Group_0__0__Impl
+ rule__XUnaryOperation__Group_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XUnaryOperation__Group_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XUnaryOperation__Group_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XUnaryOperation__Group_0__1__Impl
+ rule__XUnaryOperation__Group_0__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XUnaryOperation__Group_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1()); }
+(rule__XUnaryOperation__FeatureAssignment_0_1)
+{ after(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XUnaryOperation__Group_0__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XUnaryOperation__Group_0__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XUnaryOperation__Group_0__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2()); }
+(rule__XUnaryOperation__OperandAssignment_0_2)
+{ after(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XCastedExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XCastedExpression__Group__0__Impl
+ rule__XCastedExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCastedExpressionAccess().getXMemberFeatureCallParserRuleCall_0()); }
+ ruleXMemberFeatureCall
+{ after(grammarAccess.getXCastedExpressionAccess().getXMemberFeatureCallParserRuleCall_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XCastedExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XCastedExpression__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCastedExpressionAccess().getGroup_1()); }
+(rule__XCastedExpression__Group_1__0)*
+{ after(grammarAccess.getXCastedExpressionAccess().getGroup_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XCastedExpression__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XCastedExpression__Group_1__0__Impl
+ rule__XCastedExpression__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0()); }
+(rule__XCastedExpression__Group_1_0__0)
+{ after(grammarAccess.getXCastedExpressionAccess().getGroup_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XCastedExpression__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XCastedExpression__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1()); }
+(rule__XCastedExpression__TypeAssignment_1_1)
+{ after(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XCastedExpression__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XCastedExpression__Group_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0()); }
+(rule__XCastedExpression__Group_1_0_0__0)
+{ after(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XCastedExpression__Group_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XCastedExpression__Group_1_0_0__0__Impl
+ rule__XCastedExpression__Group_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__Group_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XCastedExpression__Group_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XCastedExpression__Group_1_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__Group_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); }
+
+ 'as'
+
+{ after(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XMemberFeatureCall__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group__0__Impl
+ rule__XMemberFeatureCall__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); }
+ ruleXPrimaryExpression
+{ after(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1()); }
+(rule__XMemberFeatureCall__Alternatives_1)*
+{ after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XMemberFeatureCall__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_0__0__Impl
+ rule__XMemberFeatureCall__Group_1_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0()); }
+(rule__XMemberFeatureCall__Group_1_0_0__0)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1()); }
+(rule__XMemberFeatureCall__ValueAssignment_1_0_1)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XMemberFeatureCall__Group_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_0_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0()); }
+(rule__XMemberFeatureCall__Group_1_0_0_0__0)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XMemberFeatureCall__Group_1_0_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl
+ rule__XMemberFeatureCall__Group_1_0_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_0_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl
+ rule__XMemberFeatureCall__Group_1_0_0_0__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1()); }
+(rule__XMemberFeatureCall__Alternatives_1_0_0_0_1)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_0_0_0__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl
+ rule__XMemberFeatureCall__Group_1_0_0_0__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2()); }
+(rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_0_0_0__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); }
+ ruleOpSingleAssign
+{ after(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__XMemberFeatureCall__Group_1_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1__0__Impl
+ rule__XMemberFeatureCall__Group_1_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0()); }
+(rule__XMemberFeatureCall__Group_1_1_0__0)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1__1__Impl
+ rule__XMemberFeatureCall__Group_1_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1()); }
+(rule__XMemberFeatureCall__Group_1_1_1__0)?
+{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1__2__Impl
+ rule__XMemberFeatureCall__Group_1_1__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2()); }
+(rule__XMemberFeatureCall__FeatureAssignment_1_1_2)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1__3__Impl
+ rule__XMemberFeatureCall__Group_1_1__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3()); }
+(rule__XMemberFeatureCall__Group_1_1_3__0)?
+{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4()); }
+(rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4)?
+{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__XMemberFeatureCall__Group_1_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0()); }
+(rule__XMemberFeatureCall__Group_1_1_0_0__0)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XMemberFeatureCall__Group_1_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl
+ rule__XMemberFeatureCall__Group_1_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1()); }
+(rule__XMemberFeatureCall__Alternatives_1_1_0_0_1)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XMemberFeatureCall__Group_1_1_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1_1__0__Impl
+ rule__XMemberFeatureCall__Group_1_1_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0()); }
+
+ '<'
+
+{ after(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1_1__1__Impl
+ rule__XMemberFeatureCall__Group_1_1_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1()); }
+(rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1_1__2__Impl
+ rule__XMemberFeatureCall__Group_1_1_1__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2()); }
+(rule__XMemberFeatureCall__Group_1_1_1_2__0)*
+{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1_1__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1_1__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_1__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3()); }
+
+ '>'
+
+{ after(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__XMemberFeatureCall__Group_1_1_1_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl
+ rule__XMemberFeatureCall__Group_1_1_1_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); }
+
+ ','
+
+{ after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1_1_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1()); }
+(rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XMemberFeatureCall__Group_1_1_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1_3__0__Impl
+ rule__XMemberFeatureCall__Group_1_1_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0()); }
+(rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1_3__1__Impl
+ rule__XMemberFeatureCall__Group_1_1_3__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1()); }
+(rule__XMemberFeatureCall__Alternatives_1_1_3_1)?
+{ after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1_3__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1_3__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_3__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); }
+
+ ')'
+
+{ after(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XMemberFeatureCall__Group_1_1_3_1_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl
+ rule__XMemberFeatureCall__Group_1_1_3_1_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0()); }
+(rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1_3_1_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1()); }
+(rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0)*
+{ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl
+ rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); }
+
+ ','
+
+{ after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1()); }
+(rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XSetLiteral__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSetLiteral__Group__0__Impl
+ rule__XSetLiteral__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSetLiteral__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSetLiteral__Group__1__Impl
+ rule__XSetLiteral__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); }
+
+ '#'
+
+{ after(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSetLiteral__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSetLiteral__Group__2__Impl
+ rule__XSetLiteral__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); }
+
+ '{'
+
+{ after(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSetLiteral__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSetLiteral__Group__3__Impl
+ rule__XSetLiteral__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSetLiteralAccess().getGroup_3()); }
+(rule__XSetLiteral__Group_3__0)?
+{ after(grammarAccess.getXSetLiteralAccess().getGroup_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSetLiteral__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSetLiteral__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); }
+
+ '}'
+
+{ after(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__XSetLiteral__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSetLiteral__Group_3__0__Impl
+ rule__XSetLiteral__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0()); }
+(rule__XSetLiteral__ElementsAssignment_3_0)
+{ after(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSetLiteral__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSetLiteral__Group_3__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSetLiteralAccess().getGroup_3_1()); }
+(rule__XSetLiteral__Group_3_1__0)*
+{ after(grammarAccess.getXSetLiteralAccess().getGroup_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XSetLiteral__Group_3_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSetLiteral__Group_3_1__0__Impl
+ rule__XSetLiteral__Group_3_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group_3_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); }
+
+ ','
+
+{ after(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSetLiteral__Group_3_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSetLiteral__Group_3_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__Group_3_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1()); }
+(rule__XSetLiteral__ElementsAssignment_3_1_1)
+{ after(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XListLiteral__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XListLiteral__Group__0__Impl
+ rule__XListLiteral__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XListLiteral__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XListLiteral__Group__1__Impl
+ rule__XListLiteral__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); }
+
+ '#'
+
+{ after(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XListLiteral__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XListLiteral__Group__2__Impl
+ rule__XListLiteral__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); }
+
+ '['
+
+{ after(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XListLiteral__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XListLiteral__Group__3__Impl
+ rule__XListLiteral__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXListLiteralAccess().getGroup_3()); }
+(rule__XListLiteral__Group_3__0)?
+{ after(grammarAccess.getXListLiteralAccess().getGroup_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XListLiteral__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XListLiteral__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); }
+
+ ']'
+
+{ after(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__XListLiteral__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XListLiteral__Group_3__0__Impl
+ rule__XListLiteral__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0()); }
+(rule__XListLiteral__ElementsAssignment_3_0)
+{ after(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XListLiteral__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XListLiteral__Group_3__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXListLiteralAccess().getGroup_3_1()); }
+(rule__XListLiteral__Group_3_1__0)*
+{ after(grammarAccess.getXListLiteralAccess().getGroup_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XListLiteral__Group_3_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XListLiteral__Group_3_1__0__Impl
+ rule__XListLiteral__Group_3_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group_3_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); }
+
+ ','
+
+{ after(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XListLiteral__Group_3_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XListLiteral__Group_3_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__Group_3_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1()); }
+(rule__XListLiteral__ElementsAssignment_3_1_1)
+{ after(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XClosure__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XClosure__Group__0__Impl
+ rule__XClosure__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXClosureAccess().getGroup_0()); }
+(rule__XClosure__Group_0__0)
+{ after(grammarAccess.getXClosureAccess().getGroup_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XClosure__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XClosure__Group__1__Impl
+ rule__XClosure__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXClosureAccess().getGroup_1()); }
+(rule__XClosure__Group_1__0)?
+{ after(grammarAccess.getXClosureAccess().getGroup_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XClosure__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XClosure__Group__2__Impl
+ rule__XClosure__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXClosureAccess().getExpressionAssignment_2()); }
+(rule__XClosure__ExpressionAssignment_2)
+{ after(grammarAccess.getXClosureAccess().getExpressionAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XClosure__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XClosure__Group__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); }
+
+ ']'
+
+{ after(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__XClosure__Group_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XClosure__Group_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXClosureAccess().getGroup_0_0()); }
+(rule__XClosure__Group_0_0__0)
+{ after(grammarAccess.getXClosureAccess().getGroup_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XClosure__Group_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XClosure__Group_0_0__0__Impl
+ rule__XClosure__Group_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XClosure__Group_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XClosure__Group_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); }
+
+ '['
+
+{ after(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XClosure__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XClosure__Group_1__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXClosureAccess().getGroup_1_0()); }
+(rule__XClosure__Group_1_0__0)
+{ after(grammarAccess.getXClosureAccess().getGroup_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XClosure__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XClosure__Group_1_0__0__Impl
+ rule__XClosure__Group_1_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXClosureAccess().getGroup_1_0_0()); }
+(rule__XClosure__Group_1_0_0__0)?
+{ after(grammarAccess.getXClosureAccess().getGroup_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XClosure__Group_1_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XClosure__Group_1_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_1_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1()); }
+(rule__XClosure__ExplicitSyntaxAssignment_1_0_1)
+{ after(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XClosure__Group_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XClosure__Group_1_0_0__0__Impl
+ rule__XClosure__Group_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0()); }
+(rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0)
+{ after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XClosure__Group_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XClosure__Group_1_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXClosureAccess().getGroup_1_0_0_1()); }
+(rule__XClosure__Group_1_0_0_1__0)*
+{ after(grammarAccess.getXClosureAccess().getGroup_1_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XClosure__Group_1_0_0_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XClosure__Group_1_0_0_1__0__Impl
+ rule__XClosure__Group_1_0_0_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_1_0_0_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); }
+
+ ','
+
+{ after(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XClosure__Group_1_0_0_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XClosure__Group_1_0_0_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XClosure__Group_1_0_0_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1()); }
+(rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1)
+{ after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XExpressionInClosure__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XExpressionInClosure__Group__0__Impl
+ rule__XExpressionInClosure__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XExpressionInClosure__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XExpressionInClosure__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XExpressionInClosure__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XExpressionInClosure__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXExpressionInClosureAccess().getGroup_1()); }
+(rule__XExpressionInClosure__Group_1__0)*
+{ after(grammarAccess.getXExpressionInClosureAccess().getGroup_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XExpressionInClosure__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XExpressionInClosure__Group_1__0__Impl
+ rule__XExpressionInClosure__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XExpressionInClosure__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0()); }
+(rule__XExpressionInClosure__ExpressionsAssignment_1_0)
+{ after(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XExpressionInClosure__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XExpressionInClosure__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XExpressionInClosure__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1()); }
+(
+ ';'
+)?
+{ after(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XShortClosure__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XShortClosure__Group__0__Impl
+ rule__XShortClosure__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXShortClosureAccess().getGroup_0()); }
+(rule__XShortClosure__Group_0__0)
+{ after(grammarAccess.getXShortClosureAccess().getGroup_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XShortClosure__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XShortClosure__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1()); }
+(rule__XShortClosure__ExpressionAssignment_1)
+{ after(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XShortClosure__Group_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XShortClosure__Group_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXShortClosureAccess().getGroup_0_0()); }
+(rule__XShortClosure__Group_0_0__0)
+{ after(grammarAccess.getXShortClosureAccess().getGroup_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XShortClosure__Group_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XShortClosure__Group_0_0__0__Impl
+ rule__XShortClosure__Group_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XShortClosure__Group_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XShortClosure__Group_0_0__1__Impl
+ rule__XShortClosure__Group_0_0__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1()); }
+(rule__XShortClosure__Group_0_0_1__0)?
+{ after(grammarAccess.getXShortClosureAccess().getGroup_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XShortClosure__Group_0_0__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XShortClosure__Group_0_0__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0_0__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2()); }
+(rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2)
+{ after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XShortClosure__Group_0_0_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XShortClosure__Group_0_0_1__0__Impl
+ rule__XShortClosure__Group_0_0_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0_0_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0()); }
+(rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0)
+{ after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XShortClosure__Group_0_0_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XShortClosure__Group_0_0_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0_0_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1()); }
+(rule__XShortClosure__Group_0_0_1_1__0)*
+{ after(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XShortClosure__Group_0_0_1_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XShortClosure__Group_0_0_1_1__0__Impl
+ rule__XShortClosure__Group_0_0_1_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0_0_1_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); }
+
+ ','
+
+{ after(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XShortClosure__Group_0_0_1_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XShortClosure__Group_0_0_1_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__Group_0_0_1_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1()); }
+(rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1)
+{ after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XParenthesizedExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XParenthesizedExpression__Group__0__Impl
+ rule__XParenthesizedExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XParenthesizedExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); }
+
+ '('
+
+{ after(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XParenthesizedExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XParenthesizedExpression__Group__1__Impl
+ rule__XParenthesizedExpression__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XParenthesizedExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); }
+ ruleXExpression
+{ after(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XParenthesizedExpression__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XParenthesizedExpression__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XParenthesizedExpression__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); }
+
+ ')'
+
+{ after(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XIfExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XIfExpression__Group__0__Impl
+ rule__XIfExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XIfExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XIfExpression__Group__1__Impl
+ rule__XIfExpression__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); }
+
+ 'if'
+
+{ after(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XIfExpression__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XIfExpression__Group__2__Impl
+ rule__XIfExpression__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); }
+
+ '('
+
+{ after(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XIfExpression__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XIfExpression__Group__3__Impl
+ rule__XIfExpression__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXIfExpressionAccess().getIfAssignment_3()); }
+(rule__XIfExpression__IfAssignment_3)
+{ after(grammarAccess.getXIfExpressionAccess().getIfAssignment_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XIfExpression__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XIfExpression__Group__4__Impl
+ rule__XIfExpression__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); }
+
+ ')'
+
+{ after(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XIfExpression__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XIfExpression__Group__5__Impl
+ rule__XIfExpression__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXIfExpressionAccess().getThenAssignment_5()); }
+(rule__XIfExpression__ThenAssignment_5)
+{ after(grammarAccess.getXIfExpressionAccess().getThenAssignment_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XIfExpression__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XIfExpression__Group__6__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXIfExpressionAccess().getGroup_6()); }
+(rule__XIfExpression__Group_6__0)?
+{ after(grammarAccess.getXIfExpressionAccess().getGroup_6()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__XIfExpression__Group_6__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XIfExpression__Group_6__0__Impl
+ rule__XIfExpression__Group_6__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group_6__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0()); }
+(
+ 'else'
+)
+{ after(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XIfExpression__Group_6__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XIfExpression__Group_6__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__Group_6__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1()); }
+(rule__XIfExpression__ElseAssignment_6_1)
+{ after(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XSwitchExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group__0__Impl
+ rule__XSwitchExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group__1__Impl
+ rule__XSwitchExpression__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); }
+
+ 'switch'
+
+{ after(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group__2__Impl
+ rule__XSwitchExpression__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2()); }
+(rule__XSwitchExpression__Alternatives_2)
+{ after(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group__3__Impl
+ rule__XSwitchExpression__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); }
+
+ '{'
+
+{ after(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group__4__Impl
+ rule__XSwitchExpression__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); }
+(rule__XSwitchExpression__CasesAssignment_4)
+{ after(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); }
+)
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); }
+(rule__XSwitchExpression__CasesAssignment_4)*
+{ after(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); }
+)
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group__5__Impl
+ rule__XSwitchExpression__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_5()); }
+(rule__XSwitchExpression__Group_5__0)?
+{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group__6__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); }
+
+ '}'
+
+{ after(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__XSwitchExpression__Group_2_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group_2_0__0__Impl
+ rule__XSwitchExpression__Group_2_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0()); }
+(rule__XSwitchExpression__Group_2_0_0__0)?
+{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group_2_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group_2_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1()); }
+(rule__XSwitchExpression__SwitchAssignment_2_0_1)
+{ after(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XSwitchExpression__Group_2_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group_2_0_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0()); }
+(rule__XSwitchExpression__Group_2_0_0_0__0)
+{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XSwitchExpression__Group_2_0_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group_2_0_0_0__0__Impl
+ rule__XSwitchExpression__Group_2_0_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_0_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameAssignment_2_0_0_0_0()); }
+(rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_0)
+{ after(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameAssignment_2_0_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group_2_0_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group_2_0_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_0_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_1()); }
+
+ ':'
+
+{ after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XSwitchExpression__Group_2_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group_2_1__0__Impl
+ rule__XSwitchExpression__Group_2_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0()); }
+(rule__XSwitchExpression__Group_2_1_0__0)
+{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group_2_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group_2_1__1__Impl
+ rule__XSwitchExpression__Group_2_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1()); }
+(rule__XSwitchExpression__SwitchAssignment_2_1_1)
+{ after(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group_2_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group_2_1__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_1_2()); }
+
+ ')'
+
+{ after(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_1_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XSwitchExpression__Group_2_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group_2_1_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0()); }
+(rule__XSwitchExpression__Group_2_1_0_0__0)
+{ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XSwitchExpression__Group_2_1_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group_2_1_0_0__0__Impl
+ rule__XSwitchExpression__Group_2_1_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_1_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_1_0_0_0()); }
+
+ '('
+
+{ after(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_1_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group_2_1_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group_2_1_0_0__1__Impl
+ rule__XSwitchExpression__Group_2_1_0_0__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_1_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameAssignment_2_1_0_0_1()); }
+(rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_1)
+{ after(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameAssignment_2_1_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group_2_1_0_0__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group_2_1_0_0__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_2_1_0_0__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_2()); }
+
+ ':'
+
+{ after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XSwitchExpression__Group_5__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group_5__0__Impl
+ rule__XSwitchExpression__Group_5__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_5__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); }
+
+ 'default'
+
+{ after(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group_5__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group_5__1__Impl
+ rule__XSwitchExpression__Group_5__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_5__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); }
+
+ ':'
+
+{ after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XSwitchExpression__Group_5__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XSwitchExpression__Group_5__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__Group_5__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2()); }
+(rule__XSwitchExpression__DefaultAssignment_5_2)
+{ after(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XCasePart__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XCasePart__Group__0__Impl
+ rule__XCasePart__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_0()); }
+(rule__XCasePart__TypeGuardAssignment_0)?
+{ after(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XCasePart__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XCasePart__Group__1__Impl
+ rule__XCasePart__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCasePartAccess().getGroup_1()); }
+(rule__XCasePart__Group_1__0)?
+{ after(grammarAccess.getXCasePartAccess().getGroup_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XCasePart__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XCasePart__Group__2__Impl
+ rule__XCasePart__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCasePartAccess().getColonKeyword_2()); }
+
+ ':'
+
+{ after(grammarAccess.getXCasePartAccess().getColonKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XCasePart__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XCasePart__Group__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCasePartAccess().getThenAssignment_3()); }
+(rule__XCasePart__ThenAssignment_3)
+{ after(grammarAccess.getXCasePartAccess().getThenAssignment_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__XCasePart__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XCasePart__Group_1__0__Impl
+ rule__XCasePart__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCasePartAccess().getCaseKeyword_1_0()); }
+
+ 'case'
+
+{ after(grammarAccess.getXCasePartAccess().getCaseKeyword_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XCasePart__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XCasePart__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCasePart__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCasePartAccess().getCaseAssignment_1_1()); }
+(rule__XCasePart__CaseAssignment_1_1)
+{ after(grammarAccess.getXCasePartAccess().getCaseAssignment_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XForLoopExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XForLoopExpression__Group__0__Impl
+ rule__XForLoopExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XForLoopExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XForLoopExpression__Group__1__Impl
+ rule__XForLoopExpression__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXForLoopExpressionAccess().getForKeyword_1()); }
+
+ 'for'
+
+{ after(grammarAccess.getXForLoopExpressionAccess().getForKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XForLoopExpression__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XForLoopExpression__Group__2__Impl
+ rule__XForLoopExpression__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_2()); }
+
+ '('
+
+{ after(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XForLoopExpression__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XForLoopExpression__Group__3__Impl
+ rule__XForLoopExpression__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_3()); }
+(rule__XForLoopExpression__DeclaredParamAssignment_3)
+{ after(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XForLoopExpression__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XForLoopExpression__Group__4__Impl
+ rule__XForLoopExpression__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_4()); }
+
+ ':'
+
+{ after(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XForLoopExpression__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XForLoopExpression__Group__5__Impl
+ rule__XForLoopExpression__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_5()); }
+(rule__XForLoopExpression__ForExpressionAssignment_5)
+{ after(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XForLoopExpression__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XForLoopExpression__Group__6__Impl
+ rule__XForLoopExpression__Group__7
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_6()); }
+
+ ')'
+
+{ after(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_6()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XForLoopExpression__Group__7
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XForLoopExpression__Group__7__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__Group__7__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_7()); }
+(rule__XForLoopExpression__EachExpressionAssignment_7)
+{ after(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_7()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__XWhileExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XWhileExpression__Group__0__Impl
+ rule__XWhileExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XWhileExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XWhileExpression__Group__1__Impl
+ rule__XWhileExpression__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); }
+
+ 'while'
+
+{ after(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XWhileExpression__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XWhileExpression__Group__2__Impl
+ rule__XWhileExpression__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); }
+
+ '('
+
+{ after(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XWhileExpression__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XWhileExpression__Group__3__Impl
+ rule__XWhileExpression__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3()); }
+(rule__XWhileExpression__PredicateAssignment_3)
+{ after(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XWhileExpression__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XWhileExpression__Group__4__Impl
+ rule__XWhileExpression__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); }
+
+ ')'
+
+{ after(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XWhileExpression__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XWhileExpression__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5()); }
+(rule__XWhileExpression__BodyAssignment_5)
+{ after(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__XDoWhileExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XDoWhileExpression__Group__0__Impl
+ rule__XDoWhileExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XDoWhileExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XDoWhileExpression__Group__1__Impl
+ rule__XDoWhileExpression__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); }
+
+ 'do'
+
+{ after(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XDoWhileExpression__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XDoWhileExpression__Group__2__Impl
+ rule__XDoWhileExpression__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2()); }
+(rule__XDoWhileExpression__BodyAssignment_2)
+{ after(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XDoWhileExpression__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XDoWhileExpression__Group__3__Impl
+ rule__XDoWhileExpression__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); }
+
+ 'while'
+
+{ after(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XDoWhileExpression__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XDoWhileExpression__Group__4__Impl
+ rule__XDoWhileExpression__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); }
+
+ '('
+
+{ after(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XDoWhileExpression__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XDoWhileExpression__Group__5__Impl
+ rule__XDoWhileExpression__Group__6
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5()); }
+(rule__XDoWhileExpression__PredicateAssignment_5)
+{ after(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XDoWhileExpression__Group__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XDoWhileExpression__Group__6__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__Group__6__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); }
+
+ ')'
+
+{ after(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__XBlockExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XBlockExpression__Group__0__Impl
+ rule__XBlockExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XBlockExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XBlockExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XBlockExpression__Group__1__Impl
+ rule__XBlockExpression__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XBlockExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); }
+
+ '{'
+
+{ after(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XBlockExpression__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XBlockExpression__Group__2__Impl
+ rule__XBlockExpression__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XBlockExpression__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXBlockExpressionAccess().getGroup_2()); }
+(rule__XBlockExpression__Group_2__0)*
+{ after(grammarAccess.getXBlockExpressionAccess().getGroup_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XBlockExpression__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XBlockExpression__Group__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XBlockExpression__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); }
+
+ '}'
+
+{ after(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__XBlockExpression__Group_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XBlockExpression__Group_2__0__Impl
+ rule__XBlockExpression__Group_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XBlockExpression__Group_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0()); }
+(rule__XBlockExpression__ExpressionsAssignment_2_0)
+{ after(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XBlockExpression__Group_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XBlockExpression__Group_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XBlockExpression__Group_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1()); }
+(
+ ';'
+)?
+{ after(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XVariableDeclaration__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XVariableDeclaration__Group__0__Impl
+ rule__XVariableDeclaration__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XVariableDeclaration__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XVariableDeclaration__Group__1__Impl
+ rule__XVariableDeclaration__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1()); }
+(rule__XVariableDeclaration__Alternatives_1)
+{ after(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XVariableDeclaration__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XVariableDeclaration__Group__2__Impl
+ rule__XVariableDeclaration__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2()); }
+(rule__XVariableDeclaration__Alternatives_2)
+{ after(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XVariableDeclaration__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XVariableDeclaration__Group__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getGroup_3()); }
+(rule__XVariableDeclaration__Group_3__0)?
+{ after(grammarAccess.getXVariableDeclarationAccess().getGroup_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__XVariableDeclaration__Group_2_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XVariableDeclaration__Group_2_0__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group_2_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0()); }
+(rule__XVariableDeclaration__Group_2_0_0__0)
+{ after(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XVariableDeclaration__Group_2_0_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XVariableDeclaration__Group_2_0_0__0__Impl
+ rule__XVariableDeclaration__Group_2_0_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group_2_0_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0()); }
+(rule__XVariableDeclaration__TypeAssignment_2_0_0_0)
+{ after(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XVariableDeclaration__Group_2_0_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XVariableDeclaration__Group_2_0_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group_2_0_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1()); }
+(rule__XVariableDeclaration__NameAssignment_2_0_0_1)
+{ after(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XVariableDeclaration__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XVariableDeclaration__Group_3__0__Impl
+ rule__XVariableDeclaration__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0()); }
+
+ '='
+
+{ after(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XVariableDeclaration__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XVariableDeclaration__Group_3__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1()); }
+(rule__XVariableDeclaration__RightAssignment_3_1)
+{ after(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__JvmFormalParameter__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmFormalParameter__Group__0__Impl
+ rule__JvmFormalParameter__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmFormalParameter__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0()); }
+(rule__JvmFormalParameter__ParameterTypeAssignment_0)?
+{ after(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__JvmFormalParameter__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmFormalParameter__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmFormalParameter__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1()); }
+(rule__JvmFormalParameter__NameAssignment_1)
+{ after(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__FullJvmFormalParameter__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FullJvmFormalParameter__Group__0__Impl
+ rule__FullJvmFormalParameter__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FullJvmFormalParameter__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0()); }
+(rule__FullJvmFormalParameter__ParameterTypeAssignment_0)
+{ after(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__FullJvmFormalParameter__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__FullJvmFormalParameter__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FullJvmFormalParameter__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1()); }
+(rule__FullJvmFormalParameter__NameAssignment_1)
+{ after(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XFeatureCall__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFeatureCall__Group__0__Impl
+ rule__XFeatureCall__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XFeatureCall__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFeatureCall__Group__1__Impl
+ rule__XFeatureCall__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getGroup_1()); }
+(rule__XFeatureCall__Group_1__0)?
+{ after(grammarAccess.getXFeatureCallAccess().getGroup_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XFeatureCall__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFeatureCall__Group__2__Impl
+ rule__XFeatureCall__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2()); }
+(rule__XFeatureCall__FeatureAssignment_2)
+{ after(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XFeatureCall__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFeatureCall__Group__3__Impl
+ rule__XFeatureCall__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getGroup_3()); }
+(rule__XFeatureCall__Group_3__0)?
+{ after(grammarAccess.getXFeatureCallAccess().getGroup_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XFeatureCall__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFeatureCall__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4()); }
+(rule__XFeatureCall__FeatureCallArgumentsAssignment_4)?
+{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__XFeatureCall__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFeatureCall__Group_1__0__Impl
+ rule__XFeatureCall__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0()); }
+
+ '<'
+
+{ after(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XFeatureCall__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFeatureCall__Group_1__1__Impl
+ rule__XFeatureCall__Group_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1()); }
+(rule__XFeatureCall__TypeArgumentsAssignment_1_1)
+{ after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XFeatureCall__Group_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFeatureCall__Group_1__2__Impl
+ rule__XFeatureCall__Group_1__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getGroup_1_2()); }
+(rule__XFeatureCall__Group_1_2__0)*
+{ after(grammarAccess.getXFeatureCallAccess().getGroup_1_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XFeatureCall__Group_1__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFeatureCall__Group_1__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_1__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3()); }
+
+ '>'
+
+{ after(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__XFeatureCall__Group_1_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFeatureCall__Group_1_2__0__Impl
+ rule__XFeatureCall__Group_1_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_1_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); }
+
+ ','
+
+{ after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XFeatureCall__Group_1_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFeatureCall__Group_1_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_1_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1()); }
+(rule__XFeatureCall__TypeArgumentsAssignment_1_2_1)
+{ after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XFeatureCall__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFeatureCall__Group_3__0__Impl
+ rule__XFeatureCall__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0()); }
+(rule__XFeatureCall__ExplicitOperationCallAssignment_3_0)
+{ after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XFeatureCall__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFeatureCall__Group_3__1__Impl
+ rule__XFeatureCall__Group_3__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1()); }
+(rule__XFeatureCall__Alternatives_3_1)?
+{ after(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XFeatureCall__Group_3__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFeatureCall__Group_3__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_3__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); }
+
+ ')'
+
+{ after(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XFeatureCall__Group_3_1_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFeatureCall__Group_3_1_1__0__Impl
+ rule__XFeatureCall__Group_3_1_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_3_1_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0()); }
+(rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0)
+{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XFeatureCall__Group_3_1_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFeatureCall__Group_3_1_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_3_1_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1()); }
+(rule__XFeatureCall__Group_3_1_1_1__0)*
+{ after(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XFeatureCall__Group_3_1_1_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFeatureCall__Group_3_1_1_1__0__Impl
+ rule__XFeatureCall__Group_3_1_1_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_3_1_1_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); }
+
+ ','
+
+{ after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XFeatureCall__Group_3_1_1_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFeatureCall__Group_3_1_1_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__Group_3_1_1_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1()); }
+(rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1)
+{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XConstructorCall__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group__0__Impl
+ rule__XConstructorCall__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group__1__Impl
+ rule__XConstructorCall__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); }
+
+ 'new'
+
+{ after(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group__2__Impl
+ rule__XConstructorCall__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2()); }
+(rule__XConstructorCall__ConstructorAssignment_2)
+{ after(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group__3__Impl
+ rule__XConstructorCall__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getGroup_3()); }
+(rule__XConstructorCall__Group_3__0)?
+{ after(grammarAccess.getXConstructorCallAccess().getGroup_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group__4__Impl
+ rule__XConstructorCall__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getGroup_4()); }
+(rule__XConstructorCall__Group_4__0)?
+{ after(grammarAccess.getXConstructorCallAccess().getGroup_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5()); }
+(rule__XConstructorCall__ArgumentsAssignment_5)?
+{ after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__XConstructorCall__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group_3__0__Impl
+ rule__XConstructorCall__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0()); }
+(
+ '<'
+)
+{ after(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group_3__1__Impl
+ rule__XConstructorCall__Group_3__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1()); }
+(rule__XConstructorCall__TypeArgumentsAssignment_3_1)
+{ after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group_3__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group_3__2__Impl
+ rule__XConstructorCall__Group_3__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_3__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getGroup_3_2()); }
+(rule__XConstructorCall__Group_3_2__0)*
+{ after(grammarAccess.getXConstructorCallAccess().getGroup_3_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group_3__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group_3__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_3__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3()); }
+
+ '>'
+
+{ after(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__XConstructorCall__Group_3_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group_3_2__0__Impl
+ rule__XConstructorCall__Group_3_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_3_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); }
+
+ ','
+
+{ after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group_3_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group_3_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_3_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1()); }
+(rule__XConstructorCall__TypeArgumentsAssignment_3_2_1)
+{ after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XConstructorCall__Group_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group_4__0__Impl
+ rule__XConstructorCall__Group_4__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_4__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getLeftParenthesisKeyword_4_0()); }
+(
+ '('
+)
+{ after(grammarAccess.getXConstructorCallAccess().getLeftParenthesisKeyword_4_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group_4__1__Impl
+ rule__XConstructorCall__Group_4__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_4__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1()); }
+(rule__XConstructorCall__Alternatives_4_1)?
+{ after(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group_4__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group_4__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_4__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); }
+
+ ')'
+
+{ after(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XConstructorCall__Group_4_1_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group_4_1_1__0__Impl
+ rule__XConstructorCall__Group_4_1_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_4_1_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0()); }
+(rule__XConstructorCall__ArgumentsAssignment_4_1_1_0)
+{ after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group_4_1_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group_4_1_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_4_1_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1()); }
+(rule__XConstructorCall__Group_4_1_1_1__0)*
+{ after(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XConstructorCall__Group_4_1_1_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group_4_1_1_1__0__Impl
+ rule__XConstructorCall__Group_4_1_1_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_4_1_1_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); }
+
+ ','
+
+{ after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XConstructorCall__Group_4_1_1_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XConstructorCall__Group_4_1_1_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__Group_4_1_1_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1()); }
+(rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1)
+{ after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XBooleanLiteral__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XBooleanLiteral__Group__0__Impl
+ rule__XBooleanLiteral__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XBooleanLiteral__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XBooleanLiteral__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XBooleanLiteral__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XBooleanLiteral__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1()); }
+(rule__XBooleanLiteral__Alternatives_1)
+{ after(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XNullLiteral__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XNullLiteral__Group__0__Impl
+ rule__XNullLiteral__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XNullLiteral__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XNullLiteral__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XNullLiteral__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XNullLiteral__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); }
+
+ 'null'
+
+{ after(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XNumberLiteral__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XNumberLiteral__Group__0__Impl
+ rule__XNumberLiteral__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XNumberLiteral__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XNumberLiteral__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XNumberLiteral__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XNumberLiteral__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1()); }
+(rule__XNumberLiteral__ValueAssignment_1)
+{ after(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XStringLiteral__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XStringLiteral__Group__0__Impl
+ rule__XStringLiteral__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XStringLiteral__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XStringLiteral__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XStringLiteral__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XStringLiteral__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXStringLiteralAccess().getValueAssignment_1()); }
+(rule__XStringLiteral__ValueAssignment_1)
+{ after(grammarAccess.getXStringLiteralAccess().getValueAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XTypeLiteral__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XTypeLiteral__Group__0__Impl
+ rule__XTypeLiteral__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XTypeLiteral__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XTypeLiteral__Group__1__Impl
+ rule__XTypeLiteral__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); }
+
+ 'typeof'
+
+{ after(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XTypeLiteral__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XTypeLiteral__Group__2__Impl
+ rule__XTypeLiteral__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); }
+
+ '('
+
+{ after(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XTypeLiteral__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XTypeLiteral__Group__3__Impl
+ rule__XTypeLiteral__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3()); }
+(rule__XTypeLiteral__TypeAssignment_3)
+{ after(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XTypeLiteral__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XTypeLiteral__Group__4__Impl
+ rule__XTypeLiteral__Group__5
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4()); }
+(rule__XTypeLiteral__ArrayDimensionsAssignment_4)*
+{ after(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XTypeLiteral__Group__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XTypeLiteral__Group__5__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__Group__5__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); }
+
+ ')'
+
+{ after(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__XThrowExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XThrowExpression__Group__0__Impl
+ rule__XThrowExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XThrowExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XThrowExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XThrowExpression__Group__1__Impl
+ rule__XThrowExpression__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XThrowExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); }
+
+ 'throw'
+
+{ after(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XThrowExpression__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XThrowExpression__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XThrowExpression__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2()); }
+(rule__XThrowExpression__ExpressionAssignment_2)
+{ after(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XReturnExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XReturnExpression__Group__0__Impl
+ rule__XReturnExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XReturnExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XReturnExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XReturnExpression__Group__1__Impl
+ rule__XReturnExpression__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XReturnExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); }
+
+ 'return'
+
+{ after(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XReturnExpression__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XReturnExpression__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XReturnExpression__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2()); }
+(rule__XReturnExpression__ExpressionAssignment_2)?
+{ after(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XTryCatchFinallyExpression__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XTryCatchFinallyExpression__Group__0__Impl
+ rule__XTryCatchFinallyExpression__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XTryCatchFinallyExpression__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XTryCatchFinallyExpression__Group__1__Impl
+ rule__XTryCatchFinallyExpression__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); }
+
+ 'try'
+
+{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XTryCatchFinallyExpression__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XTryCatchFinallyExpression__Group__2__Impl
+ rule__XTryCatchFinallyExpression__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2()); }
+(rule__XTryCatchFinallyExpression__ExpressionAssignment_2)
+{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XTryCatchFinallyExpression__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XTryCatchFinallyExpression__Group__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3()); }
+(rule__XTryCatchFinallyExpression__Alternatives_3)
+{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__XTryCatchFinallyExpression__Group_3_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XTryCatchFinallyExpression__Group_3_0__0__Impl
+ rule__XTryCatchFinallyExpression__Group_3_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group_3_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); }
+(rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0)
+{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); }
+)
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); }
+(rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0)*
+{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); }
+)
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XTryCatchFinallyExpression__Group_3_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1()); }
+(rule__XTryCatchFinallyExpression__Group_3_0_1__0)?
+{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XTryCatchFinallyExpression__Group_3_0_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl
+ rule__XTryCatchFinallyExpression__Group_3_0_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0()); }
+(
+ 'finally'
+)
+{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XTryCatchFinallyExpression__Group_3_0_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1()); }
+(rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1)
+{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XTryCatchFinallyExpression__Group_3_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XTryCatchFinallyExpression__Group_3_1__0__Impl
+ rule__XTryCatchFinallyExpression__Group_3_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group_3_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); }
+
+ 'finally'
+
+{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XTryCatchFinallyExpression__Group_3_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1()); }
+(rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1)
+{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XCatchClause__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XCatchClause__Group__0__Impl
+ rule__XCatchClause__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCatchClause__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0()); }
+(
+ 'catch'
+)
+{ after(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XCatchClause__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XCatchClause__Group__1__Impl
+ rule__XCatchClause__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCatchClause__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); }
+
+ '('
+
+{ after(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XCatchClause__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XCatchClause__Group__2__Impl
+ rule__XCatchClause__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCatchClause__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2()); }
+(rule__XCatchClause__DeclaredParamAssignment_2)
+{ after(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XCatchClause__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XCatchClause__Group__3__Impl
+ rule__XCatchClause__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCatchClause__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); }
+
+ ')'
+
+{ after(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XCatchClause__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XCatchClause__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCatchClause__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4()); }
+(rule__XCatchClause__ExpressionAssignment_4)
+{ after(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__QualifiedName__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__QualifiedName__Group__0__Impl
+ rule__QualifiedName__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); }
+ ruleValidID
+{ after(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__QualifiedName__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__QualifiedName__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getQualifiedNameAccess().getGroup_1()); }
+(rule__QualifiedName__Group_1__0)*
+{ after(grammarAccess.getQualifiedNameAccess().getGroup_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__QualifiedName__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__QualifiedName__Group_1__0__Impl
+ rule__QualifiedName__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); }
+(
+ '.'
+)
+{ after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__QualifiedName__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__QualifiedName__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); }
+ ruleValidID
+{ after(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Number__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Number__Group_1__0__Impl
+ rule__Number__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Number__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getNumberAccess().getAlternatives_1_0()); }
+(rule__Number__Alternatives_1_0)
+{ after(grammarAccess.getNumberAccess().getAlternatives_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Number__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Number__Group_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Number__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getNumberAccess().getGroup_1_1()); }
+(rule__Number__Group_1_1__0)?
+{ after(grammarAccess.getNumberAccess().getGroup_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Number__Group_1_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Number__Group_1_1__0__Impl
+ rule__Number__Group_1_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Number__Group_1_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); }
+
+ '.'
+
+{ after(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Number__Group_1_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Number__Group_1_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Number__Group_1_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getNumberAccess().getAlternatives_1_1_1()); }
+(rule__Number__Alternatives_1_1_1)
+{ after(grammarAccess.getNumberAccess().getAlternatives_1_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+rule__JvmTypeReference__Group_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmTypeReference__Group_0__0__Impl
+ rule__JvmTypeReference__Group_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmTypeReference__Group_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); }
+ ruleJvmParameterizedTypeReference
+{ after(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__JvmTypeReference__Group_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmTypeReference__Group_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmTypeReference__Group_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1()); }
+(rule__JvmTypeReference__Group_0_1__0)*
+{ after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__JvmTypeReference__Group_0_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmTypeReference__Group_0_1__0__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmTypeReference__Group_0_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0()); }
+(rule__JvmTypeReference__Group_0_1_0__0)
+{ after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+rule__JvmTypeReference__Group_0_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmTypeReference__Group_0_1_0__0__Impl
+ rule__JvmTypeReference__Group_0_1_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmTypeReference__Group_0_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()); }
+(
+
+)
+{ after(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__JvmTypeReference__Group_0_1_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmTypeReference__Group_0_1_0__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmTypeReference__Group_0_1_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); }
+ ruleArrayBrackets
+{ after(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ArrayBrackets__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ArrayBrackets__Group__0__Impl
+ rule__ArrayBrackets__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ArrayBrackets__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); }
+
+ '['
+
+{ after(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__ArrayBrackets__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__ArrayBrackets__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ArrayBrackets__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); }
+
+ ']'
+
+{ after(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XFunctionTypeRef__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFunctionTypeRef__Group__0__Impl
+ rule__XFunctionTypeRef__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0()); }
+(rule__XFunctionTypeRef__Group_0__0)?
+{ after(grammarAccess.getXFunctionTypeRefAccess().getGroup_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XFunctionTypeRef__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFunctionTypeRef__Group__1__Impl
+ rule__XFunctionTypeRef__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); }
+
+ '=>'
+
+{ after(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XFunctionTypeRef__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFunctionTypeRef__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2()); }
+(rule__XFunctionTypeRef__ReturnTypeAssignment_2)
+{ after(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XFunctionTypeRef__Group_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFunctionTypeRef__Group_0__0__Impl
+ rule__XFunctionTypeRef__Group_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); }
+
+ '('
+
+{ after(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XFunctionTypeRef__Group_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFunctionTypeRef__Group_0__1__Impl
+ rule__XFunctionTypeRef__Group_0__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1()); }
+(rule__XFunctionTypeRef__Group_0_1__0)?
+{ after(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XFunctionTypeRef__Group_0__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFunctionTypeRef__Group_0__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group_0__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); }
+
+ ')'
+
+{ after(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XFunctionTypeRef__Group_0_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFunctionTypeRef__Group_0_1__0__Impl
+ rule__XFunctionTypeRef__Group_0_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group_0_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0()); }
+(rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0)
+{ after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XFunctionTypeRef__Group_0_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFunctionTypeRef__Group_0_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group_0_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1()); }
+(rule__XFunctionTypeRef__Group_0_1_1__0)*
+{ after(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XFunctionTypeRef__Group_0_1_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFunctionTypeRef__Group_0_1_1__0__Impl
+ rule__XFunctionTypeRef__Group_0_1_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group_0_1_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); }
+
+ ','
+
+{ after(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XFunctionTypeRef__Group_0_1_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XFunctionTypeRef__Group_0_1_1__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__Group_0_1_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1()); }
+(rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1)
+{ after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__JvmParameterizedTypeReference__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmParameterizedTypeReference__Group__0__Impl
+ rule__JvmParameterizedTypeReference__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0()); }
+(rule__JvmParameterizedTypeReference__TypeAssignment_0)
+{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__JvmParameterizedTypeReference__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmParameterizedTypeReference__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1()); }
+(rule__JvmParameterizedTypeReference__Group_1__0)?
+{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__JvmParameterizedTypeReference__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmParameterizedTypeReference__Group_1__0__Impl
+ rule__JvmParameterizedTypeReference__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); }
+(
+ '<'
+)
+{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__JvmParameterizedTypeReference__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmParameterizedTypeReference__Group_1__1__Impl
+ rule__JvmParameterizedTypeReference__Group_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1()); }
+(rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1)
+{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__JvmParameterizedTypeReference__Group_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmParameterizedTypeReference__Group_1__2__Impl
+ rule__JvmParameterizedTypeReference__Group_1__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2()); }
+(rule__JvmParameterizedTypeReference__Group_1_2__0)*
+{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__JvmParameterizedTypeReference__Group_1__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmParameterizedTypeReference__Group_1__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); }
+
+ '>'
+
+{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__JvmParameterizedTypeReference__Group_1_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmParameterizedTypeReference__Group_1_2__0__Impl
+ rule__JvmParameterizedTypeReference__Group_1_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); }
+
+ ','
+
+{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__JvmParameterizedTypeReference__Group_1_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1()); }
+(rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1)
+{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__JvmWildcardTypeReference__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmWildcardTypeReference__Group__0__Impl
+ rule__JvmWildcardTypeReference__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0()); }
+(
+
+)
+{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__JvmWildcardTypeReference__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmWildcardTypeReference__Group__1__Impl
+ rule__JvmWildcardTypeReference__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); }
+
+ '?'
+
+{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__JvmWildcardTypeReference__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmWildcardTypeReference__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2()); }
+(rule__JvmWildcardTypeReference__Alternatives_2)?
+{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__JvmUpperBound__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmUpperBound__Group__0__Impl
+ rule__JvmUpperBound__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmUpperBound__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); }
+
+ 'extends'
+
+{ after(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__JvmUpperBound__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmUpperBound__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmUpperBound__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1()); }
+(rule__JvmUpperBound__TypeReferenceAssignment_1)
+{ after(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__JvmUpperBoundAnded__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmUpperBoundAnded__Group__0__Impl
+ rule__JvmUpperBoundAnded__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmUpperBoundAnded__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); }
+
+ '&'
+
+{ after(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__JvmUpperBoundAnded__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmUpperBoundAnded__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmUpperBoundAnded__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1()); }
+(rule__JvmUpperBoundAnded__TypeReferenceAssignment_1)
+{ after(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__JvmLowerBound__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmLowerBound__Group__0__Impl
+ rule__JvmLowerBound__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmLowerBound__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); }
+
+ 'super'
+
+{ after(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__JvmLowerBound__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__JvmLowerBound__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmLowerBound__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1()); }
+(rule__JvmLowerBound__TypeReferenceAssignment_1)
+{ after(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__QualifiedNameWithWildcard__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__QualifiedNameWithWildcard__Group__0__Impl
+ rule__QualifiedNameWithWildcard__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__QualifiedNameWithWildcard__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); }
+ ruleQualifiedName
+{ after(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__QualifiedNameWithWildcard__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__QualifiedNameWithWildcard__Group__1__Impl
+ rule__QualifiedNameWithWildcard__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__QualifiedNameWithWildcard__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); }
+
+ '.'
+
+{ after(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__QualifiedNameWithWildcard__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__QualifiedNameWithWildcard__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__QualifiedNameWithWildcard__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); }
+
+ '*'
+
+{ after(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XImportDeclaration__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XImportDeclaration__Group__0__Impl
+ rule__XImportDeclaration__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getImportKeyword_0()); }
+
+ 'import'
+
+{ after(grammarAccess.getXImportDeclarationAccess().getImportKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XImportDeclaration__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XImportDeclaration__Group__1__Impl
+ rule__XImportDeclaration__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getAlternatives_1()); }
+(rule__XImportDeclaration__Alternatives_1)
+{ after(grammarAccess.getXImportDeclarationAccess().getAlternatives_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XImportDeclaration__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XImportDeclaration__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2()); }
+(
+ ';'
+)?
+{ after(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XImportDeclaration__Group_1_0__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XImportDeclaration__Group_1_0__0__Impl
+ rule__XImportDeclaration__Group_1_0__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group_1_0__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_1_0_0()); }
+(rule__XImportDeclaration__StaticAssignment_1_0_0)
+{ after(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XImportDeclaration__Group_1_0__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XImportDeclaration__Group_1_0__1__Impl
+ rule__XImportDeclaration__Group_1_0__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group_1_0__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_1_0_1()); }
+(rule__XImportDeclaration__ExtensionAssignment_1_0_1)?
+{ after(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_1_0_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XImportDeclaration__Group_1_0__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XImportDeclaration__Group_1_0__2__Impl
+ rule__XImportDeclaration__Group_1_0__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group_1_0__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_0_2()); }
+(rule__XImportDeclaration__ImportedTypeAssignment_1_0_2)
+{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_0_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XImportDeclaration__Group_1_0__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XImportDeclaration__Group_1_0__3__Impl
+ rule__XImportDeclaration__Group_1_0__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group_1_0__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getFullStopKeyword_1_0_3()); }
+
+ '.'
+
+{ after(grammarAccess.getXImportDeclarationAccess().getFullStopKeyword_1_0_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__XImportDeclaration__Group_1_0__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__XImportDeclaration__Group_1_0__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Group_1_0__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getAsteriskKeyword_1_0_4()); }
+
+ '*'
+
+{ after(grammarAccess.getXImportDeclarationAccess().getAsteriskKeyword_1_0_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Module__UnorderedGroup_4
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+ }
+:
+ rule__Module__UnorderedGroup_4__0
+ ?
+
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__UnorderedGroup_4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+
+ { before(grammarAccess.getModuleAccess().getLabelProviderAssignment_4_0()); }
+ (rule__Module__LabelProviderAssignment_4_0)
+ { after(grammarAccess.getModuleAccess().getLabelProviderAssignment_4_0()); }
+ )
+ )
+ ) |
+
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+
+ { before(grammarAccess.getModuleAccess().getPropertyDescriptionProviderAssignment_4_1()); }
+ (rule__Module__PropertyDescriptionProviderAssignment_4_1)
+ { after(grammarAccess.getModuleAccess().getPropertyDescriptionProviderAssignment_4_1()); }
+ )
+ )
+ ) |
+
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2);
+ }
+ {
+ selected = true;
+ }
+ (
+
+ { before(grammarAccess.getModuleAccess().getFeaturesProviderAssignment_4_2()); }
+ (rule__Module__FeaturesProviderAssignment_4_2)
+ { after(grammarAccess.getModuleAccess().getFeaturesProviderAssignment_4_2()); }
+ )
+ )
+ ) |
+
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3);
+ }
+ {
+ selected = true;
+ }
+ (
+
+ { before(grammarAccess.getModuleAccess().getFormControlFactoryAssignment_4_3()); }
+ (rule__Module__FormControlFactoryAssignment_4_3)
+ { after(grammarAccess.getModuleAccess().getFormControlFactoryAssignment_4_3()); }
+ )
+ )
+ ) |
+
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4);
+ }
+ {
+ selected = true;
+ }
+ (
+
+ { before(grammarAccess.getModuleAccess().getProposalCreatorAssignment_4_4()); }
+ (rule__Module__ProposalCreatorAssignment_4_4)
+ { after(grammarAccess.getModuleAccess().getProposalCreatorAssignment_4_4()); }
+ )
+ )
+ ) |
+
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5);
+ }
+ {
+ selected = true;
+ }
+ (
+
+ { before(grammarAccess.getModuleAccess().getViewerContentProviderAssignment_4_5()); }
+ (rule__Module__ViewerContentProviderAssignment_4_5)
+ { after(grammarAccess.getModuleAccess().getViewerContentProviderAssignment_4_5()); }
+ )
+ )
+ ) |
+
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6);
+ }
+ {
+ selected = true;
+ }
+ (
+
+ { before(grammarAccess.getModuleAccess().getGroup_4_6()); }
+ (rule__Module__Group_4_6__0)
+ { after(grammarAccess.getModuleAccess().getGroup_4_6()); }
+ )
+ )
+ )
+
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__UnorderedGroup_4__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__UnorderedGroup_4__Impl
+ rule__Module__UnorderedGroup_4__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__UnorderedGroup_4__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__UnorderedGroup_4__Impl
+ rule__Module__UnorderedGroup_4__2?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__UnorderedGroup_4__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__UnorderedGroup_4__Impl
+ rule__Module__UnorderedGroup_4__3?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__UnorderedGroup_4__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__UnorderedGroup_4__Impl
+ rule__Module__UnorderedGroup_4__4?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__UnorderedGroup_4__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__UnorderedGroup_4__Impl
+ rule__Module__UnorderedGroup_4__5?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__UnorderedGroup_4__5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__UnorderedGroup_4__Impl
+ rule__Module__UnorderedGroup_4__6?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Module__UnorderedGroup_4__6
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Module__UnorderedGroup_4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__LabelProvider__UnorderedGroup_3
+ @init {
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3());
+ }
+:
+ rule__LabelProvider__UnorderedGroup_3__0
+ ?
+
+;
+finally {
+ getUnorderedGroupHelper().leave(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+}
+
+
+rule__LabelProvider__UnorderedGroup_3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ boolean selected = false;
+ }
+:
+ (
+
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 0);
+ }
+ {
+ selected = true;
+ }
+ (
+
+ { before(grammarAccess.getLabelProviderAccess().getGroup_3_0()); }
+ (rule__LabelProvider__Group_3_0__0)
+ { after(grammarAccess.getLabelProviderAccess().getGroup_3_0()); }
+ )
+ )
+ ) |
+
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 1);
+ }
+ {
+ selected = true;
+ }
+ (
+
+ { before(grammarAccess.getLabelProviderAccess().getGroup_3_1()); }
+ (rule__LabelProvider__Group_3_1__0)
+ { after(grammarAccess.getLabelProviderAccess().getGroup_3_1()); }
+ )
+ )
+ )
+
+ )
+;
+finally {
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+}
+
+
+rule__LabelProvider__UnorderedGroup_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelProvider__UnorderedGroup_3__Impl
+ rule__LabelProvider__UnorderedGroup_3__1?
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__LabelProvider__UnorderedGroup_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__LabelProvider__UnorderedGroup_3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Model__ImportSectionAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModelAccess().getImportSectionXImportSectionParserRuleCall_0_0()); }
+ ruleXImportSection{ after(grammarAccess.getModelAccess().getImportSectionXImportSectionParserRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Model__ModuleAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModelAccess().getModuleModuleParserRuleCall_1_0()); }
+ ruleModule{ after(grammarAccess.getModelAccess().getModuleModuleParserRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__NameAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getNameQualifiedNameParserRuleCall_1_0()); }
+ ruleQualifiedName{ after(grammarAccess.getModuleAccess().getNameQualifiedNameParserRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__ExtendsClauseAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getExtendsClauseExtendsClauseParserRuleCall_2_0()); }
+ ruleExtendsClause{ after(grammarAccess.getModuleAccess().getExtendsClauseExtendsClauseParserRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__LabelProviderAssignment_4_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getLabelProviderLabelProviderParserRuleCall_4_0_0()); }
+ ruleLabelProvider{ after(grammarAccess.getModuleAccess().getLabelProviderLabelProviderParserRuleCall_4_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__PropertyDescriptionProviderAssignment_4_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getPropertyDescriptionProviderPropertyDescriptionProviderParserRuleCall_4_1_0()); }
+ rulePropertyDescriptionProvider{ after(grammarAccess.getModuleAccess().getPropertyDescriptionProviderPropertyDescriptionProviderParserRuleCall_4_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__FeaturesProviderAssignment_4_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getFeaturesProviderFeaturesProviderParserRuleCall_4_2_0()); }
+ ruleFeaturesProvider{ after(grammarAccess.getModuleAccess().getFeaturesProviderFeaturesProviderParserRuleCall_4_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__FormControlFactoryAssignment_4_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getFormControlFactoryFormControlFactoryParserRuleCall_4_3_0()); }
+ ruleFormControlFactory{ after(grammarAccess.getModuleAccess().getFormControlFactoryFormControlFactoryParserRuleCall_4_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__ProposalCreatorAssignment_4_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getProposalCreatorProposalCreatorParserRuleCall_4_4_0()); }
+ ruleProposalCreator{ after(grammarAccess.getModuleAccess().getProposalCreatorProposalCreatorParserRuleCall_4_4_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__ViewerContentProviderAssignment_4_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getViewerContentProviderViewerContentProviderParserRuleCall_4_5_0()); }
+ ruleViewerContentProvider{ after(grammarAccess.getModuleAccess().getViewerContentProviderViewerContentProviderParserRuleCall_4_5_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Module__PartsAssignment_4_6_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getModuleAccess().getPartsPartSpecificationParserRuleCall_4_6_2_0()); }
+ rulePartSpecification{ after(grammarAccess.getModuleAccess().getPartsPartSpecificationParserRuleCall_4_6_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ExtendsClause__SuperTypeAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getExtendsClauseAccess().getSuperTypeJvmTypeReferenceParserRuleCall_1_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getExtendsClauseAccess().getSuperTypeJvmTypeReferenceParserRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelProvider__LabelSpecificationsAssignment_3_0_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelProviderAccess().getLabelSpecificationsLabelSpecificationParserRuleCall_3_0_2_0()); }
+ ruleLabelSpecification{ after(grammarAccess.getLabelProviderAccess().getLabelSpecificationsLabelSpecificationParserRuleCall_3_0_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelProvider__ImageSpecificationsAssignment_3_1_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelProviderAccess().getImageSpecificationsLabelSpecificationParserRuleCall_3_1_2_0()); }
+ ruleLabelSpecification{ after(grammarAccess.getLabelProviderAccess().getImageSpecificationsLabelSpecificationParserRuleCall_3_1_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelSpecification__ParameterTypeAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getLabelSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelSpecification__NameAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelSpecificationAccess().getNameValidIDParserRuleCall_1_0()); }
+ ruleValidID{ after(grammarAccess.getLabelSpecificationAccess().getNameValidIDParserRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__LabelSpecification__ExpressionAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getLabelSpecificationAccess().getExpressionXExpressionParserRuleCall_3_0()); }
+ ruleXExpression{ after(grammarAccess.getLabelSpecificationAccess().getExpressionXExpressionParserRuleCall_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getPropertyDescriptionProviderAccess().getLabelSpecificationsPropertyDescriptionSpecificationParserRuleCall_3_2_0()); }
+ rulePropertyDescriptionSpecification{ after(grammarAccess.getPropertyDescriptionProviderAccess().getLabelSpecificationsPropertyDescriptionSpecificationParserRuleCall_3_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PropertyDescriptionSpecification__ParameterTypeAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PropertyDescriptionSpecification__FeatureAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getFeatureJvmMemberCrossReference_2_0()); }
+(
+{ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getFeatureJvmMemberIDTerminalRuleCall_2_0_1()); }
+ RULE_ID{ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getFeatureJvmMemberIDTerminalRuleCall_2_0_1()); }
+)
+{ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getFeatureJvmMemberCrossReference_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__PropertyDescriptionSpecification__ExpressionAssignment_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0()); }
+ ruleXExpression{ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeaturesProvider__FeatureSpecificationsAssignment_3_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeaturesProviderAccess().getFeatureSpecificationsFeatureSpecificationParserRuleCall_3_2_0()); }
+ ruleFeatureSpecification{ after(grammarAccess.getFeaturesProviderAccess().getFeatureSpecificationsFeatureSpecificationParserRuleCall_3_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeatureSpecification__ParameterTypeAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeatureSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getFeatureSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeatureSpecification__FeaturesAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberCrossReference_2_0()); }
+(
+{ before(grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberIDTerminalRuleCall_2_0_1()); }
+ RULE_ID{ after(grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberIDTerminalRuleCall_2_0_1()); }
+)
+{ after(grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberCrossReference_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FeatureSpecification__FeaturesAssignment_3_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberCrossReference_3_1_0()); }
+(
+{ before(grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberIDTerminalRuleCall_3_1_0_1()); }
+ RULE_ID{ after(grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberIDTerminalRuleCall_3_1_0_1()); }
+)
+{ after(grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberCrossReference_3_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlFactory__ControlSpecificationsAssignment_3_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlFactoryAccess().getControlSpecificationsFormControlSpecificationParserRuleCall_3_2_0()); }
+ ruleFormControlSpecification{ after(grammarAccess.getFormControlFactoryAccess().getControlSpecificationsFormControlSpecificationParserRuleCall_3_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlSpecification__ParameterTypeAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getFormControlSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlSpecification__FeatureAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlSpecificationAccess().getFeatureJvmMemberCrossReference_2_0()); }
+(
+{ before(grammarAccess.getFormControlSpecificationAccess().getFeatureJvmMemberIDTerminalRuleCall_2_0_1()); }
+ RULE_ID{ after(grammarAccess.getFormControlSpecificationAccess().getFeatureJvmMemberIDTerminalRuleCall_2_0_1()); }
+)
+{ after(grammarAccess.getFormControlSpecificationAccess().getFeatureJvmMemberCrossReference_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlSpecification__ExpressionAssignment_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0()); }
+ ruleXExpression{ after(grammarAccess.getFormControlSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FormControlSpecification__TargetAssignment_5_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFormControlSpecificationAccess().getTargetXExpressionParserRuleCall_5_1_0()); }
+ ruleXExpression{ after(grammarAccess.getFormControlSpecificationAccess().getTargetXExpressionParserRuleCall_5_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ProposalCreator__ProposalsSpecificationsAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getProposalCreatorAccess().getProposalsSpecificationsProposalSpecificationParserRuleCall_3_0()); }
+ ruleProposalSpecification{ after(grammarAccess.getProposalCreatorAccess().getProposalsSpecificationsProposalSpecificationParserRuleCall_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ProposalSpecification__ParameterTypeAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getProposalSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getProposalSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ProposalSpecification__FeatureAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getProposalSpecificationAccess().getFeatureJvmMemberCrossReference_2_0()); }
+(
+{ before(grammarAccess.getProposalSpecificationAccess().getFeatureJvmMemberIDTerminalRuleCall_2_0_1()); }
+ RULE_ID{ after(grammarAccess.getProposalSpecificationAccess().getFeatureJvmMemberIDTerminalRuleCall_2_0_1()); }
+)
+{ after(grammarAccess.getProposalSpecificationAccess().getFeatureJvmMemberCrossReference_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ProposalSpecification__ExpressionAssignment_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getProposalSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0()); }
+ ruleXExpression{ after(grammarAccess.getProposalSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewerContentProviderAccess().getChildrenSpecificationsLabelSpecificationParserRuleCall_3_2_0()); }
+ ruleLabelSpecification{ after(grammarAccess.getViewerContentProviderAccess().getChildrenSpecificationsLabelSpecificationParserRuleCall_3_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewSpecification__IdAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewSpecificationAccess().getIdQualifiedNameParserRuleCall_2_0()); }
+ ruleQualifiedName{ after(grammarAccess.getViewSpecificationAccess().getIdQualifiedNameParserRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewSpecification__ViewNameAssignment_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewSpecificationAccess().getViewNameSTRINGTerminalRuleCall_5_0()); }
+ RULE_STRING{ after(grammarAccess.getViewSpecificationAccess().getViewNameSTRINGTerminalRuleCall_5_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewSpecification__TypeAssignment_7
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewSpecificationAccess().getTypeJvmTypeReferenceParserRuleCall_7_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getViewSpecificationAccess().getTypeJvmTypeReferenceParserRuleCall_7_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__ViewSpecification__CategoryAssignment_8_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getViewSpecificationAccess().getCategoryQualifiedNameParserRuleCall_8_1_0()); }
+ ruleQualifiedName{ after(grammarAccess.getViewSpecificationAccess().getCategoryQualifiedNameParserRuleCall_8_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAssignment__FeatureAssignment_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); }
+(
+{ before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1()); }
+ ruleFeatureCallID{ after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1()); }
+)
+{ after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAssignment__ValueAssignment_0_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); }
+ ruleXAssignment{ after(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAssignment__FeatureAssignment_1_1_0_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); }
+(
+{ before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1()); }
+ ruleOpMultiAssign{ after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1()); }
+)
+{ after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAssignment__RightOperandAssignment_1_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); }
+ ruleXAssignment{ after(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__FeatureAssignment_1_0_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+(
+{ before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1()); }
+ ruleOpOr{ after(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1()); }
+)
+{ after(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__RightOperandAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); }
+ ruleXAndExpression{ after(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__FeatureAssignment_1_0_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+(
+{ before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1()); }
+ ruleOpAnd{ after(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1()); }
+)
+{ after(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__RightOperandAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); }
+ ruleXEqualityExpression{ after(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__FeatureAssignment_1_0_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1()); }
+ ruleOpEquality{ after(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1()); }
+)
+{ after(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__RightOperandAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); }
+ ruleXRelationalExpression{ after(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__TypeAssignment_1_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); }
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1()); }
+ ruleOpCompare{ after(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1()); }
+)
+{ after(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__RightOperandAssignment_1_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); }
+ ruleXOtherOperatorExpression{ after(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1()); }
+ ruleOpOther{ after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1()); }
+)
+{ after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__RightOperandAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); }
+ ruleXAdditiveExpression{ after(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+(
+{ before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1()); }
+ ruleOpAdd{ after(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1()); }
+)
+{ after(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XAdditiveExpression__RightOperandAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); }
+ ruleXMultiplicativeExpression{ after(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+(
+{ before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1()); }
+ ruleOpMulti{ after(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1()); }
+)
+{ after(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMultiplicativeExpression__RightOperandAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); }
+ ruleXUnaryOperation{ after(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XUnaryOperation__FeatureAssignment_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); }
+(
+{ before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1()); }
+ ruleOpUnary{ after(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1()); }
+)
+{ after(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XUnaryOperation__OperandAssignment_0_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); }
+ ruleXUnaryOperation{ after(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCastedExpression__TypeAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); }
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); }
+
+ '::'
+
+{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); }
+)
+
+{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); }
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1()); }
+ ruleFeatureCallID{ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1()); }
+)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__ValueAssignment_1_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); }
+ ruleXAssignment{ after(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); }
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); }
+
+ '?.'
+
+{ after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); }
+)
+
+{ after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); }
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); }
+
+ '::'
+
+{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); }
+)
+
+{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); }
+ ruleJvmArgumentTypeReference{ after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); }
+ ruleJvmArgumentTypeReference{ after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__FeatureAssignment_1_1_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); }
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_1_2_0_1()); }
+ ruleFeatureCallID{ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_1_2_0_1()); }
+)
+{ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); }
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); }
+
+ '('
+
+{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); }
+)
+
+{ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); }
+ ruleXShortClosure{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); }
+ ruleXExpression{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); }
+ ruleXExpression{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); }
+ ruleXClosure{ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__ElementsAssignment_3_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); }
+ ruleXExpression{ after(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSetLiteral__ElementsAssignment_3_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); }
+ ruleXExpression{ after(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__ElementsAssignment_3_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); }
+ ruleXExpression{ after(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XListLiteral__ElementsAssignment_3_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); }
+ ruleXExpression{ after(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); }
+ ruleJvmFormalParameter{ after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); }
+ ruleJvmFormalParameter{ after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XClosure__ExplicitSyntaxAssignment_1_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); }
+(
+{ before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); }
+
+ '|'
+
+{ after(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); }
+)
+
+{ after(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XClosure__ExpressionAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); }
+ ruleXExpressionInClosure{ after(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XExpressionInClosure__ExpressionsAssignment_1_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionInsideBlockParserRuleCall_1_0_0()); }
+ ruleXExpressionInsideBlock{ after(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionInsideBlockParserRuleCall_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); }
+ ruleJvmFormalParameter{ after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); }
+ ruleJvmFormalParameter{ after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); }
+(
+{ before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); }
+
+ '|'
+
+{ after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); }
+)
+
+{ after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XShortClosure__ExpressionAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); }
+ ruleXExpression{ after(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__IfAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); }
+ ruleXExpression{ after(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__ThenAssignment_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); }
+ ruleXExpression{ after(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XIfExpression__ElseAssignment_6_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); }
+ ruleXExpression{ after(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameValidIDParserRuleCall_2_0_0_0_0_0()); }
+ ruleValidID{ after(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameValidIDParserRuleCall_2_0_0_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__SwitchAssignment_2_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); }
+ ruleXExpression{ after(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameValidIDParserRuleCall_2_1_0_0_1_0()); }
+ ruleValidID{ after(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameValidIDParserRuleCall_2_1_0_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__SwitchAssignment_2_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); }
+ ruleXExpression{ after(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__CasesAssignment_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); }
+ ruleXCasePart{ after(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XSwitchExpression__DefaultAssignment_5_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); }
+ ruleXExpression{ after(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCasePart__TypeGuardAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_0_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCasePart__CaseAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_1_1_0()); }
+ ruleXExpression{ after(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCasePart__ThenAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0()); }
+ ruleXExpression{ after(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__DeclaredParamAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_3_0()); }
+ ruleJvmFormalParameter{ after(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__ForExpressionAssignment_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_5_0()); }
+ ruleXExpression{ after(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_5_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XForLoopExpression__EachExpressionAssignment_7
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_7_0()); }
+ ruleXExpression{ after(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_7_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__PredicateAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); }
+ ruleXExpression{ after(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XWhileExpression__BodyAssignment_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); }
+ ruleXExpression{ after(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__BodyAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); }
+ ruleXExpression{ after(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XDoWhileExpression__PredicateAssignment_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); }
+ ruleXExpression{ after(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XBlockExpression__ExpressionsAssignment_2_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionInsideBlockParserRuleCall_2_0_0()); }
+ ruleXExpressionInsideBlock{ after(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionInsideBlockParserRuleCall_2_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__WriteableAssignment_1_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); }
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); }
+
+ 'var'
+
+{ after(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); }
+)
+
+{ after(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__TypeAssignment_2_0_0_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__NameAssignment_2_0_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); }
+ ruleValidID{ after(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__NameAssignment_2_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); }
+ ruleValidID{ after(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XVariableDeclaration__RightAssignment_3_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); }
+ ruleXExpression{ after(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmFormalParameter__ParameterTypeAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmFormalParameter__NameAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); }
+ ruleValidID{ after(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FullJvmFormalParameter__ParameterTypeAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__FullJvmFormalParameter__NameAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); }
+ ruleValidID{ after(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__TypeArgumentsAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); }
+ ruleJvmArgumentTypeReference{ after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); }
+ ruleJvmArgumentTypeReference{ after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__FeatureAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); }
+(
+{ before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1()); }
+ ruleIdOrSuper{ after(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1()); }
+)
+{ after(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); }
+(
+{ before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); }
+
+ '('
+
+{ after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); }
+)
+
+{ after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); }
+ ruleXShortClosure{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); }
+ ruleXExpression{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); }
+ ruleXExpression{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFeatureCall__FeatureCallArgumentsAssignment_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); }
+ ruleXClosure{ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__ConstructorAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); }
+(
+{ before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1()); }
+ ruleQualifiedName{ after(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1()); }
+)
+{ after(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__TypeArgumentsAssignment_3_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); }
+ ruleJvmArgumentTypeReference{ after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); }
+ ruleJvmArgumentTypeReference{ after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__ArgumentsAssignment_4_1_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); }
+ ruleXShortClosure{ after(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); }
+ ruleXExpression{ after(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); }
+ ruleXExpression{ after(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XConstructorCall__ArgumentsAssignment_5
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); }
+ ruleXClosure{ after(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XBooleanLiteral__IsTrueAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); }
+(
+{ before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); }
+
+ 'true'
+
+{ after(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); }
+)
+
+{ after(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XNumberLiteral__ValueAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); }
+ ruleNumber{ after(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XStringLiteral__ValueAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); }
+ RULE_STRING{ after(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__TypeAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); }
+(
+{ before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1()); }
+ ruleQualifiedName{ after(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1()); }
+)
+{ after(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTypeLiteral__ArrayDimensionsAssignment_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); }
+ ruleArrayBrackets{ after(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XThrowExpression__ExpressionAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); }
+ ruleXExpression{ after(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XReturnExpression__ExpressionAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); }
+ ruleXExpression{ after(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__ExpressionAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); }
+ ruleXExpression{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); }
+ ruleXCatchClause{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); }
+ ruleXExpression{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); }
+ ruleXExpression{ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCatchClause__DeclaredParamAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); }
+ ruleFullJvmFormalParameter{ after(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XCatchClause__ExpressionAssignment_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); }
+ ruleXExpression{ after(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XFunctionTypeRef__ReturnTypeAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__TypeAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); }
+(
+{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1()); }
+ ruleQualifiedName{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1()); }
+)
+{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); }
+ ruleJvmArgumentTypeReference{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); }
+ ruleJvmArgumentTypeReference{ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0()); }
+ ruleJvmUpperBound{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0()); }
+ ruleJvmLowerBound{ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmUpperBound__TypeReferenceAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__JvmLowerBound__TypeReferenceAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
+ ruleJvmTypeReference{ after(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+rule__XImportSection__ImportDeclarationsAssignment
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0()); }
+ ruleXImportDeclaration{ after(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__StaticAssignment_1_0_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0()); }
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0()); }
+
+ 'static'
+
+{ after(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0()); }
+)
+
+{ after(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__ExtensionAssignment_1_0_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0()); }
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0()); }
+
+ 'extension'
+
+{ after(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0()); }
+)
+
+{ after(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__ImportedTypeAssignment_1_0_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_0_2_0()); }
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_1_0_2_0_1()); }
+ ruleQualifiedName{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_1_0_2_0_1()); }
+)
+{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_0_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__ImportedTypeAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_1_0()); }
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_1_1_0_1()); }
+ ruleQualifiedName{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_1_1_0_1()); }
+)
+{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__ImportedNamespaceAssignment_1_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_2_0()); }
+ ruleQualifiedNameWithWildcard{ after(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+RULE_HEX : ('0x'|'0X') ('0'..'9'|'a'..'f'|'A'..'F'|'_')+ ('#' (('b'|'B') ('i'|'I')|('l'|'L')))?;
+
+RULE_INT : '0'..'9' ('0'..'9'|'_')*;
+
+RULE_DECIMAL : RULE_INT (('e'|'E') ('+'|'-')? RULE_INT)? (('b'|'B') ('i'|'I'|'d'|'D')|('l'|'L'|'d'|'D'|'f'|'F'))?;
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'$'|'_') ('a'..'z'|'A'..'Z'|'$'|'_'|'0'..'9')*;
+
+RULE_STRING : ('"' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'"')))* '"'|'\'' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.tokens b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.tokens
new file mode 100644
index 000000000..74e8c5d17
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.tokens
@@ -0,0 +1,185 @@
+RULE_ID=4
+T__29=29
+T__28=28
+T__27=27
+T__26=26
+T__25=25
+T__24=24
+T__23=23
+T__22=22
+RULE_ANY_OTHER=12
+T__21=21
+T__20=20
+T__93=93
+T__19=19
+T__94=94
+T__91=91
+RULE_HEX=5
+T__92=92
+T__16=16
+T__15=15
+T__90=90
+T__18=18
+T__17=17
+T__14=14
+T__13=13
+RULE_DECIMAL=7
+T__99=99
+T__98=98
+T__97=97
+T__96=96
+T__95=95
+T__80=80
+T__81=81
+T__82=82
+T__83=83
+T__85=85
+T__84=84
+T__87=87
+T__86=86
+T__89=89
+T__88=88
+RULE_ML_COMMENT=9
+RULE_STRING=8
+T__71=71
+T__72=72
+T__70=70
+T__76=76
+T__75=75
+T__74=74
+T__73=73
+T__79=79
+T__78=78
+T__77=77
+T__68=68
+T__69=69
+T__66=66
+T__67=67
+T__64=64
+T__65=65
+T__62=62
+T__63=63
+T__61=61
+T__60=60
+T__55=55
+T__56=56
+T__57=57
+T__58=58
+T__51=51
+T__52=52
+T__53=53
+T__54=54
+T__59=59
+RULE_INT=6
+T__50=50
+T__42=42
+T__43=43
+T__40=40
+T__41=41
+T__46=46
+T__47=47
+T__44=44
+T__45=45
+T__48=48
+T__49=49
+T__100=100
+RULE_SL_COMMENT=10
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+RULE_WS=11
+'instanceof'=70
+'#'=73
+'>='=22
+'text'=53
+'/'=37
+'=='=18
+'switch'=80
+'>'=24
+'||'=14
+'extension'=45
+'&&'=15
+';'=76
+'control'=61
+'return'=90
+'==='=20
+'<>'=30
+'for'=83
+'propertyDescriptionProvider'=55
+'?.'=97
+'+'=33
+'viewerContentProvider'=64
+'viewcategory'=69
+'=>'=29
+'.'=40
+'import'=44
+'?:'=31
+'static'=43
+'true'=100
+'viewpart'=66
+'catch'=93
+'else'=79
+'extends'=42
+'+='=16
+'{'=49
+'as'=71
+'?'=94
+'try'=91
+'var'=99
+'children'=65
+'if'=78
+'('=77
+':'=56
+'while'=84
+'**'=36
+'-'=34
+'featuresProvider'=57
+','=59
+'formControlFactory'=60
+'default'=81
+'viewname'=67
+'-='=17
+']'=75
+'..'=28
+'!'=39
+'|'=98
+'finally'=92
+'..<'=27
+'labelProvider'=52
+'new'=86
+'val'=41
+'null'=87
+'typeof'=88
+'module'=48
+'<=>'=32
+'='=13
+'features'=58
+'::'=96
+'throw'=89
+')'=72
+'->'=26
+'%'=38
+'do'=85
+'target'=62
+'super'=46
+'case'=82
+'}'=50
+'parts'=51
+'<='=23
+'!='=19
+'!=='=21
+'false'=47
+'<'=25
+'['=74
+'proposals'=63
+'*'=35
+'viewclass'=68
+'&'=95
+'image'=54
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDslLexer.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDslLexer.java
new file mode 100644
index 000000000..f619feacd
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDslLexer.java
@@ -0,0 +1,4190 @@
+package org.eclipse.emf.parsley.dsl.ui.contentassist.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalEmfParsleyDslLexer extends Lexer {
+ public static final int RULE_ID=4;
+ public static final int T__29=29;
+ public static final int T__28=28;
+ public static final int T__27=27;
+ public static final int T__26=26;
+ public static final int T__25=25;
+ public static final int T__24=24;
+ public static final int T__23=23;
+ public static final int T__22=22;
+ public static final int RULE_ANY_OTHER=12;
+ public static final int T__21=21;
+ public static final int T__20=20;
+ public static final int EOF=-1;
+ public static final int T__93=93;
+ public static final int T__19=19;
+ public static final int T__94=94;
+ public static final int T__91=91;
+ public static final int T__92=92;
+ public static final int RULE_HEX=5;
+ public static final int T__16=16;
+ public static final int T__90=90;
+ public static final int T__15=15;
+ public static final int T__18=18;
+ public static final int T__17=17;
+ public static final int T__14=14;
+ public static final int T__13=13;
+ public static final int RULE_DECIMAL=7;
+ public static final int T__99=99;
+ public static final int T__98=98;
+ public static final int T__97=97;
+ public static final int T__96=96;
+ public static final int T__95=95;
+ public static final int T__80=80;
+ public static final int T__81=81;
+ public static final int T__82=82;
+ public static final int T__83=83;
+ public static final int T__85=85;
+ public static final int T__84=84;
+ public static final int T__87=87;
+ public static final int T__86=86;
+ public static final int T__89=89;
+ public static final int T__88=88;
+ public static final int RULE_ML_COMMENT=9;
+ public static final int RULE_STRING=8;
+ public static final int T__71=71;
+ public static final int T__72=72;
+ public static final int T__70=70;
+ public static final int T__76=76;
+ public static final int T__75=75;
+ public static final int T__74=74;
+ public static final int T__73=73;
+ public static final int T__79=79;
+ public static final int T__78=78;
+ public static final int T__77=77;
+ public static final int T__68=68;
+ public static final int T__69=69;
+ public static final int T__66=66;
+ public static final int T__67=67;
+ public static final int T__64=64;
+ public static final int T__65=65;
+ public static final int T__62=62;
+ public static final int T__63=63;
+ public static final int T__61=61;
+ public static final int T__60=60;
+ public static final int T__55=55;
+ public static final int T__56=56;
+ public static final int T__57=57;
+ public static final int T__58=58;
+ public static final int T__51=51;
+ public static final int T__52=52;
+ public static final int T__53=53;
+ public static final int T__54=54;
+ public static final int T__59=59;
+ public static final int RULE_INT=6;
+ public static final int T__50=50;
+ public static final int T__42=42;
+ public static final int T__43=43;
+ public static final int T__40=40;
+ public static final int T__41=41;
+ public static final int T__46=46;
+ public static final int T__47=47;
+ public static final int T__44=44;
+ public static final int T__45=45;
+ public static final int T__48=48;
+ public static final int T__49=49;
+ public static final int T__100=100;
+ public static final int RULE_SL_COMMENT=10;
+ public static final int T__30=30;
+ public static final int T__31=31;
+ public static final int T__32=32;
+ public static final int T__33=33;
+ public static final int T__34=34;
+ public static final int T__35=35;
+ public static final int T__36=36;
+ public static final int T__37=37;
+ public static final int T__38=38;
+ public static final int T__39=39;
+ public static final int RULE_WS=11;
+
+ // delegates
+ // delegators
+
+ public InternalEmfParsleyDslLexer() {;}
+ public InternalEmfParsleyDslLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalEmfParsleyDslLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g"; }
+
+ // $ANTLR start "T__13"
+ public final void mT__13() throws RecognitionException {
+ try {
+ int _type = T__13;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11:7: ( '=' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11:9: '='
+ {
+ match('=');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__13"
+
+ // $ANTLR start "T__14"
+ public final void mT__14() throws RecognitionException {
+ try {
+ int _type = T__14;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12:7: ( '||' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12:9: '||'
+ {
+ match("||");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__14"
+
+ // $ANTLR start "T__15"
+ public final void mT__15() throws RecognitionException {
+ try {
+ int _type = T__15;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13:7: ( '&&' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13:9: '&&'
+ {
+ match("&&");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__15"
+
+ // $ANTLR start "T__16"
+ public final void mT__16() throws RecognitionException {
+ try {
+ int _type = T__16;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14:7: ( '+=' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14:9: '+='
+ {
+ match("+=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__16"
+
+ // $ANTLR start "T__17"
+ public final void mT__17() throws RecognitionException {
+ try {
+ int _type = T__17;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15:7: ( '-=' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15:9: '-='
+ {
+ match("-=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__17"
+
+ // $ANTLR start "T__18"
+ public final void mT__18() throws RecognitionException {
+ try {
+ int _type = T__18;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16:7: ( '==' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16:9: '=='
+ {
+ match("==");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__18"
+
+ // $ANTLR start "T__19"
+ public final void mT__19() throws RecognitionException {
+ try {
+ int _type = T__19;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17:7: ( '!=' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17:9: '!='
+ {
+ match("!=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__19"
+
+ // $ANTLR start "T__20"
+ public final void mT__20() throws RecognitionException {
+ try {
+ int _type = T__20;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18:7: ( '===' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18:9: '==='
+ {
+ match("===");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__20"
+
+ // $ANTLR start "T__21"
+ public final void mT__21() throws RecognitionException {
+ try {
+ int _type = T__21;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19:7: ( '!==' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19:9: '!=='
+ {
+ match("!==");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__21"
+
+ // $ANTLR start "T__22"
+ public final void mT__22() throws RecognitionException {
+ try {
+ int _type = T__22;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20:7: ( '>=' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20:9: '>='
+ {
+ match(">=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__22"
+
+ // $ANTLR start "T__23"
+ public final void mT__23() throws RecognitionException {
+ try {
+ int _type = T__23;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21:7: ( '<=' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21:9: '<='
+ {
+ match("<=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__23"
+
+ // $ANTLR start "T__24"
+ public final void mT__24() throws RecognitionException {
+ try {
+ int _type = T__24;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:22:7: ( '>' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:22:9: '>'
+ {
+ match('>');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__24"
+
+ // $ANTLR start "T__25"
+ public final void mT__25() throws RecognitionException {
+ try {
+ int _type = T__25;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:23:7: ( '<' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:23:9: '<'
+ {
+ match('<');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__25"
+
+ // $ANTLR start "T__26"
+ public final void mT__26() throws RecognitionException {
+ try {
+ int _type = T__26;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:24:7: ( '->' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:24:9: '->'
+ {
+ match("->");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__26"
+
+ // $ANTLR start "T__27"
+ public final void mT__27() throws RecognitionException {
+ try {
+ int _type = T__27;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:25:7: ( '..<' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:25:9: '..<'
+ {
+ match("..<");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__27"
+
+ // $ANTLR start "T__28"
+ public final void mT__28() throws RecognitionException {
+ try {
+ int _type = T__28;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:26:7: ( '..' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:26:9: '..'
+ {
+ match("..");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__28"
+
+ // $ANTLR start "T__29"
+ public final void mT__29() throws RecognitionException {
+ try {
+ int _type = T__29;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:27:7: ( '=>' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:27:9: '=>'
+ {
+ match("=>");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__29"
+
+ // $ANTLR start "T__30"
+ public final void mT__30() throws RecognitionException {
+ try {
+ int _type = T__30;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:28:7: ( '<>' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:28:9: '<>'
+ {
+ match("<>");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__30"
+
+ // $ANTLR start "T__31"
+ public final void mT__31() throws RecognitionException {
+ try {
+ int _type = T__31;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:29:7: ( '?:' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:29:9: '?:'
+ {
+ match("?:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__31"
+
+ // $ANTLR start "T__32"
+ public final void mT__32() throws RecognitionException {
+ try {
+ int _type = T__32;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:30:7: ( '<=>' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:30:9: '<=>'
+ {
+ match("<=>");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__32"
+
+ // $ANTLR start "T__33"
+ public final void mT__33() throws RecognitionException {
+ try {
+ int _type = T__33;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:31:7: ( '+' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:31:9: '+'
+ {
+ match('+');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__33"
+
+ // $ANTLR start "T__34"
+ public final void mT__34() throws RecognitionException {
+ try {
+ int _type = T__34;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:32:7: ( '-' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:32:9: '-'
+ {
+ match('-');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__34"
+
+ // $ANTLR start "T__35"
+ public final void mT__35() throws RecognitionException {
+ try {
+ int _type = T__35;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:33:7: ( '*' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:33:9: '*'
+ {
+ match('*');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__35"
+
+ // $ANTLR start "T__36"
+ public final void mT__36() throws RecognitionException {
+ try {
+ int _type = T__36;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:34:7: ( '**' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:34:9: '**'
+ {
+ match("**");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__36"
+
+ // $ANTLR start "T__37"
+ public final void mT__37() throws RecognitionException {
+ try {
+ int _type = T__37;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:35:7: ( '/' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:35:9: '/'
+ {
+ match('/');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__37"
+
+ // $ANTLR start "T__38"
+ public final void mT__38() throws RecognitionException {
+ try {
+ int _type = T__38;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:36:7: ( '%' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:36:9: '%'
+ {
+ match('%');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__38"
+
+ // $ANTLR start "T__39"
+ public final void mT__39() throws RecognitionException {
+ try {
+ int _type = T__39;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:37:7: ( '!' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:37:9: '!'
+ {
+ match('!');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__39"
+
+ // $ANTLR start "T__40"
+ public final void mT__40() throws RecognitionException {
+ try {
+ int _type = T__40;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:38:7: ( '.' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:38:9: '.'
+ {
+ match('.');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__40"
+
+ // $ANTLR start "T__41"
+ public final void mT__41() throws RecognitionException {
+ try {
+ int _type = T__41;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:39:7: ( 'val' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:39:9: 'val'
+ {
+ match("val");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__41"
+
+ // $ANTLR start "T__42"
+ public final void mT__42() throws RecognitionException {
+ try {
+ int _type = T__42;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:40:7: ( 'extends' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:40:9: 'extends'
+ {
+ match("extends");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__42"
+
+ // $ANTLR start "T__43"
+ public final void mT__43() throws RecognitionException {
+ try {
+ int _type = T__43;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:41:7: ( 'static' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:41:9: 'static'
+ {
+ match("static");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__43"
+
+ // $ANTLR start "T__44"
+ public final void mT__44() throws RecognitionException {
+ try {
+ int _type = T__44;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:42:7: ( 'import' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:42:9: 'import'
+ {
+ match("import");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__44"
+
+ // $ANTLR start "T__45"
+ public final void mT__45() throws RecognitionException {
+ try {
+ int _type = T__45;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:43:7: ( 'extension' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:43:9: 'extension'
+ {
+ match("extension");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__45"
+
+ // $ANTLR start "T__46"
+ public final void mT__46() throws RecognitionException {
+ try {
+ int _type = T__46;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:44:7: ( 'super' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:44:9: 'super'
+ {
+ match("super");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__46"
+
+ // $ANTLR start "T__47"
+ public final void mT__47() throws RecognitionException {
+ try {
+ int _type = T__47;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:45:7: ( 'false' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:45:9: 'false'
+ {
+ match("false");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__47"
+
+ // $ANTLR start "T__48"
+ public final void mT__48() throws RecognitionException {
+ try {
+ int _type = T__48;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:46:7: ( 'module' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:46:9: 'module'
+ {
+ match("module");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__48"
+
+ // $ANTLR start "T__49"
+ public final void mT__49() throws RecognitionException {
+ try {
+ int _type = T__49;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:47:7: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:47:9: '{'
+ {
+ match('{');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__49"
+
+ // $ANTLR start "T__50"
+ public final void mT__50() throws RecognitionException {
+ try {
+ int _type = T__50;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:48:7: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:48:9: '}'
+ {
+ match('}');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__50"
+
+ // $ANTLR start "T__51"
+ public final void mT__51() throws RecognitionException {
+ try {
+ int _type = T__51;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:49:7: ( 'parts' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:49:9: 'parts'
+ {
+ match("parts");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__51"
+
+ // $ANTLR start "T__52"
+ public final void mT__52() throws RecognitionException {
+ try {
+ int _type = T__52;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:50:7: ( 'labelProvider' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:50:9: 'labelProvider'
+ {
+ match("labelProvider");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__52"
+
+ // $ANTLR start "T__53"
+ public final void mT__53() throws RecognitionException {
+ try {
+ int _type = T__53;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:51:7: ( 'text' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:51:9: 'text'
+ {
+ match("text");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__53"
+
+ // $ANTLR start "T__54"
+ public final void mT__54() throws RecognitionException {
+ try {
+ int _type = T__54;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:52:7: ( 'image' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:52:9: 'image'
+ {
+ match("image");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__54"
+
+ // $ANTLR start "T__55"
+ public final void mT__55() throws RecognitionException {
+ try {
+ int _type = T__55;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:53:7: ( 'propertyDescriptionProvider' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:53:9: 'propertyDescriptionProvider'
+ {
+ match("propertyDescriptionProvider");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__55"
+
+ // $ANTLR start "T__56"
+ public final void mT__56() throws RecognitionException {
+ try {
+ int _type = T__56;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:54:7: ( ':' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:54:9: ':'
+ {
+ match(':');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__56"
+
+ // $ANTLR start "T__57"
+ public final void mT__57() throws RecognitionException {
+ try {
+ int _type = T__57;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:55:7: ( 'featuresProvider' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:55:9: 'featuresProvider'
+ {
+ match("featuresProvider");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__57"
+
+ // $ANTLR start "T__58"
+ public final void mT__58() throws RecognitionException {
+ try {
+ int _type = T__58;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:56:7: ( 'features' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:56:9: 'features'
+ {
+ match("features");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__58"
+
+ // $ANTLR start "T__59"
+ public final void mT__59() throws RecognitionException {
+ try {
+ int _type = T__59;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:57:7: ( ',' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:57:9: ','
+ {
+ match(',');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__59"
+
+ // $ANTLR start "T__60"
+ public final void mT__60() throws RecognitionException {
+ try {
+ int _type = T__60;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:58:7: ( 'formControlFactory' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:58:9: 'formControlFactory'
+ {
+ match("formControlFactory");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__60"
+
+ // $ANTLR start "T__61"
+ public final void mT__61() throws RecognitionException {
+ try {
+ int _type = T__61;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:59:7: ( 'control' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:59:9: 'control'
+ {
+ match("control");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__61"
+
+ // $ANTLR start "T__62"
+ public final void mT__62() throws RecognitionException {
+ try {
+ int _type = T__62;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:60:7: ( 'target' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:60:9: 'target'
+ {
+ match("target");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__62"
+
+ // $ANTLR start "T__63"
+ public final void mT__63() throws RecognitionException {
+ try {
+ int _type = T__63;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:61:7: ( 'proposals' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:61:9: 'proposals'
+ {
+ match("proposals");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__63"
+
+ // $ANTLR start "T__64"
+ public final void mT__64() throws RecognitionException {
+ try {
+ int _type = T__64;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:62:7: ( 'viewerContentProvider' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:62:9: 'viewerContentProvider'
+ {
+ match("viewerContentProvider");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__64"
+
+ // $ANTLR start "T__65"
+ public final void mT__65() throws RecognitionException {
+ try {
+ int _type = T__65;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:63:7: ( 'children' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:63:9: 'children'
+ {
+ match("children");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__65"
+
+ // $ANTLR start "T__66"
+ public final void mT__66() throws RecognitionException {
+ try {
+ int _type = T__66;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:64:7: ( 'viewpart' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:64:9: 'viewpart'
+ {
+ match("viewpart");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__66"
+
+ // $ANTLR start "T__67"
+ public final void mT__67() throws RecognitionException {
+ try {
+ int _type = T__67;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:65:7: ( 'viewname' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:65:9: 'viewname'
+ {
+ match("viewname");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__67"
+
+ // $ANTLR start "T__68"
+ public final void mT__68() throws RecognitionException {
+ try {
+ int _type = T__68;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:66:7: ( 'viewclass' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:66:9: 'viewclass'
+ {
+ match("viewclass");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__68"
+
+ // $ANTLR start "T__69"
+ public final void mT__69() throws RecognitionException {
+ try {
+ int _type = T__69;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:67:7: ( 'viewcategory' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:67:9: 'viewcategory'
+ {
+ match("viewcategory");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__69"
+
+ // $ANTLR start "T__70"
+ public final void mT__70() throws RecognitionException {
+ try {
+ int _type = T__70;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:68:7: ( 'instanceof' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:68:9: 'instanceof'
+ {
+ match("instanceof");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__70"
+
+ // $ANTLR start "T__71"
+ public final void mT__71() throws RecognitionException {
+ try {
+ int _type = T__71;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:69:7: ( 'as' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:69:9: 'as'
+ {
+ match("as");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__71"
+
+ // $ANTLR start "T__72"
+ public final void mT__72() throws RecognitionException {
+ try {
+ int _type = T__72;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:70:7: ( ')' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:70:9: ')'
+ {
+ match(')');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__72"
+
+ // $ANTLR start "T__73"
+ public final void mT__73() throws RecognitionException {
+ try {
+ int _type = T__73;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:71:7: ( '#' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:71:9: '#'
+ {
+ match('#');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__73"
+
+ // $ANTLR start "T__74"
+ public final void mT__74() throws RecognitionException {
+ try {
+ int _type = T__74;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:72:7: ( '[' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:72:9: '['
+ {
+ match('[');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__74"
+
+ // $ANTLR start "T__75"
+ public final void mT__75() throws RecognitionException {
+ try {
+ int _type = T__75;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:73:7: ( ']' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:73:9: ']'
+ {
+ match(']');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__75"
+
+ // $ANTLR start "T__76"
+ public final void mT__76() throws RecognitionException {
+ try {
+ int _type = T__76;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:74:7: ( ';' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:74:9: ';'
+ {
+ match(';');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__76"
+
+ // $ANTLR start "T__77"
+ public final void mT__77() throws RecognitionException {
+ try {
+ int _type = T__77;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:75:7: ( '(' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:75:9: '('
+ {
+ match('(');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__77"
+
+ // $ANTLR start "T__78"
+ public final void mT__78() throws RecognitionException {
+ try {
+ int _type = T__78;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:76:7: ( 'if' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:76:9: 'if'
+ {
+ match("if");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__78"
+
+ // $ANTLR start "T__79"
+ public final void mT__79() throws RecognitionException {
+ try {
+ int _type = T__79;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:77:7: ( 'else' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:77:9: 'else'
+ {
+ match("else");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__79"
+
+ // $ANTLR start "T__80"
+ public final void mT__80() throws RecognitionException {
+ try {
+ int _type = T__80;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:78:7: ( 'switch' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:78:9: 'switch'
+ {
+ match("switch");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__80"
+
+ // $ANTLR start "T__81"
+ public final void mT__81() throws RecognitionException {
+ try {
+ int _type = T__81;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:79:7: ( 'default' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:79:9: 'default'
+ {
+ match("default");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__81"
+
+ // $ANTLR start "T__82"
+ public final void mT__82() throws RecognitionException {
+ try {
+ int _type = T__82;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:80:7: ( 'case' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:80:9: 'case'
+ {
+ match("case");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__82"
+
+ // $ANTLR start "T__83"
+ public final void mT__83() throws RecognitionException {
+ try {
+ int _type = T__83;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:81:7: ( 'for' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:81:9: 'for'
+ {
+ match("for");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__83"
+
+ // $ANTLR start "T__84"
+ public final void mT__84() throws RecognitionException {
+ try {
+ int _type = T__84;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:82:7: ( 'while' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:82:9: 'while'
+ {
+ match("while");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__84"
+
+ // $ANTLR start "T__85"
+ public final void mT__85() throws RecognitionException {
+ try {
+ int _type = T__85;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:83:7: ( 'do' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:83:9: 'do'
+ {
+ match("do");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__85"
+
+ // $ANTLR start "T__86"
+ public final void mT__86() throws RecognitionException {
+ try {
+ int _type = T__86;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:84:7: ( 'new' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:84:9: 'new'
+ {
+ match("new");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__86"
+
+ // $ANTLR start "T__87"
+ public final void mT__87() throws RecognitionException {
+ try {
+ int _type = T__87;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:85:7: ( 'null' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:85:9: 'null'
+ {
+ match("null");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__87"
+
+ // $ANTLR start "T__88"
+ public final void mT__88() throws RecognitionException {
+ try {
+ int _type = T__88;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:86:7: ( 'typeof' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:86:9: 'typeof'
+ {
+ match("typeof");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__88"
+
+ // $ANTLR start "T__89"
+ public final void mT__89() throws RecognitionException {
+ try {
+ int _type = T__89;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:87:7: ( 'throw' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:87:9: 'throw'
+ {
+ match("throw");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__89"
+
+ // $ANTLR start "T__90"
+ public final void mT__90() throws RecognitionException {
+ try {
+ int _type = T__90;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:88:7: ( 'return' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:88:9: 'return'
+ {
+ match("return");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__90"
+
+ // $ANTLR start "T__91"
+ public final void mT__91() throws RecognitionException {
+ try {
+ int _type = T__91;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:89:7: ( 'try' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:89:9: 'try'
+ {
+ match("try");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__91"
+
+ // $ANTLR start "T__92"
+ public final void mT__92() throws RecognitionException {
+ try {
+ int _type = T__92;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:90:7: ( 'finally' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:90:9: 'finally'
+ {
+ match("finally");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__92"
+
+ // $ANTLR start "T__93"
+ public final void mT__93() throws RecognitionException {
+ try {
+ int _type = T__93;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:91:7: ( 'catch' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:91:9: 'catch'
+ {
+ match("catch");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__93"
+
+ // $ANTLR start "T__94"
+ public final void mT__94() throws RecognitionException {
+ try {
+ int _type = T__94;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:92:7: ( '?' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:92:9: '?'
+ {
+ match('?');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__94"
+
+ // $ANTLR start "T__95"
+ public final void mT__95() throws RecognitionException {
+ try {
+ int _type = T__95;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:93:7: ( '&' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:93:9: '&'
+ {
+ match('&');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__95"
+
+ // $ANTLR start "T__96"
+ public final void mT__96() throws RecognitionException {
+ try {
+ int _type = T__96;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:94:7: ( '::' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:94:9: '::'
+ {
+ match("::");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__96"
+
+ // $ANTLR start "T__97"
+ public final void mT__97() throws RecognitionException {
+ try {
+ int _type = T__97;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:95:7: ( '?.' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:95:9: '?.'
+ {
+ match("?.");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__97"
+
+ // $ANTLR start "T__98"
+ public final void mT__98() throws RecognitionException {
+ try {
+ int _type = T__98;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:96:7: ( '|' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:96:9: '|'
+ {
+ match('|');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__98"
+
+ // $ANTLR start "T__99"
+ public final void mT__99() throws RecognitionException {
+ try {
+ int _type = T__99;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:97:7: ( 'var' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:97:9: 'var'
+ {
+ match("var");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__99"
+
+ // $ANTLR start "T__100"
+ public final void mT__100() throws RecognitionException {
+ try {
+ int _type = T__100;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:98:8: ( 'true' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:98:10: 'true'
+ {
+ match("true");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__100"
+
+ // $ANTLR start "RULE_HEX"
+ public final void mRULE_HEX() throws RecognitionException {
+ try {
+ int _type = RULE_HEX;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21553:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21553:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21553:12: ( '0x' | '0X' )
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='0') ) {
+ int LA1_1 = input.LA(2);
+
+ if ( (LA1_1=='x') ) {
+ alt1=1;
+ }
+ else if ( (LA1_1=='X') ) {
+ alt1=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 1, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 1, 0, input);
+
+ throw nvae;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21553:13: '0x'
+ {
+ match("0x");
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21553:18: '0X'
+ {
+ match("0X");
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21553:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+ int cnt2=0;
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='F')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='f')) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='f') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ if ( cnt2 >= 1 ) break loop2;
+ EarlyExitException eee =
+ new EarlyExitException(2, input);
+ throw eee;
+ }
+ cnt2++;
+ } while (true);
+
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21553:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0=='#') ) {
+ alt4=1;
+ }
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21553:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+ {
+ match('#');
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21553:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0=='B'||LA3_0=='b') ) {
+ alt3=1;
+ }
+ else if ( (LA3_0=='L'||LA3_0=='l') ) {
+ alt3=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 3, 0, input);
+
+ throw nvae;
+ }
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21553:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+ {
+ if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ if ( input.LA(1)=='I'||input.LA(1)=='i' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21553:84: ( 'l' | 'L' )
+ {
+ if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_HEX"
+
+ // $ANTLR start "RULE_INT"
+ public final void mRULE_INT() throws RecognitionException {
+ try {
+ int _type = RULE_INT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21555:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21555:12: '0' .. '9' ( '0' .. '9' | '_' )*
+ {
+ matchRange('0','9');
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21555:21: ( '0' .. '9' | '_' )*
+ loop5:
+ do {
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( ((LA5_0>='0' && LA5_0<='9')||LA5_0=='_') ) {
+ alt5=1;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||input.LA(1)=='_' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop5;
+ }
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INT"
+
+ // $ANTLR start "RULE_DECIMAL"
+ public final void mRULE_DECIMAL() throws RecognitionException {
+ try {
+ int _type = RULE_DECIMAL;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21557:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21557:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+ {
+ mRULE_INT();
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21557:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0=='E'||LA7_0=='e') ) {
+ alt7=1;
+ }
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21557:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+ {
+ if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21557:36: ( '+' | '-' )?
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0=='+'||LA6_0=='-') ) {
+ alt6=1;
+ }
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:
+ {
+ if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ }
+
+ mRULE_INT();
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21557:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+ int alt8=3;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0=='B'||LA8_0=='b') ) {
+ alt8=1;
+ }
+ else if ( (LA8_0=='D'||LA8_0=='F'||LA8_0=='L'||LA8_0=='d'||LA8_0=='f'||LA8_0=='l') ) {
+ alt8=2;
+ }
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21557:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+ {
+ if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ if ( input.LA(1)=='D'||input.LA(1)=='I'||input.LA(1)=='d'||input.LA(1)=='i' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21557:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+ {
+ if ( input.LA(1)=='D'||input.LA(1)=='F'||input.LA(1)=='L'||input.LA(1)=='d'||input.LA(1)=='f'||input.LA(1)=='l' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_DECIMAL"
+
+ // $ANTLR start "RULE_ID"
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21559:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21559:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21559:11: ( '^' )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='^') ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21559:11: '^'
+ {
+ match('^');
+
+ }
+ break;
+
+ }
+
+ if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21559:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+ loop10:
+ do {
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0=='$'||(LA10_0>='0' && LA10_0<='9')||(LA10_0>='A' && LA10_0<='Z')||LA10_0=='_'||(LA10_0>='a' && LA10_0<='z')) ) {
+ alt10=1;
+ }
+
+
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:
+ {
+ if ( input.LA(1)=='$'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop10;
+ }
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ID"
+
+ // $ANTLR start "RULE_STRING"
+ public final void mRULE_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_STRING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21561:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21561:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21561:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( (LA13_0=='\"') ) {
+ alt13=1;
+ }
+ else if ( (LA13_0=='\'') ) {
+ alt13=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 13, 0, input);
+
+ throw nvae;
+ }
+ switch (alt13) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21561:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21561:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
+ loop11:
+ do {
+ int alt11=3;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0=='\\') ) {
+ alt11=1;
+ }
+ else if ( ((LA11_0>='\u0000' && LA11_0<='!')||(LA11_0>='#' && LA11_0<='[')||(LA11_0>=']' && LA11_0<='\uFFFF')) ) {
+ alt11=2;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21561:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21561:66: ~ ( ( '\\\\' | '\"' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop11;
+ }
+ } while (true);
+
+ match('\"');
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21561:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ {
+ match('\'');
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21561:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
+ loop12:
+ do {
+ int alt12=3;
+ int LA12_0 = input.LA(1);
+
+ if ( (LA12_0=='\\') ) {
+ alt12=1;
+ }
+ else if ( ((LA12_0>='\u0000' && LA12_0<='&')||(LA12_0>='(' && LA12_0<='[')||(LA12_0>=']' && LA12_0<='\uFFFF')) ) {
+ alt12=2;
+ }
+
+
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21561:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21561:137: ~ ( ( '\\\\' | '\\'' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop12;
+ }
+ } while (true);
+
+ match('\'');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_STRING"
+
+ // $ANTLR start "RULE_ML_COMMENT"
+ public final void mRULE_ML_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_ML_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21563:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21563:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21563:24: ( options {greedy=false; } : . )*
+ loop14:
+ do {
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0=='*') ) {
+ int LA14_1 = input.LA(2);
+
+ if ( (LA14_1=='/') ) {
+ alt14=2;
+ }
+ else if ( ((LA14_1>='\u0000' && LA14_1<='.')||(LA14_1>='0' && LA14_1<='\uFFFF')) ) {
+ alt14=1;
+ }
+
+
+ }
+ else if ( ((LA14_0>='\u0000' && LA14_0<=')')||(LA14_0>='+' && LA14_0<='\uFFFF')) ) {
+ alt14=1;
+ }
+
+
+ switch (alt14) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21563:52: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop14;
+ }
+ } while (true);
+
+ match("*/");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ML_COMMENT"
+
+ // $ANTLR start "RULE_SL_COMMENT"
+ public final void mRULE_SL_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_SL_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21565:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21565:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21565:24: (~ ( ( '\\n' | '\\r' ) ) )*
+ loop15:
+ do {
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+
+ if ( ((LA15_0>='\u0000' && LA15_0<='\t')||(LA15_0>='\u000B' && LA15_0<='\f')||(LA15_0>='\u000E' && LA15_0<='\uFFFF')) ) {
+ alt15=1;
+ }
+
+
+ switch (alt15) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21565:24: ~ ( ( '\\n' | '\\r' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop15;
+ }
+ } while (true);
+
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21565:40: ( ( '\\r' )? '\\n' )?
+ int alt17=2;
+ int LA17_0 = input.LA(1);
+
+ if ( (LA17_0=='\n'||LA17_0=='\r') ) {
+ alt17=1;
+ }
+ switch (alt17) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21565:41: ( '\\r' )? '\\n'
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21565:41: ( '\\r' )?
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( (LA16_0=='\r') ) {
+ alt16=1;
+ }
+ switch (alt16) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21565:41: '\\r'
+ {
+ match('\r');
+
+ }
+ break;
+
+ }
+
+ match('\n');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SL_COMMENT"
+
+ // $ANTLR start "RULE_WS"
+ public final void mRULE_WS() throws RecognitionException {
+ try {
+ int _type = RULE_WS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21567:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21567:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21567:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ int cnt18=0;
+ loop18:
+ do {
+ int alt18=2;
+ int LA18_0 = input.LA(1);
+
+ if ( ((LA18_0>='\t' && LA18_0<='\n')||LA18_0=='\r'||LA18_0==' ') ) {
+ alt18=1;
+ }
+
+
+ switch (alt18) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:
+ {
+ if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ if ( cnt18 >= 1 ) break loop18;
+ EarlyExitException eee =
+ new EarlyExitException(18, input);
+ throw eee;
+ }
+ cnt18++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_WS"
+
+ // $ANTLR start "RULE_ANY_OTHER"
+ public final void mRULE_ANY_OTHER() throws RecognitionException {
+ try {
+ int _type = RULE_ANY_OTHER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21569:16: ( . )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21569:18: .
+ {
+ matchAny();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ANY_OTHER"
+
+ public void mTokens() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+ int alt19=97;
+ alt19 = dfa19.predict(input);
+ switch (alt19) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:10: T__13
+ {
+ mT__13();
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:16: T__14
+ {
+ mT__14();
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:22: T__15
+ {
+ mT__15();
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:28: T__16
+ {
+ mT__16();
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:34: T__17
+ {
+ mT__17();
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:40: T__18
+ {
+ mT__18();
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:46: T__19
+ {
+ mT__19();
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:52: T__20
+ {
+ mT__20();
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:58: T__21
+ {
+ mT__21();
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:64: T__22
+ {
+ mT__22();
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:70: T__23
+ {
+ mT__23();
+
+ }
+ break;
+ case 12 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:76: T__24
+ {
+ mT__24();
+
+ }
+ break;
+ case 13 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:82: T__25
+ {
+ mT__25();
+
+ }
+ break;
+ case 14 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:88: T__26
+ {
+ mT__26();
+
+ }
+ break;
+ case 15 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:94: T__27
+ {
+ mT__27();
+
+ }
+ break;
+ case 16 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:100: T__28
+ {
+ mT__28();
+
+ }
+ break;
+ case 17 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:106: T__29
+ {
+ mT__29();
+
+ }
+ break;
+ case 18 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:112: T__30
+ {
+ mT__30();
+
+ }
+ break;
+ case 19 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:118: T__31
+ {
+ mT__31();
+
+ }
+ break;
+ case 20 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:124: T__32
+ {
+ mT__32();
+
+ }
+ break;
+ case 21 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:130: T__33
+ {
+ mT__33();
+
+ }
+ break;
+ case 22 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:136: T__34
+ {
+ mT__34();
+
+ }
+ break;
+ case 23 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:142: T__35
+ {
+ mT__35();
+
+ }
+ break;
+ case 24 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:148: T__36
+ {
+ mT__36();
+
+ }
+ break;
+ case 25 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:154: T__37
+ {
+ mT__37();
+
+ }
+ break;
+ case 26 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:160: T__38
+ {
+ mT__38();
+
+ }
+ break;
+ case 27 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:166: T__39
+ {
+ mT__39();
+
+ }
+ break;
+ case 28 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:172: T__40
+ {
+ mT__40();
+
+ }
+ break;
+ case 29 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:178: T__41
+ {
+ mT__41();
+
+ }
+ break;
+ case 30 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:184: T__42
+ {
+ mT__42();
+
+ }
+ break;
+ case 31 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:190: T__43
+ {
+ mT__43();
+
+ }
+ break;
+ case 32 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:196: T__44
+ {
+ mT__44();
+
+ }
+ break;
+ case 33 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:202: T__45
+ {
+ mT__45();
+
+ }
+ break;
+ case 34 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:208: T__46
+ {
+ mT__46();
+
+ }
+ break;
+ case 35 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:214: T__47
+ {
+ mT__47();
+
+ }
+ break;
+ case 36 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:220: T__48
+ {
+ mT__48();
+
+ }
+ break;
+ case 37 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:226: T__49
+ {
+ mT__49();
+
+ }
+ break;
+ case 38 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:232: T__50
+ {
+ mT__50();
+
+ }
+ break;
+ case 39 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:238: T__51
+ {
+ mT__51();
+
+ }
+ break;
+ case 40 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:244: T__52
+ {
+ mT__52();
+
+ }
+ break;
+ case 41 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:250: T__53
+ {
+ mT__53();
+
+ }
+ break;
+ case 42 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:256: T__54
+ {
+ mT__54();
+
+ }
+ break;
+ case 43 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:262: T__55
+ {
+ mT__55();
+
+ }
+ break;
+ case 44 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:268: T__56
+ {
+ mT__56();
+
+ }
+ break;
+ case 45 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:274: T__57
+ {
+ mT__57();
+
+ }
+ break;
+ case 46 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:280: T__58
+ {
+ mT__58();
+
+ }
+ break;
+ case 47 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:286: T__59
+ {
+ mT__59();
+
+ }
+ break;
+ case 48 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:292: T__60
+ {
+ mT__60();
+
+ }
+ break;
+ case 49 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:298: T__61
+ {
+ mT__61();
+
+ }
+ break;
+ case 50 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:304: T__62
+ {
+ mT__62();
+
+ }
+ break;
+ case 51 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:310: T__63
+ {
+ mT__63();
+
+ }
+ break;
+ case 52 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:316: T__64
+ {
+ mT__64();
+
+ }
+ break;
+ case 53 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:322: T__65
+ {
+ mT__65();
+
+ }
+ break;
+ case 54 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:328: T__66
+ {
+ mT__66();
+
+ }
+ break;
+ case 55 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:334: T__67
+ {
+ mT__67();
+
+ }
+ break;
+ case 56 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:340: T__68
+ {
+ mT__68();
+
+ }
+ break;
+ case 57 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:346: T__69
+ {
+ mT__69();
+
+ }
+ break;
+ case 58 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:352: T__70
+ {
+ mT__70();
+
+ }
+ break;
+ case 59 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:358: T__71
+ {
+ mT__71();
+
+ }
+ break;
+ case 60 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:364: T__72
+ {
+ mT__72();
+
+ }
+ break;
+ case 61 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:370: T__73
+ {
+ mT__73();
+
+ }
+ break;
+ case 62 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:376: T__74
+ {
+ mT__74();
+
+ }
+ break;
+ case 63 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:382: T__75
+ {
+ mT__75();
+
+ }
+ break;
+ case 64 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:388: T__76
+ {
+ mT__76();
+
+ }
+ break;
+ case 65 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:394: T__77
+ {
+ mT__77();
+
+ }
+ break;
+ case 66 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:400: T__78
+ {
+ mT__78();
+
+ }
+ break;
+ case 67 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:406: T__79
+ {
+ mT__79();
+
+ }
+ break;
+ case 68 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:412: T__80
+ {
+ mT__80();
+
+ }
+ break;
+ case 69 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:418: T__81
+ {
+ mT__81();
+
+ }
+ break;
+ case 70 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:424: T__82
+ {
+ mT__82();
+
+ }
+ break;
+ case 71 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:430: T__83
+ {
+ mT__83();
+
+ }
+ break;
+ case 72 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:436: T__84
+ {
+ mT__84();
+
+ }
+ break;
+ case 73 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:442: T__85
+ {
+ mT__85();
+
+ }
+ break;
+ case 74 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:448: T__86
+ {
+ mT__86();
+
+ }
+ break;
+ case 75 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:454: T__87
+ {
+ mT__87();
+
+ }
+ break;
+ case 76 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:460: T__88
+ {
+ mT__88();
+
+ }
+ break;
+ case 77 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:466: T__89
+ {
+ mT__89();
+
+ }
+ break;
+ case 78 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:472: T__90
+ {
+ mT__90();
+
+ }
+ break;
+ case 79 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:478: T__91
+ {
+ mT__91();
+
+ }
+ break;
+ case 80 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:484: T__92
+ {
+ mT__92();
+
+ }
+ break;
+ case 81 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:490: T__93
+ {
+ mT__93();
+
+ }
+ break;
+ case 82 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:496: T__94
+ {
+ mT__94();
+
+ }
+ break;
+ case 83 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:502: T__95
+ {
+ mT__95();
+
+ }
+ break;
+ case 84 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:508: T__96
+ {
+ mT__96();
+
+ }
+ break;
+ case 85 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:514: T__97
+ {
+ mT__97();
+
+ }
+ break;
+ case 86 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:520: T__98
+ {
+ mT__98();
+
+ }
+ break;
+ case 87 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:526: T__99
+ {
+ mT__99();
+
+ }
+ break;
+ case 88 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:532: T__100
+ {
+ mT__100();
+
+ }
+ break;
+ case 89 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:539: RULE_HEX
+ {
+ mRULE_HEX();
+
+ }
+ break;
+ case 90 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:548: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 91 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:557: RULE_DECIMAL
+ {
+ mRULE_DECIMAL();
+
+ }
+ break;
+ case 92 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:570: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 93 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:578: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 94 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:590: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 95 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:606: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 96 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:622: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 97 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1:630: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA19 dfa19 = new DFA19(this);
+ static final String DFA19_eotS =
+ "\1\uffff\1\61\1\63\1\65\1\67\1\72\1\74\1\76\1\101\1\103\1\106\1"+
+ "\110\1\113\1\uffff\6\117\2\uffff\3\117\1\150\1\uffff\2\117\6\uffff"+
+ "\4\117\2\174\1\56\1\uffff\2\56\2\uffff\1\u0081\13\uffff\1\u0083"+
+ "\3\uffff\1\u0085\2\uffff\1\u0087\12\uffff\2\117\1\uffff\7\117\1"+
+ "\u0093\5\117\2\uffff\10\117\3\uffff\3\117\1\u00a6\6\uffff\1\117"+
+ "\1\u00a8\4\117\1\uffff\1\174\14\uffff\1\u00ad\1\u00ae\11\117\1\uffff"+
+ "\2\117\1\u00bb\11\117\1\u00c5\5\117\1\uffff\1\117\1\uffff\1\117"+
+ "\1\u00cd\2\117\2\uffff\2\117\1\u00d5\11\117\1\uffff\5\117\1\u00e5"+
+ "\3\117\1\uffff\1\u00e9\2\117\1\u00ec\3\117\1\uffff\1\u00f0\6\117"+
+ "\1\uffff\1\117\1\u00fa\2\117\1\u00fd\1\117\1\u00ff\4\117\1\u0104"+
+ "\3\117\1\uffff\2\117\1\u010a\1\uffff\2\117\1\uffff\1\u010d\1\117"+
+ "\1\u010f\1\uffff\10\117\1\u0118\1\uffff\1\u0119\1\u011a\1\uffff"+
+ "\1\117\1\uffff\3\117\1\u011f\1\uffff\3\117\1\u0123\1\u0124\1\uffff"+
+ "\2\117\1\uffff\1\117\1\uffff\1\u0128\5\117\1\u012e\1\117\3\uffff"+
+ "\3\117\1\u0133\1\uffff\3\117\2\uffff\1\u0137\1\117\1\u0139\1\uffff"+
+ "\1\117\1\u013b\1\u013c\2\117\1\uffff\2\117\1\u0142\1\117\1\uffff"+
+ "\3\117\1\uffff\1\u0147\1\uffff\1\117\2\uffff\1\u0149\1\117\1\u014b"+
+ "\2\117\1\uffff\2\117\1\u0150\1\117\1\uffff\1\117\1\uffff\1\117\1"+
+ "\uffff\1\u0154\3\117\1\uffff\3\117\1\uffff\5\117\1\u0160\5\117\1"+
+ "\uffff\3\117\1\u0169\4\117\1\uffff\5\117\1\u0173\3\117\1\uffff\3"+
+ "\117\1\u017a\2\117\1\uffff\3\117\1\u0180\1\117\1\uffff\5\117\1\u0187"+
+ "\1\uffff";
+ static final String DFA19_eofS =
+ "\u0188\uffff";
+ static final String DFA19_minS =
+ "\1\0\1\75\1\174\1\46\5\75\2\56\2\52\1\uffff\1\141\1\154\1\164\1"+
+ "\146\1\141\1\157\2\uffff\3\141\1\72\1\uffff\1\141\1\163\6\uffff"+
+ "\1\145\1\150\2\145\2\60\1\44\1\uffff\2\0\2\uffff\1\75\13\uffff\1"+
+ "\75\3\uffff\1\76\2\uffff\1\74\12\uffff\1\154\1\145\1\uffff\1\164"+
+ "\1\163\1\141\1\160\1\151\1\141\1\163\1\44\1\154\1\141\1\162\1\156"+
+ "\1\144\2\uffff\1\162\1\157\1\142\1\170\1\162\1\160\1\162\1\165\3"+
+ "\uffff\1\156\1\151\1\163\1\44\6\uffff\1\146\1\44\1\151\1\167\1\154"+
+ "\1\164\1\uffff\1\60\14\uffff\2\44\1\167\2\145\1\164\1\145\1\164"+
+ "\1\157\1\147\1\164\1\uffff\1\163\1\164\1\44\1\141\1\165\1\164\1"+
+ "\160\1\145\1\164\1\147\1\145\1\157\1\44\1\145\1\164\1\154\1\145"+
+ "\1\143\1\uffff\1\141\1\uffff\1\154\1\44\1\154\1\165\2\uffff\1\143"+
+ "\1\156\1\44\1\151\1\162\1\143\1\162\1\145\1\141\1\145\1\165\1\103"+
+ "\1\uffff\2\154\1\163\1\145\1\154\1\44\1\145\1\157\1\167\1\uffff"+
+ "\1\44\1\162\1\144\1\44\1\150\1\165\1\145\1\uffff\1\44\2\162\3\141"+
+ "\1\144\1\uffff\1\143\1\44\1\150\1\164\1\44\1\156\1\44\1\162\1\157"+
+ "\1\154\1\145\1\44\1\162\1\163\1\120\1\uffff\1\164\1\146\1\44\1\uffff"+
+ "\1\157\1\162\1\uffff\1\44\1\154\1\44\1\uffff\1\156\1\103\1\162\1"+
+ "\155\1\141\1\164\1\163\1\151\1\44\1\uffff\2\44\1\uffff\1\143\1\uffff"+
+ "\1\145\1\156\1\171\1\44\1\uffff\1\164\1\141\1\162\2\44\1\uffff\1"+
+ "\154\1\145\1\uffff\1\164\1\uffff\1\44\1\157\1\164\1\145\1\163\1"+
+ "\145\1\44\1\157\3\uffff\1\145\1\163\1\164\1\44\1\uffff\1\171\1\154"+
+ "\1\157\2\uffff\1\44\1\156\1\44\1\uffff\1\156\2\44\1\163\1\147\1"+
+ "\uffff\1\156\1\157\1\44\1\162\1\uffff\1\104\1\163\1\166\1\uffff"+
+ "\1\44\1\uffff\1\164\2\uffff\1\44\1\157\1\44\1\146\1\162\1\uffff"+
+ "\1\157\1\145\1\44\1\151\1\uffff\1\145\1\uffff\1\162\1\uffff\1\44"+
+ "\1\157\1\154\1\163\1\uffff\1\144\1\156\1\171\1\uffff\1\166\1\106"+
+ "\1\143\1\145\1\164\1\44\1\151\1\141\2\162\1\120\1\uffff\1\144\1"+
+ "\143\1\151\1\44\1\162\1\145\1\164\1\160\1\uffff\1\157\1\162\1\157"+
+ "\1\164\1\166\1\44\1\162\2\151\1\uffff\1\171\1\157\1\144\1\44\1\156"+
+ "\1\145\1\uffff\1\120\2\162\1\44\1\157\1\uffff\1\166\1\151\1\144"+
+ "\1\145\1\162\1\44\1\uffff";
+ static final String DFA19_maxS =
+ "\1\uffff\1\76\1\174\1\46\1\75\1\76\2\75\1\76\1\56\1\72\1\52\1\57"+
+ "\1\uffff\1\151\1\170\1\167\1\156\2\157\2\uffff\1\162\1\141\1\171"+
+ "\1\72\1\uffff\1\157\1\163\6\uffff\1\157\1\150\1\165\1\145\1\170"+
+ "\1\154\1\172\1\uffff\2\uffff\2\uffff\1\75\13\uffff\1\75\3\uffff"+
+ "\1\76\2\uffff\1\74\12\uffff\1\162\1\145\1\uffff\1\164\1\163\1\141"+
+ "\1\160\1\151\1\160\1\163\1\172\1\154\1\141\1\162\1\156\1\144\2\uffff"+
+ "\1\162\1\157\1\142\1\170\1\162\1\160\1\162\1\171\3\uffff\1\156\1"+
+ "\151\1\164\1\172\6\uffff\1\146\1\172\1\151\1\167\1\154\1\164\1\uffff"+
+ "\1\154\14\uffff\2\172\1\167\2\145\1\164\1\145\1\164\1\157\1\147"+
+ "\1\164\1\uffff\1\163\1\164\1\172\1\141\1\165\1\164\1\160\1\145\1"+
+ "\164\1\147\1\145\1\157\1\172\1\145\1\164\1\154\1\145\1\143\1\uffff"+
+ "\1\141\1\uffff\1\154\1\172\1\154\1\165\2\uffff\1\160\1\156\1\172"+
+ "\1\151\1\162\1\143\1\162\1\145\1\141\1\145\1\165\1\103\1\uffff\2"+
+ "\154\1\163\1\157\1\154\1\172\1\145\1\157\1\167\1\uffff\1\172\1\162"+
+ "\1\144\1\172\1\150\1\165\1\145\1\uffff\1\172\2\162\2\141\1\154\1"+
+ "\163\1\uffff\1\143\1\172\1\150\1\164\1\172\1\156\1\172\1\162\1\157"+
+ "\1\154\1\145\1\172\1\162\1\163\1\120\1\uffff\1\164\1\146\1\172\1"+
+ "\uffff\1\157\1\162\1\uffff\1\172\1\154\1\172\1\uffff\1\156\1\103"+
+ "\1\162\1\155\1\141\1\164\1\163\1\151\1\172\1\uffff\2\172\1\uffff"+
+ "\1\143\1\uffff\1\145\1\156\1\171\1\172\1\uffff\1\164\1\141\1\162"+
+ "\2\172\1\uffff\1\154\1\145\1\uffff\1\164\1\uffff\1\172\1\157\1\164"+
+ "\1\145\1\163\1\145\1\172\1\157\3\uffff\1\145\1\163\1\164\1\172\1"+
+ "\uffff\1\171\1\154\1\157\2\uffff\1\172\1\156\1\172\1\uffff\1\156"+
+ "\2\172\1\163\1\147\1\uffff\1\156\1\157\1\172\1\162\1\uffff\1\104"+
+ "\1\163\1\166\1\uffff\1\172\1\uffff\1\164\2\uffff\1\172\1\157\1\172"+
+ "\1\146\1\162\1\uffff\1\157\1\145\1\172\1\151\1\uffff\1\145\1\uffff"+
+ "\1\162\1\uffff\1\172\1\157\1\154\1\163\1\uffff\1\144\1\156\1\171"+
+ "\1\uffff\1\166\1\106\1\143\1\145\1\164\1\172\1\151\1\141\2\162\1"+
+ "\120\1\uffff\1\144\1\143\1\151\1\172\1\162\1\145\1\164\1\160\1\uffff"+
+ "\1\157\1\162\1\157\1\164\1\166\1\172\1\162\2\151\1\uffff\1\171\1"+
+ "\157\1\144\1\172\1\156\1\145\1\uffff\1\120\2\162\1\172\1\157\1\uffff"+
+ "\1\166\1\151\1\144\1\145\1\162\1\172\1\uffff";
+ static final String DFA19_acceptS =
+ "\15\uffff\1\32\6\uffff\1\45\1\46\4\uffff\1\57\2\uffff\1\74\1\75"+
+ "\1\76\1\77\1\100\1\101\7\uffff\1\134\2\uffff\1\140\1\141\1\uffff"+
+ "\1\21\1\1\1\2\1\126\1\3\1\123\1\4\1\25\1\5\1\16\1\26\1\uffff\1\33"+
+ "\1\12\1\14\1\uffff\1\22\1\15\1\uffff\1\34\1\23\1\125\1\122\1\30"+
+ "\1\27\1\136\1\137\1\31\1\32\2\uffff\1\134\15\uffff\1\45\1\46\10"+
+ "\uffff\1\124\1\54\1\57\4\uffff\1\74\1\75\1\76\1\77\1\100\1\101\6"+
+ "\uffff\1\131\1\uffff\1\132\1\133\1\135\1\140\1\10\1\6\1\11\1\7\1"+
+ "\24\1\13\1\17\1\20\13\uffff\1\102\22\uffff\1\73\1\uffff\1\111\4"+
+ "\uffff\1\35\1\127\14\uffff\1\107\11\uffff\1\117\7\uffff\1\112\7"+
+ "\uffff\1\103\17\uffff\1\51\3\uffff\1\130\2\uffff\1\106\3\uffff\1"+
+ "\113\11\uffff\1\42\2\uffff\1\52\1\uffff\1\43\4\uffff\1\47\5\uffff"+
+ "\1\115\2\uffff\1\121\1\uffff\1\110\10\uffff\1\37\1\104\1\40\4\uffff"+
+ "\1\44\3\uffff\1\62\1\114\3\uffff\1\116\5\uffff\1\36\4\uffff\1\120"+
+ "\3\uffff\1\61\1\uffff\1\105\1\uffff\1\66\1\67\5\uffff\1\56\4\uffff"+
+ "\1\65\1\uffff\1\70\1\uffff\1\41\4\uffff\1\63\3\uffff\1\72\13\uffff"+
+ "\1\71\10\uffff\1\50\11\uffff\1\55\6\uffff\1\60\5\uffff\1\64\6\uffff"+
+ "\1\53";
+ static final String DFA19_specialS =
+ "\1\0\52\uffff\1\2\1\1\u015b\uffff}>";
+ static final String[] DFA19_transitionS = {
+ "\11\56\2\55\2\56\1\55\22\56\1\55\1\6\1\53\1\36\1\52\1\15\1\3"+
+ "\1\54\1\42\1\35\1\13\1\4\1\32\1\5\1\11\1\14\1\47\11\50\1\31"+
+ "\1\41\1\10\1\1\1\7\1\12\1\56\32\52\1\37\1\56\1\40\1\51\1\52"+
+ "\1\56\1\34\1\52\1\33\1\43\1\17\1\22\2\52\1\21\2\52\1\27\1\23"+
+ "\1\45\1\52\1\26\1\52\1\46\1\20\1\30\1\52\1\16\1\44\3\52\1\24"+
+ "\1\2\1\25\uff82\56",
+ "\1\57\1\60",
+ "\1\62",
+ "\1\64",
+ "\1\66",
+ "\1\70\1\71",
+ "\1\73",
+ "\1\75",
+ "\1\77\1\100",
+ "\1\102",
+ "\1\105\13\uffff\1\104",
+ "\1\107",
+ "\1\111\4\uffff\1\112",
+ "",
+ "\1\115\7\uffff\1\116",
+ "\1\121\13\uffff\1\120",
+ "\1\122\1\123\1\uffff\1\124",
+ "\1\127\6\uffff\1\125\1\126",
+ "\1\130\3\uffff\1\131\3\uffff\1\133\5\uffff\1\132",
+ "\1\134",
+ "",
+ "",
+ "\1\137\20\uffff\1\140",
+ "\1\141",
+ "\1\143\3\uffff\1\142\2\uffff\1\145\11\uffff\1\146\6\uffff\1"+
+ "\144",
+ "\1\147",
+ "",
+ "\1\154\6\uffff\1\153\6\uffff\1\152",
+ "\1\155",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\164\11\uffff\1\165",
+ "\1\166",
+ "\1\167\17\uffff\1\170",
+ "\1\171",
+ "\12\173\10\uffff\1\175\1\uffff\3\175\5\uffff\1\175\13\uffff"+
+ "\1\172\6\uffff\1\173\2\uffff\1\175\1\uffff\3\175\5\uffff\1\175"+
+ "\13\uffff\1\172",
+ "\12\173\10\uffff\1\175\1\uffff\3\175\5\uffff\1\175\22\uffff"+
+ "\1\173\2\uffff\1\175\1\uffff\3\175\5\uffff\1\175",
+ "\1\117\34\uffff\32\117\4\uffff\1\117\1\uffff\32\117",
+ "",
+ "\0\176",
+ "\0\176",
+ "",
+ "",
+ "\1\u0080",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\u0082",
+ "",
+ "",
+ "",
+ "\1\u0084",
+ "",
+ "",
+ "\1\u0086",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\u0088\5\uffff\1\u0089",
+ "\1\u008a",
+ "",
+ "\1\u008b",
+ "\1\u008c",
+ "\1\u008d",
+ "\1\u008e",
+ "\1\u008f",
+ "\1\u0091\16\uffff\1\u0090",
+ "\1\u0092",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u0094",
+ "\1\u0095",
+ "\1\u0096",
+ "\1\u0097",
+ "\1\u0098",
+ "",
+ "",
+ "\1\u0099",
+ "\1\u009a",
+ "\1\u009b",
+ "\1\u009c",
+ "\1\u009d",
+ "\1\u009e",
+ "\1\u009f",
+ "\1\u00a1\3\uffff\1\u00a0",
+ "",
+ "",
+ "",
+ "\1\u00a2",
+ "\1\u00a3",
+ "\1\u00a4\1\u00a5",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\u00a7",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u00a9",
+ "\1\u00aa",
+ "\1\u00ab",
+ "\1\u00ac",
+ "",
+ "\12\173\10\uffff\1\175\1\uffff\3\175\5\uffff\1\175\22\uffff"+
+ "\1\173\2\uffff\1\175\1\uffff\3\175\5\uffff\1\175",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u00af",
+ "\1\u00b0",
+ "\1\u00b1",
+ "\1\u00b2",
+ "\1\u00b3",
+ "\1\u00b4",
+ "\1\u00b5",
+ "\1\u00b6",
+ "\1\u00b7",
+ "",
+ "\1\u00b8",
+ "\1\u00b9",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\14\117\1\u00ba\15\117",
+ "\1\u00bc",
+ "\1\u00bd",
+ "\1\u00be",
+ "\1\u00bf",
+ "\1\u00c0",
+ "\1\u00c1",
+ "\1\u00c2",
+ "\1\u00c3",
+ "\1\u00c4",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u00c6",
+ "\1\u00c7",
+ "\1\u00c8",
+ "\1\u00c9",
+ "\1\u00ca",
+ "",
+ "\1\u00cb",
+ "",
+ "\1\u00cc",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u00ce",
+ "\1\u00cf",
+ "",
+ "",
+ "\1\u00d3\1\uffff\1\u00d0\10\uffff\1\u00d2\1\uffff\1\u00d1",
+ "\1\u00d4",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u00d6",
+ "\1\u00d7",
+ "\1\u00d8",
+ "\1\u00d9",
+ "\1\u00da",
+ "\1\u00db",
+ "\1\u00dc",
+ "\1\u00dd",
+ "\1\u00de",
+ "",
+ "\1\u00df",
+ "\1\u00e0",
+ "\1\u00e1",
+ "\1\u00e2\11\uffff\1\u00e3",
+ "\1\u00e4",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u00e6",
+ "\1\u00e7",
+ "\1\u00e8",
+ "",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u00ea",
+ "\1\u00eb",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u00ed",
+ "\1\u00ee",
+ "\1\u00ef",
+ "",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u00f1",
+ "\1\u00f2",
+ "\1\u00f3",
+ "\1\u00f4",
+ "\1\u00f6\12\uffff\1\u00f5",
+ "\1\u00f7\16\uffff\1\u00f8",
+ "",
+ "\1\u00f9",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u00fb",
+ "\1\u00fc",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u00fe",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u0100",
+ "\1\u0101",
+ "\1\u0102",
+ "\1\u0103",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u0105",
+ "\1\u0106",
+ "\1\u0107",
+ "",
+ "\1\u0108",
+ "\1\u0109",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "",
+ "\1\u010b",
+ "\1\u010c",
+ "",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u010e",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "",
+ "\1\u0110",
+ "\1\u0111",
+ "\1\u0112",
+ "\1\u0113",
+ "\1\u0114",
+ "\1\u0115",
+ "\1\u0116",
+ "\1\u0117",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "",
+ "\1\u011b",
+ "",
+ "\1\u011c",
+ "\1\u011d",
+ "\1\u011e",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "",
+ "\1\u0120",
+ "\1\u0121",
+ "\1\u0122",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "",
+ "\1\u0125",
+ "\1\u0126",
+ "",
+ "\1\u0127",
+ "",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u0129",
+ "\1\u012a",
+ "\1\u012b",
+ "\1\u012c",
+ "\1\u012d",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u012f",
+ "",
+ "",
+ "",
+ "\1\u0130",
+ "\1\u0131",
+ "\1\u0132",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "",
+ "\1\u0134",
+ "\1\u0135",
+ "\1\u0136",
+ "",
+ "",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u0138",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "",
+ "\1\u013a",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u013d",
+ "\1\u013e",
+ "",
+ "\1\u013f",
+ "\1\u0140",
+ "\1\117\13\uffff\12\117\7\uffff\17\117\1\u0141\12\117\4\uffff"+
+ "\1\117\1\uffff\32\117",
+ "\1\u0143",
+ "",
+ "\1\u0144",
+ "\1\u0145",
+ "\1\u0146",
+ "",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "",
+ "\1\u0148",
+ "",
+ "",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u014a",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u014c",
+ "\1\u014d",
+ "",
+ "\1\u014e",
+ "\1\u014f",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u0151",
+ "",
+ "\1\u0152",
+ "",
+ "\1\u0153",
+ "",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u0155",
+ "\1\u0156",
+ "\1\u0157",
+ "",
+ "\1\u0158",
+ "\1\u0159",
+ "\1\u015a",
+ "",
+ "\1\u015b",
+ "\1\u015c",
+ "\1\u015d",
+ "\1\u015e",
+ "\1\u015f",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u0161",
+ "\1\u0162",
+ "\1\u0163",
+ "\1\u0164",
+ "\1\u0165",
+ "",
+ "\1\u0166",
+ "\1\u0167",
+ "\1\u0168",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u016a",
+ "\1\u016b",
+ "\1\u016c",
+ "\1\u016d",
+ "",
+ "\1\u016e",
+ "\1\u016f",
+ "\1\u0170",
+ "\1\u0171",
+ "\1\u0172",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u0174",
+ "\1\u0175",
+ "\1\u0176",
+ "",
+ "\1\u0177",
+ "\1\u0178",
+ "\1\u0179",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u017b",
+ "\1\u017c",
+ "",
+ "\1\u017d",
+ "\1\u017e",
+ "\1\u017f",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ "\1\u0181",
+ "",
+ "\1\u0182",
+ "\1\u0183",
+ "\1\u0184",
+ "\1\u0185",
+ "\1\u0186",
+ "\1\117\13\uffff\12\117\7\uffff\32\117\4\uffff\1\117\1\uffff"+
+ "\32\117",
+ ""
+ };
+
+ static final short[] DFA19_eot = DFA.unpackEncodedString(DFA19_eotS);
+ static final short[] DFA19_eof = DFA.unpackEncodedString(DFA19_eofS);
+ static final char[] DFA19_min = DFA.unpackEncodedStringToUnsignedChars(DFA19_minS);
+ static final char[] DFA19_max = DFA.unpackEncodedStringToUnsignedChars(DFA19_maxS);
+ static final short[] DFA19_accept = DFA.unpackEncodedString(DFA19_acceptS);
+ static final short[] DFA19_special = DFA.unpackEncodedString(DFA19_specialS);
+ static final short[][] DFA19_transition;
+
+ static {
+ int numStates = DFA19_transitionS.length;
+ DFA19_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA19_transition[i] = DFA.unpackEncodedString(DFA19_transitionS[i]);
+ }
+ }
+
+ class DFA19 extends DFA {
+
+ public DFA19(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 19;
+ this.eot = DFA19_eot;
+ this.eof = DFA19_eof;
+ this.min = DFA19_min;
+ this.max = DFA19_max;
+ this.accept = DFA19_accept;
+ this.special = DFA19_special;
+ this.transition = DFA19_transition;
+ }
+ public String getDescription() {
+ return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ IntStream input = _input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA19_0 = input.LA(1);
+
+ s = -1;
+ if ( (LA19_0=='=') ) {s = 1;}
+
+ else if ( (LA19_0=='|') ) {s = 2;}
+
+ else if ( (LA19_0=='&') ) {s = 3;}
+
+ else if ( (LA19_0=='+') ) {s = 4;}
+
+ else if ( (LA19_0=='-') ) {s = 5;}
+
+ else if ( (LA19_0=='!') ) {s = 6;}
+
+ else if ( (LA19_0=='>') ) {s = 7;}
+
+ else if ( (LA19_0=='<') ) {s = 8;}
+
+ else if ( (LA19_0=='.') ) {s = 9;}
+
+ else if ( (LA19_0=='?') ) {s = 10;}
+
+ else if ( (LA19_0=='*') ) {s = 11;}
+
+ else if ( (LA19_0=='/') ) {s = 12;}
+
+ else if ( (LA19_0=='%') ) {s = 13;}
+
+ else if ( (LA19_0=='v') ) {s = 14;}
+
+ else if ( (LA19_0=='e') ) {s = 15;}
+
+ else if ( (LA19_0=='s') ) {s = 16;}
+
+ else if ( (LA19_0=='i') ) {s = 17;}
+
+ else if ( (LA19_0=='f') ) {s = 18;}
+
+ else if ( (LA19_0=='m') ) {s = 19;}
+
+ else if ( (LA19_0=='{') ) {s = 20;}
+
+ else if ( (LA19_0=='}') ) {s = 21;}
+
+ else if ( (LA19_0=='p') ) {s = 22;}
+
+ else if ( (LA19_0=='l') ) {s = 23;}
+
+ else if ( (LA19_0=='t') ) {s = 24;}
+
+ else if ( (LA19_0==':') ) {s = 25;}
+
+ else if ( (LA19_0==',') ) {s = 26;}
+
+ else if ( (LA19_0=='c') ) {s = 27;}
+
+ else if ( (LA19_0=='a') ) {s = 28;}
+
+ else if ( (LA19_0==')') ) {s = 29;}
+
+ else if ( (LA19_0=='#') ) {s = 30;}
+
+ else if ( (LA19_0=='[') ) {s = 31;}
+
+ else if ( (LA19_0==']') ) {s = 32;}
+
+ else if ( (LA19_0==';') ) {s = 33;}
+
+ else if ( (LA19_0=='(') ) {s = 34;}
+
+ else if ( (LA19_0=='d') ) {s = 35;}
+
+ else if ( (LA19_0=='w') ) {s = 36;}
+
+ else if ( (LA19_0=='n') ) {s = 37;}
+
+ else if ( (LA19_0=='r') ) {s = 38;}
+
+ else if ( (LA19_0=='0') ) {s = 39;}
+
+ else if ( ((LA19_0>='1' && LA19_0<='9')) ) {s = 40;}
+
+ else if ( (LA19_0=='^') ) {s = 41;}
+
+ else if ( (LA19_0=='$'||(LA19_0>='A' && LA19_0<='Z')||LA19_0=='_'||LA19_0=='b'||(LA19_0>='g' && LA19_0<='h')||(LA19_0>='j' && LA19_0<='k')||LA19_0=='o'||LA19_0=='q'||LA19_0=='u'||(LA19_0>='x' && LA19_0<='z')) ) {s = 42;}
+
+ else if ( (LA19_0=='\"') ) {s = 43;}
+
+ else if ( (LA19_0=='\'') ) {s = 44;}
+
+ else if ( ((LA19_0>='\t' && LA19_0<='\n')||LA19_0=='\r'||LA19_0==' ') ) {s = 45;}
+
+ else if ( ((LA19_0>='\u0000' && LA19_0<='\b')||(LA19_0>='\u000B' && LA19_0<='\f')||(LA19_0>='\u000E' && LA19_0<='\u001F')||LA19_0=='@'||LA19_0=='\\'||LA19_0=='`'||(LA19_0>='~' && LA19_0<='\uFFFF')) ) {s = 46;}
+
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA19_44 = input.LA(1);
+
+ s = -1;
+ if ( ((LA19_44>='\u0000' && LA19_44<='\uFFFF')) ) {s = 126;}
+
+ else s = 46;
+
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA19_43 = input.LA(1);
+
+ s = -1;
+ if ( ((LA19_43>='\u0000' && LA19_43<='\uFFFF')) ) {s = 126;}
+
+ else s = 46;
+
+ if ( s>=0 ) return s;
+ break;
+ }
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 19, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDslParser.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDslParser.java
new file mode 100644
index 000000000..913565586
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDslParser.java
@@ -0,0 +1,67579 @@
+package org.eclipse.emf.parsley.dsl.ui.contentassist.antlr.internal;
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import org.eclipse.emf.parsley.dsl.services.EmfParsleyDslGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+@SuppressWarnings("all")
+public class InternalEmfParsleyDslParser extends AbstractInternalContentAssistParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'='", "'||'", "'&&'", "'+='", "'-='", "'=='", "'!='", "'==='", "'!=='", "'>='", "'<='", "'>'", "'<'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'<=>'", "'+'", "'-'", "'*'", "'**'", "'/'", "'%'", "'!'", "'.'", "'val'", "'extends'", "'static'", "'import'", "'extension'", "'super'", "'false'", "'module'", "'{'", "'}'", "'parts'", "'labelProvider'", "'text'", "'image'", "'propertyDescriptionProvider'", "':'", "'featuresProvider'", "'features'", "','", "'formControlFactory'", "'control'", "'target'", "'proposals'", "'viewerContentProvider'", "'children'", "'viewpart'", "'viewname'", "'viewclass'", "'viewcategory'", "'instanceof'", "'as'", "')'", "'#'", "'['", "']'", "';'", "'('", "'if'", "'else'", "'switch'", "'default'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'catch'", "'?'", "'&'", "'::'", "'?.'", "'|'", "'var'", "'true'"
+ };
+ public static final int RULE_ID=4;
+ public static final int T__29=29;
+ public static final int T__28=28;
+ public static final int T__27=27;
+ public static final int T__26=26;
+ public static final int T__25=25;
+ public static final int T__24=24;
+ public static final int T__23=23;
+ public static final int T__22=22;
+ public static final int RULE_ANY_OTHER=12;
+ public static final int T__21=21;
+ public static final int T__20=20;
+ public static final int EOF=-1;
+ public static final int T__93=93;
+ public static final int T__19=19;
+ public static final int T__94=94;
+ public static final int T__91=91;
+ public static final int RULE_HEX=5;
+ public static final int T__92=92;
+ public static final int T__16=16;
+ public static final int T__15=15;
+ public static final int T__90=90;
+ public static final int T__18=18;
+ public static final int T__17=17;
+ public static final int T__14=14;
+ public static final int T__13=13;
+ public static final int RULE_DECIMAL=7;
+ public static final int T__99=99;
+ public static final int T__98=98;
+ public static final int T__97=97;
+ public static final int T__96=96;
+ public static final int T__95=95;
+ public static final int T__80=80;
+ public static final int T__81=81;
+ public static final int T__82=82;
+ public static final int T__83=83;
+ public static final int T__85=85;
+ public static final int T__84=84;
+ public static final int T__87=87;
+ public static final int T__86=86;
+ public static final int T__89=89;
+ public static final int T__88=88;
+ public static final int RULE_ML_COMMENT=9;
+ public static final int RULE_STRING=8;
+ public static final int T__71=71;
+ public static final int T__72=72;
+ public static final int T__70=70;
+ public static final int T__76=76;
+ public static final int T__75=75;
+ public static final int T__74=74;
+ public static final int T__73=73;
+ public static final int T__79=79;
+ public static final int T__78=78;
+ public static final int T__77=77;
+ public static final int T__68=68;
+ public static final int T__69=69;
+ public static final int T__66=66;
+ public static final int T__67=67;
+ public static final int T__64=64;
+ public static final int T__65=65;
+ public static final int T__62=62;
+ public static final int T__63=63;
+ public static final int T__61=61;
+ public static final int T__60=60;
+ public static final int T__55=55;
+ public static final int T__56=56;
+ public static final int T__57=57;
+ public static final int T__58=58;
+ public static final int T__51=51;
+ public static final int T__52=52;
+ public static final int T__53=53;
+ public static final int T__54=54;
+ public static final int T__59=59;
+ public static final int RULE_INT=6;
+ public static final int T__50=50;
+ public static final int T__42=42;
+ public static final int T__43=43;
+ public static final int T__40=40;
+ public static final int T__41=41;
+ public static final int T__46=46;
+ public static final int T__47=47;
+ public static final int T__44=44;
+ public static final int T__45=45;
+ public static final int T__48=48;
+ public static final int T__49=49;
+ public static final int T__100=100;
+ public static final int RULE_SL_COMMENT=10;
+ public static final int T__30=30;
+ public static final int T__31=31;
+ public static final int T__32=32;
+ public static final int T__33=33;
+ public static final int T__34=34;
+ public static final int T__35=35;
+ public static final int T__36=36;
+ public static final int T__37=37;
+ public static final int T__38=38;
+ public static final int T__39=39;
+ public static final int RULE_WS=11;
+
+ // delegates
+ // delegators
+
+
+ public InternalEmfParsleyDslParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalEmfParsleyDslParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalEmfParsleyDslParser.tokenNames; }
+ public String getGrammarFileName() { return "../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g"; }
+
+
+
+ private EmfParsleyDslGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(EmfParsleyDslGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected Grammar getGrammar() {
+ return grammarAccess.getGrammar();
+ }
+
+ @Override
+ protected String getValueForTokenName(String tokenName) {
+ return tokenName;
+ }
+
+
+
+
+ // $ANTLR start "entryRuleModel"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:61:1: entryRuleModel : ruleModel EOF ;
+ public final void entryRuleModel() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:62:1: ( ruleModel EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:63:1: ruleModel EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModelRule());
+ }
+ pushFollow(FOLLOW_ruleModel_in_entryRuleModel67);
+ ruleModel();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModelRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleModel74); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleModel"
+
+
+ // $ANTLR start "ruleModel"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:70:1: ruleModel : ( ( rule__Model__Group__0 ) ) ;
+ public final void ruleModel() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:74:2: ( ( ( rule__Model__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:75:1: ( ( rule__Model__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:75:1: ( ( rule__Model__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:76:1: ( rule__Model__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModelAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:77:1: ( rule__Model__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:77:2: rule__Model__Group__0
+ {
+ pushFollow(FOLLOW_rule__Model__Group__0_in_ruleModel100);
+ rule__Model__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModelAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleModel"
+
+
+ // $ANTLR start "entryRuleModule"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:89:1: entryRuleModule : ruleModule EOF ;
+ public final void entryRuleModule() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:90:1: ( ruleModule EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:91:1: ruleModule EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleRule());
+ }
+ pushFollow(FOLLOW_ruleModule_in_entryRuleModule127);
+ ruleModule();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleModule134); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleModule"
+
+
+ // $ANTLR start "ruleModule"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:98:1: ruleModule : ( ( rule__Module__Group__0 ) ) ;
+ public final void ruleModule() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:102:2: ( ( ( rule__Module__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:103:1: ( ( rule__Module__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:103:1: ( ( rule__Module__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:104:1: ( rule__Module__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:105:1: ( rule__Module__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:105:2: rule__Module__Group__0
+ {
+ pushFollow(FOLLOW_rule__Module__Group__0_in_ruleModule160);
+ rule__Module__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleModule"
+
+
+ // $ANTLR start "entryRuleExtendsClause"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:117:1: entryRuleExtendsClause : ruleExtendsClause EOF ;
+ public final void entryRuleExtendsClause() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:118:1: ( ruleExtendsClause EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:119:1: ruleExtendsClause EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getExtendsClauseRule());
+ }
+ pushFollow(FOLLOW_ruleExtendsClause_in_entryRuleExtendsClause187);
+ ruleExtendsClause();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getExtendsClauseRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleExtendsClause194); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleExtendsClause"
+
+
+ // $ANTLR start "ruleExtendsClause"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:126:1: ruleExtendsClause : ( ( rule__ExtendsClause__Group__0 ) ) ;
+ public final void ruleExtendsClause() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:130:2: ( ( ( rule__ExtendsClause__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:131:1: ( ( rule__ExtendsClause__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:131:1: ( ( rule__ExtendsClause__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:132:1: ( rule__ExtendsClause__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getExtendsClauseAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:133:1: ( rule__ExtendsClause__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:133:2: rule__ExtendsClause__Group__0
+ {
+ pushFollow(FOLLOW_rule__ExtendsClause__Group__0_in_ruleExtendsClause220);
+ rule__ExtendsClause__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getExtendsClauseAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleExtendsClause"
+
+
+ // $ANTLR start "entryRuleLabelProvider"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:145:1: entryRuleLabelProvider : ruleLabelProvider EOF ;
+ public final void entryRuleLabelProvider() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:146:1: ( ruleLabelProvider EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:147:1: ruleLabelProvider EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderRule());
+ }
+ pushFollow(FOLLOW_ruleLabelProvider_in_entryRuleLabelProvider247);
+ ruleLabelProvider();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleLabelProvider254); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleLabelProvider"
+
+
+ // $ANTLR start "ruleLabelProvider"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:154:1: ruleLabelProvider : ( ( rule__LabelProvider__Group__0 ) ) ;
+ public final void ruleLabelProvider() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:158:2: ( ( ( rule__LabelProvider__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:159:1: ( ( rule__LabelProvider__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:159:1: ( ( rule__LabelProvider__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:160:1: ( rule__LabelProvider__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:161:1: ( rule__LabelProvider__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:161:2: rule__LabelProvider__Group__0
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__Group__0_in_ruleLabelProvider280);
+ rule__LabelProvider__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleLabelProvider"
+
+
+ // $ANTLR start "entryRuleLabelSpecification"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:173:1: entryRuleLabelSpecification : ruleLabelSpecification EOF ;
+ public final void entryRuleLabelSpecification() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:174:1: ( ruleLabelSpecification EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:175:1: ruleLabelSpecification EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelSpecificationRule());
+ }
+ pushFollow(FOLLOW_ruleLabelSpecification_in_entryRuleLabelSpecification307);
+ ruleLabelSpecification();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelSpecificationRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleLabelSpecification314); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleLabelSpecification"
+
+
+ // $ANTLR start "ruleLabelSpecification"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:182:1: ruleLabelSpecification : ( ( rule__LabelSpecification__Group__0 ) ) ;
+ public final void ruleLabelSpecification() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:186:2: ( ( ( rule__LabelSpecification__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:187:1: ( ( rule__LabelSpecification__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:187:1: ( ( rule__LabelSpecification__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:188:1: ( rule__LabelSpecification__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelSpecificationAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:189:1: ( rule__LabelSpecification__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:189:2: rule__LabelSpecification__Group__0
+ {
+ pushFollow(FOLLOW_rule__LabelSpecification__Group__0_in_ruleLabelSpecification340);
+ rule__LabelSpecification__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelSpecificationAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleLabelSpecification"
+
+
+ // $ANTLR start "entryRulePropertyDescriptionProvider"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:201:1: entryRulePropertyDescriptionProvider : rulePropertyDescriptionProvider EOF ;
+ public final void entryRulePropertyDescriptionProvider() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:202:1: ( rulePropertyDescriptionProvider EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:203:1: rulePropertyDescriptionProvider EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionProviderRule());
+ }
+ pushFollow(FOLLOW_rulePropertyDescriptionProvider_in_entryRulePropertyDescriptionProvider367);
+ rulePropertyDescriptionProvider();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionProviderRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRulePropertyDescriptionProvider374); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRulePropertyDescriptionProvider"
+
+
+ // $ANTLR start "rulePropertyDescriptionProvider"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:210:1: rulePropertyDescriptionProvider : ( ( rule__PropertyDescriptionProvider__Group__0 ) ) ;
+ public final void rulePropertyDescriptionProvider() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:214:2: ( ( ( rule__PropertyDescriptionProvider__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:215:1: ( ( rule__PropertyDescriptionProvider__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:215:1: ( ( rule__PropertyDescriptionProvider__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:216:1: ( rule__PropertyDescriptionProvider__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionProviderAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:217:1: ( rule__PropertyDescriptionProvider__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:217:2: rule__PropertyDescriptionProvider__Group__0
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__Group__0_in_rulePropertyDescriptionProvider400);
+ rule__PropertyDescriptionProvider__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionProviderAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rulePropertyDescriptionProvider"
+
+
+ // $ANTLR start "entryRulePropertyDescriptionSpecification"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:229:1: entryRulePropertyDescriptionSpecification : rulePropertyDescriptionSpecification EOF ;
+ public final void entryRulePropertyDescriptionSpecification() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:230:1: ( rulePropertyDescriptionSpecification EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:231:1: rulePropertyDescriptionSpecification EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionSpecificationRule());
+ }
+ pushFollow(FOLLOW_rulePropertyDescriptionSpecification_in_entryRulePropertyDescriptionSpecification427);
+ rulePropertyDescriptionSpecification();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionSpecificationRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRulePropertyDescriptionSpecification434); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRulePropertyDescriptionSpecification"
+
+
+ // $ANTLR start "rulePropertyDescriptionSpecification"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:238:1: rulePropertyDescriptionSpecification : ( ( rule__PropertyDescriptionSpecification__Group__0 ) ) ;
+ public final void rulePropertyDescriptionSpecification() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:242:2: ( ( ( rule__PropertyDescriptionSpecification__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:243:1: ( ( rule__PropertyDescriptionSpecification__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:243:1: ( ( rule__PropertyDescriptionSpecification__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:244:1: ( rule__PropertyDescriptionSpecification__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:245:1: ( rule__PropertyDescriptionSpecification__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:245:2: rule__PropertyDescriptionSpecification__Group__0
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionSpecification__Group__0_in_rulePropertyDescriptionSpecification460);
+ rule__PropertyDescriptionSpecification__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rulePropertyDescriptionSpecification"
+
+
+ // $ANTLR start "entryRuleFeaturesProvider"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:257:1: entryRuleFeaturesProvider : ruleFeaturesProvider EOF ;
+ public final void entryRuleFeaturesProvider() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:258:1: ( ruleFeaturesProvider EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:259:1: ruleFeaturesProvider EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeaturesProviderRule());
+ }
+ pushFollow(FOLLOW_ruleFeaturesProvider_in_entryRuleFeaturesProvider487);
+ ruleFeaturesProvider();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeaturesProviderRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleFeaturesProvider494); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleFeaturesProvider"
+
+
+ // $ANTLR start "ruleFeaturesProvider"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:266:1: ruleFeaturesProvider : ( ( rule__FeaturesProvider__Group__0 ) ) ;
+ public final void ruleFeaturesProvider() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:270:2: ( ( ( rule__FeaturesProvider__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:271:1: ( ( rule__FeaturesProvider__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:271:1: ( ( rule__FeaturesProvider__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:272:1: ( rule__FeaturesProvider__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeaturesProviderAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:273:1: ( rule__FeaturesProvider__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:273:2: rule__FeaturesProvider__Group__0
+ {
+ pushFollow(FOLLOW_rule__FeaturesProvider__Group__0_in_ruleFeaturesProvider520);
+ rule__FeaturesProvider__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeaturesProviderAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleFeaturesProvider"
+
+
+ // $ANTLR start "entryRuleFeatureSpecification"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:285:1: entryRuleFeatureSpecification : ruleFeatureSpecification EOF ;
+ public final void entryRuleFeatureSpecification() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:286:1: ( ruleFeatureSpecification EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:287:1: ruleFeatureSpecification EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureSpecificationRule());
+ }
+ pushFollow(FOLLOW_ruleFeatureSpecification_in_entryRuleFeatureSpecification547);
+ ruleFeatureSpecification();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureSpecificationRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleFeatureSpecification554); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleFeatureSpecification"
+
+
+ // $ANTLR start "ruleFeatureSpecification"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:294:1: ruleFeatureSpecification : ( ( rule__FeatureSpecification__Group__0 ) ) ;
+ public final void ruleFeatureSpecification() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:298:2: ( ( ( rule__FeatureSpecification__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:299:1: ( ( rule__FeatureSpecification__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:299:1: ( ( rule__FeatureSpecification__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:300:1: ( rule__FeatureSpecification__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureSpecificationAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:301:1: ( rule__FeatureSpecification__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:301:2: rule__FeatureSpecification__Group__0
+ {
+ pushFollow(FOLLOW_rule__FeatureSpecification__Group__0_in_ruleFeatureSpecification580);
+ rule__FeatureSpecification__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureSpecificationAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleFeatureSpecification"
+
+
+ // $ANTLR start "entryRuleFormControlFactory"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:313:1: entryRuleFormControlFactory : ruleFormControlFactory EOF ;
+ public final void entryRuleFormControlFactory() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:314:1: ( ruleFormControlFactory EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:315:1: ruleFormControlFactory EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlFactoryRule());
+ }
+ pushFollow(FOLLOW_ruleFormControlFactory_in_entryRuleFormControlFactory607);
+ ruleFormControlFactory();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlFactoryRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleFormControlFactory614); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleFormControlFactory"
+
+
+ // $ANTLR start "ruleFormControlFactory"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:322:1: ruleFormControlFactory : ( ( rule__FormControlFactory__Group__0 ) ) ;
+ public final void ruleFormControlFactory() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:326:2: ( ( ( rule__FormControlFactory__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:327:1: ( ( rule__FormControlFactory__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:327:1: ( ( rule__FormControlFactory__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:328:1: ( rule__FormControlFactory__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlFactoryAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:329:1: ( rule__FormControlFactory__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:329:2: rule__FormControlFactory__Group__0
+ {
+ pushFollow(FOLLOW_rule__FormControlFactory__Group__0_in_ruleFormControlFactory640);
+ rule__FormControlFactory__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlFactoryAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleFormControlFactory"
+
+
+ // $ANTLR start "entryRuleFormControlSpecification"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:341:1: entryRuleFormControlSpecification : ruleFormControlSpecification EOF ;
+ public final void entryRuleFormControlSpecification() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:342:1: ( ruleFormControlSpecification EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:343:1: ruleFormControlSpecification EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlSpecificationRule());
+ }
+ pushFollow(FOLLOW_ruleFormControlSpecification_in_entryRuleFormControlSpecification667);
+ ruleFormControlSpecification();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlSpecificationRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleFormControlSpecification674); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleFormControlSpecification"
+
+
+ // $ANTLR start "ruleFormControlSpecification"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:350:1: ruleFormControlSpecification : ( ( rule__FormControlSpecification__Group__0 ) ) ;
+ public final void ruleFormControlSpecification() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:354:2: ( ( ( rule__FormControlSpecification__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:355:1: ( ( rule__FormControlSpecification__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:355:1: ( ( rule__FormControlSpecification__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:356:1: ( rule__FormControlSpecification__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlSpecificationAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:357:1: ( rule__FormControlSpecification__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:357:2: rule__FormControlSpecification__Group__0
+ {
+ pushFollow(FOLLOW_rule__FormControlSpecification__Group__0_in_ruleFormControlSpecification700);
+ rule__FormControlSpecification__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlSpecificationAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleFormControlSpecification"
+
+
+ // $ANTLR start "entryRuleProposalCreator"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:369:1: entryRuleProposalCreator : ruleProposalCreator EOF ;
+ public final void entryRuleProposalCreator() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:370:1: ( ruleProposalCreator EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:371:1: ruleProposalCreator EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalCreatorRule());
+ }
+ pushFollow(FOLLOW_ruleProposalCreator_in_entryRuleProposalCreator727);
+ ruleProposalCreator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalCreatorRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleProposalCreator734); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleProposalCreator"
+
+
+ // $ANTLR start "ruleProposalCreator"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:378:1: ruleProposalCreator : ( ( rule__ProposalCreator__Group__0 ) ) ;
+ public final void ruleProposalCreator() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:382:2: ( ( ( rule__ProposalCreator__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:383:1: ( ( rule__ProposalCreator__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:383:1: ( ( rule__ProposalCreator__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:384:1: ( rule__ProposalCreator__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalCreatorAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:385:1: ( rule__ProposalCreator__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:385:2: rule__ProposalCreator__Group__0
+ {
+ pushFollow(FOLLOW_rule__ProposalCreator__Group__0_in_ruleProposalCreator760);
+ rule__ProposalCreator__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalCreatorAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleProposalCreator"
+
+
+ // $ANTLR start "entryRuleProposalSpecification"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:397:1: entryRuleProposalSpecification : ruleProposalSpecification EOF ;
+ public final void entryRuleProposalSpecification() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:398:1: ( ruleProposalSpecification EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:399:1: ruleProposalSpecification EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalSpecificationRule());
+ }
+ pushFollow(FOLLOW_ruleProposalSpecification_in_entryRuleProposalSpecification787);
+ ruleProposalSpecification();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalSpecificationRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleProposalSpecification794); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleProposalSpecification"
+
+
+ // $ANTLR start "ruleProposalSpecification"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:406:1: ruleProposalSpecification : ( ( rule__ProposalSpecification__Group__0 ) ) ;
+ public final void ruleProposalSpecification() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:410:2: ( ( ( rule__ProposalSpecification__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:411:1: ( ( rule__ProposalSpecification__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:411:1: ( ( rule__ProposalSpecification__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:412:1: ( rule__ProposalSpecification__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalSpecificationAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:413:1: ( rule__ProposalSpecification__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:413:2: rule__ProposalSpecification__Group__0
+ {
+ pushFollow(FOLLOW_rule__ProposalSpecification__Group__0_in_ruleProposalSpecification820);
+ rule__ProposalSpecification__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalSpecificationAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleProposalSpecification"
+
+
+ // $ANTLR start "entryRuleViewerContentProvider"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:425:1: entryRuleViewerContentProvider : ruleViewerContentProvider EOF ;
+ public final void entryRuleViewerContentProvider() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:426:1: ( ruleViewerContentProvider EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:427:1: ruleViewerContentProvider EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewerContentProviderRule());
+ }
+ pushFollow(FOLLOW_ruleViewerContentProvider_in_entryRuleViewerContentProvider847);
+ ruleViewerContentProvider();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewerContentProviderRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleViewerContentProvider854); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleViewerContentProvider"
+
+
+ // $ANTLR start "ruleViewerContentProvider"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:434:1: ruleViewerContentProvider : ( ( rule__ViewerContentProvider__Group__0 ) ) ;
+ public final void ruleViewerContentProvider() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:438:2: ( ( ( rule__ViewerContentProvider__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:439:1: ( ( rule__ViewerContentProvider__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:439:1: ( ( rule__ViewerContentProvider__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:440:1: ( rule__ViewerContentProvider__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewerContentProviderAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:441:1: ( rule__ViewerContentProvider__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:441:2: rule__ViewerContentProvider__Group__0
+ {
+ pushFollow(FOLLOW_rule__ViewerContentProvider__Group__0_in_ruleViewerContentProvider880);
+ rule__ViewerContentProvider__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewerContentProviderAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleViewerContentProvider"
+
+
+ // $ANTLR start "entryRulePartSpecification"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:457:1: entryRulePartSpecification : rulePartSpecification EOF ;
+ public final void entryRulePartSpecification() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:458:1: ( rulePartSpecification EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:459:1: rulePartSpecification EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPartSpecificationRule());
+ }
+ pushFollow(FOLLOW_rulePartSpecification_in_entryRulePartSpecification911);
+ rulePartSpecification();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPartSpecificationRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRulePartSpecification918); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRulePartSpecification"
+
+
+ // $ANTLR start "rulePartSpecification"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:466:1: rulePartSpecification : ( ruleViewSpecification ) ;
+ public final void rulePartSpecification() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:470:2: ( ( ruleViewSpecification ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:471:1: ( ruleViewSpecification )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:471:1: ( ruleViewSpecification )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:472:1: ruleViewSpecification
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPartSpecificationAccess().getViewSpecificationParserRuleCall());
+ }
+ pushFollow(FOLLOW_ruleViewSpecification_in_rulePartSpecification944);
+ ruleViewSpecification();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPartSpecificationAccess().getViewSpecificationParserRuleCall());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rulePartSpecification"
+
+
+ // $ANTLR start "entryRuleViewSpecification"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:485:1: entryRuleViewSpecification : ruleViewSpecification EOF ;
+ public final void entryRuleViewSpecification() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:486:1: ( ruleViewSpecification EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:487:1: ruleViewSpecification EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewSpecificationRule());
+ }
+ pushFollow(FOLLOW_ruleViewSpecification_in_entryRuleViewSpecification970);
+ ruleViewSpecification();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewSpecificationRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleViewSpecification977); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleViewSpecification"
+
+
+ // $ANTLR start "ruleViewSpecification"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:494:1: ruleViewSpecification : ( ( rule__ViewSpecification__Group__0 ) ) ;
+ public final void ruleViewSpecification() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:498:2: ( ( ( rule__ViewSpecification__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:499:1: ( ( rule__ViewSpecification__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:499:1: ( ( rule__ViewSpecification__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:500:1: ( rule__ViewSpecification__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewSpecificationAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:501:1: ( rule__ViewSpecification__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:501:2: rule__ViewSpecification__Group__0
+ {
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__0_in_ruleViewSpecification1003);
+ rule__ViewSpecification__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewSpecificationAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleViewSpecification"
+
+
+ // $ANTLR start "entryRuleXExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:513:1: entryRuleXExpression : ruleXExpression EOF ;
+ public final void entryRuleXExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:514:1: ( ruleXExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:515:1: ruleXExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_entryRuleXExpression1030);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXExpression1037); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXExpression"
+
+
+ // $ANTLR start "ruleXExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:522:1: ruleXExpression : ( ruleXAssignment ) ;
+ public final void ruleXExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:526:2: ( ( ruleXAssignment ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:527:1: ( ruleXAssignment )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:527:1: ( ruleXAssignment )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:528:1: ruleXAssignment
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall());
+ }
+ pushFollow(FOLLOW_ruleXAssignment_in_ruleXExpression1063);
+ ruleXAssignment();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXExpression"
+
+
+ // $ANTLR start "entryRuleXAssignment"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:541:1: entryRuleXAssignment : ruleXAssignment EOF ;
+ public final void entryRuleXAssignment() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:542:1: ( ruleXAssignment EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:543:1: ruleXAssignment EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentRule());
+ }
+ pushFollow(FOLLOW_ruleXAssignment_in_entryRuleXAssignment1089);
+ ruleXAssignment();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXAssignment1096); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXAssignment"
+
+
+ // $ANTLR start "ruleXAssignment"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:550:1: ruleXAssignment : ( ( rule__XAssignment__Alternatives ) ) ;
+ public final void ruleXAssignment() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:554:2: ( ( ( rule__XAssignment__Alternatives ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:555:1: ( ( rule__XAssignment__Alternatives ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:555:1: ( ( rule__XAssignment__Alternatives ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:556:1: ( rule__XAssignment__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getAlternatives());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:557:1: ( rule__XAssignment__Alternatives )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:557:2: rule__XAssignment__Alternatives
+ {
+ pushFollow(FOLLOW_rule__XAssignment__Alternatives_in_ruleXAssignment1122);
+ rule__XAssignment__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXAssignment"
+
+
+ // $ANTLR start "entryRuleOpSingleAssign"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:569:1: entryRuleOpSingleAssign : ruleOpSingleAssign EOF ;
+ public final void entryRuleOpSingleAssign() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:570:1: ( ruleOpSingleAssign EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:571:1: ruleOpSingleAssign EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpSingleAssignRule());
+ }
+ pushFollow(FOLLOW_ruleOpSingleAssign_in_entryRuleOpSingleAssign1149);
+ ruleOpSingleAssign();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpSingleAssignRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpSingleAssign1156); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpSingleAssign"
+
+
+ // $ANTLR start "ruleOpSingleAssign"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:578:1: ruleOpSingleAssign : ( '=' ) ;
+ public final void ruleOpSingleAssign() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:582:2: ( ( '=' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:583:1: ( '=' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:583:1: ( '=' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:584:1: '='
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword());
+ }
+ match(input,13,FOLLOW_13_in_ruleOpSingleAssign1183); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpSingleAssign"
+
+
+ // $ANTLR start "entryRuleOpMultiAssign"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:599:1: entryRuleOpMultiAssign : ruleOpMultiAssign EOF ;
+ public final void entryRuleOpMultiAssign() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:600:1: ( ruleOpMultiAssign EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:601:1: ruleOpMultiAssign EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpMultiAssignRule());
+ }
+ pushFollow(FOLLOW_ruleOpMultiAssign_in_entryRuleOpMultiAssign1211);
+ ruleOpMultiAssign();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpMultiAssignRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpMultiAssign1218); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpMultiAssign"
+
+
+ // $ANTLR start "ruleOpMultiAssign"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:608:1: ruleOpMultiAssign : ( ( rule__OpMultiAssign__Alternatives ) ) ;
+ public final void ruleOpMultiAssign() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:612:2: ( ( ( rule__OpMultiAssign__Alternatives ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:613:1: ( ( rule__OpMultiAssign__Alternatives ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:613:1: ( ( rule__OpMultiAssign__Alternatives ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:614:1: ( rule__OpMultiAssign__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpMultiAssignAccess().getAlternatives());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:615:1: ( rule__OpMultiAssign__Alternatives )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:615:2: rule__OpMultiAssign__Alternatives
+ {
+ pushFollow(FOLLOW_rule__OpMultiAssign__Alternatives_in_ruleOpMultiAssign1244);
+ rule__OpMultiAssign__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpMultiAssignAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpMultiAssign"
+
+
+ // $ANTLR start "entryRuleXOrExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:627:1: entryRuleXOrExpression : ruleXOrExpression EOF ;
+ public final void entryRuleXOrExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:628:1: ( ruleXOrExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:629:1: ruleXOrExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOrExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXOrExpression_in_entryRuleXOrExpression1271);
+ ruleXOrExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOrExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXOrExpression1278); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXOrExpression"
+
+
+ // $ANTLR start "ruleXOrExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:636:1: ruleXOrExpression : ( ( rule__XOrExpression__Group__0 ) ) ;
+ public final void ruleXOrExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:640:2: ( ( ( rule__XOrExpression__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:641:1: ( ( rule__XOrExpression__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:641:1: ( ( rule__XOrExpression__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:642:1: ( rule__XOrExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOrExpressionAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:643:1: ( rule__XOrExpression__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:643:2: rule__XOrExpression__Group__0
+ {
+ pushFollow(FOLLOW_rule__XOrExpression__Group__0_in_ruleXOrExpression1304);
+ rule__XOrExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOrExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXOrExpression"
+
+
+ // $ANTLR start "entryRuleOpOr"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:655:1: entryRuleOpOr : ruleOpOr EOF ;
+ public final void entryRuleOpOr() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:656:1: ( ruleOpOr EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:657:1: ruleOpOr EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOrRule());
+ }
+ pushFollow(FOLLOW_ruleOpOr_in_entryRuleOpOr1331);
+ ruleOpOr();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOrRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpOr1338); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpOr"
+
+
+ // $ANTLR start "ruleOpOr"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:664:1: ruleOpOr : ( '||' ) ;
+ public final void ruleOpOr() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:668:2: ( ( '||' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:669:1: ( '||' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:669:1: ( '||' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:670:1: '||'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword());
+ }
+ match(input,14,FOLLOW_14_in_ruleOpOr1365); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpOr"
+
+
+ // $ANTLR start "entryRuleXAndExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:685:1: entryRuleXAndExpression : ruleXAndExpression EOF ;
+ public final void entryRuleXAndExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:686:1: ( ruleXAndExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:687:1: ruleXAndExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAndExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXAndExpression_in_entryRuleXAndExpression1393);
+ ruleXAndExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAndExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXAndExpression1400); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXAndExpression"
+
+
+ // $ANTLR start "ruleXAndExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:694:1: ruleXAndExpression : ( ( rule__XAndExpression__Group__0 ) ) ;
+ public final void ruleXAndExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:698:2: ( ( ( rule__XAndExpression__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:699:1: ( ( rule__XAndExpression__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:699:1: ( ( rule__XAndExpression__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:700:1: ( rule__XAndExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAndExpressionAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:701:1: ( rule__XAndExpression__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:701:2: rule__XAndExpression__Group__0
+ {
+ pushFollow(FOLLOW_rule__XAndExpression__Group__0_in_ruleXAndExpression1426);
+ rule__XAndExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAndExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXAndExpression"
+
+
+ // $ANTLR start "entryRuleOpAnd"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:713:1: entryRuleOpAnd : ruleOpAnd EOF ;
+ public final void entryRuleOpAnd() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:714:1: ( ruleOpAnd EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:715:1: ruleOpAnd EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpAndRule());
+ }
+ pushFollow(FOLLOW_ruleOpAnd_in_entryRuleOpAnd1453);
+ ruleOpAnd();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpAndRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpAnd1460); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpAnd"
+
+
+ // $ANTLR start "ruleOpAnd"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:722:1: ruleOpAnd : ( '&&' ) ;
+ public final void ruleOpAnd() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:726:2: ( ( '&&' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:727:1: ( '&&' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:727:1: ( '&&' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:728:1: '&&'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword());
+ }
+ match(input,15,FOLLOW_15_in_ruleOpAnd1487); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpAnd"
+
+
+ // $ANTLR start "entryRuleXEqualityExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:743:1: entryRuleXEqualityExpression : ruleXEqualityExpression EOF ;
+ public final void entryRuleXEqualityExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:744:1: ( ruleXEqualityExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:745:1: ruleXEqualityExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXEqualityExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXEqualityExpression_in_entryRuleXEqualityExpression1515);
+ ruleXEqualityExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXEqualityExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXEqualityExpression1522); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXEqualityExpression"
+
+
+ // $ANTLR start "ruleXEqualityExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:752:1: ruleXEqualityExpression : ( ( rule__XEqualityExpression__Group__0 ) ) ;
+ public final void ruleXEqualityExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:756:2: ( ( ( rule__XEqualityExpression__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:757:1: ( ( rule__XEqualityExpression__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:757:1: ( ( rule__XEqualityExpression__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:758:1: ( rule__XEqualityExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXEqualityExpressionAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:759:1: ( rule__XEqualityExpression__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:759:2: rule__XEqualityExpression__Group__0
+ {
+ pushFollow(FOLLOW_rule__XEqualityExpression__Group__0_in_ruleXEqualityExpression1548);
+ rule__XEqualityExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXEqualityExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXEqualityExpression"
+
+
+ // $ANTLR start "entryRuleOpEquality"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:771:1: entryRuleOpEquality : ruleOpEquality EOF ;
+ public final void entryRuleOpEquality() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:772:1: ( ruleOpEquality EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:773:1: ruleOpEquality EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpEqualityRule());
+ }
+ pushFollow(FOLLOW_ruleOpEquality_in_entryRuleOpEquality1575);
+ ruleOpEquality();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpEqualityRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpEquality1582); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpEquality"
+
+
+ // $ANTLR start "ruleOpEquality"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:780:1: ruleOpEquality : ( ( rule__OpEquality__Alternatives ) ) ;
+ public final void ruleOpEquality() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:784:2: ( ( ( rule__OpEquality__Alternatives ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:785:1: ( ( rule__OpEquality__Alternatives ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:785:1: ( ( rule__OpEquality__Alternatives ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:786:1: ( rule__OpEquality__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpEqualityAccess().getAlternatives());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:787:1: ( rule__OpEquality__Alternatives )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:787:2: rule__OpEquality__Alternatives
+ {
+ pushFollow(FOLLOW_rule__OpEquality__Alternatives_in_ruleOpEquality1608);
+ rule__OpEquality__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpEqualityAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpEquality"
+
+
+ // $ANTLR start "entryRuleXRelationalExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:799:1: entryRuleXRelationalExpression : ruleXRelationalExpression EOF ;
+ public final void entryRuleXRelationalExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:800:1: ( ruleXRelationalExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:801:1: ruleXRelationalExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXRelationalExpression_in_entryRuleXRelationalExpression1635);
+ ruleXRelationalExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXRelationalExpression1642); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXRelationalExpression"
+
+
+ // $ANTLR start "ruleXRelationalExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:808:1: ruleXRelationalExpression : ( ( rule__XRelationalExpression__Group__0 ) ) ;
+ public final void ruleXRelationalExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:812:2: ( ( ( rule__XRelationalExpression__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:813:1: ( ( rule__XRelationalExpression__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:813:1: ( ( rule__XRelationalExpression__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:814:1: ( rule__XRelationalExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:815:1: ( rule__XRelationalExpression__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:815:2: rule__XRelationalExpression__Group__0
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group__0_in_ruleXRelationalExpression1668);
+ rule__XRelationalExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXRelationalExpression"
+
+
+ // $ANTLR start "entryRuleOpCompare"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:827:1: entryRuleOpCompare : ruleOpCompare EOF ;
+ public final void entryRuleOpCompare() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:828:1: ( ruleOpCompare EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:829:1: ruleOpCompare EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpCompareRule());
+ }
+ pushFollow(FOLLOW_ruleOpCompare_in_entryRuleOpCompare1695);
+ ruleOpCompare();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpCompareRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpCompare1702); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpCompare"
+
+
+ // $ANTLR start "ruleOpCompare"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:836:1: ruleOpCompare : ( ( rule__OpCompare__Alternatives ) ) ;
+ public final void ruleOpCompare() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:840:2: ( ( ( rule__OpCompare__Alternatives ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:841:1: ( ( rule__OpCompare__Alternatives ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:841:1: ( ( rule__OpCompare__Alternatives ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:842:1: ( rule__OpCompare__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpCompareAccess().getAlternatives());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:843:1: ( rule__OpCompare__Alternatives )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:843:2: rule__OpCompare__Alternatives
+ {
+ pushFollow(FOLLOW_rule__OpCompare__Alternatives_in_ruleOpCompare1728);
+ rule__OpCompare__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpCompareAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpCompare"
+
+
+ // $ANTLR start "entryRuleXOtherOperatorExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:855:1: entryRuleXOtherOperatorExpression : ruleXOtherOperatorExpression EOF ;
+ public final void entryRuleXOtherOperatorExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:856:1: ( ruleXOtherOperatorExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:857:1: ruleXOtherOperatorExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOtherOperatorExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXOtherOperatorExpression_in_entryRuleXOtherOperatorExpression1755);
+ ruleXOtherOperatorExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOtherOperatorExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXOtherOperatorExpression1762); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXOtherOperatorExpression"
+
+
+ // $ANTLR start "ruleXOtherOperatorExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:864:1: ruleXOtherOperatorExpression : ( ( rule__XOtherOperatorExpression__Group__0 ) ) ;
+ public final void ruleXOtherOperatorExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:868:2: ( ( ( rule__XOtherOperatorExpression__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:869:1: ( ( rule__XOtherOperatorExpression__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:869:1: ( ( rule__XOtherOperatorExpression__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:870:1: ( rule__XOtherOperatorExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:871:1: ( rule__XOtherOperatorExpression__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:871:2: rule__XOtherOperatorExpression__Group__0
+ {
+ pushFollow(FOLLOW_rule__XOtherOperatorExpression__Group__0_in_ruleXOtherOperatorExpression1788);
+ rule__XOtherOperatorExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXOtherOperatorExpression"
+
+
+ // $ANTLR start "entryRuleOpOther"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:883:1: entryRuleOpOther : ruleOpOther EOF ;
+ public final void entryRuleOpOther() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:884:1: ( ruleOpOther EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:885:1: ruleOpOther EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherRule());
+ }
+ pushFollow(FOLLOW_ruleOpOther_in_entryRuleOpOther1815);
+ ruleOpOther();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpOther1822); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpOther"
+
+
+ // $ANTLR start "ruleOpOther"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:892:1: ruleOpOther : ( ( rule__OpOther__Alternatives ) ) ;
+ public final void ruleOpOther() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:896:2: ( ( ( rule__OpOther__Alternatives ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:897:1: ( ( rule__OpOther__Alternatives ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:897:1: ( ( rule__OpOther__Alternatives ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:898:1: ( rule__OpOther__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getAlternatives());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:899:1: ( rule__OpOther__Alternatives )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:899:2: rule__OpOther__Alternatives
+ {
+ pushFollow(FOLLOW_rule__OpOther__Alternatives_in_ruleOpOther1848);
+ rule__OpOther__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpOther"
+
+
+ // $ANTLR start "entryRuleXAdditiveExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:911:1: entryRuleXAdditiveExpression : ruleXAdditiveExpression EOF ;
+ public final void entryRuleXAdditiveExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:912:1: ( ruleXAdditiveExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:913:1: ruleXAdditiveExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAdditiveExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXAdditiveExpression_in_entryRuleXAdditiveExpression1875);
+ ruleXAdditiveExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAdditiveExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXAdditiveExpression1882); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXAdditiveExpression"
+
+
+ // $ANTLR start "ruleXAdditiveExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:920:1: ruleXAdditiveExpression : ( ( rule__XAdditiveExpression__Group__0 ) ) ;
+ public final void ruleXAdditiveExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:924:2: ( ( ( rule__XAdditiveExpression__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:925:1: ( ( rule__XAdditiveExpression__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:925:1: ( ( rule__XAdditiveExpression__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:926:1: ( rule__XAdditiveExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAdditiveExpressionAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:927:1: ( rule__XAdditiveExpression__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:927:2: rule__XAdditiveExpression__Group__0
+ {
+ pushFollow(FOLLOW_rule__XAdditiveExpression__Group__0_in_ruleXAdditiveExpression1908);
+ rule__XAdditiveExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAdditiveExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXAdditiveExpression"
+
+
+ // $ANTLR start "entryRuleOpAdd"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:939:1: entryRuleOpAdd : ruleOpAdd EOF ;
+ public final void entryRuleOpAdd() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:940:1: ( ruleOpAdd EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:941:1: ruleOpAdd EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpAddRule());
+ }
+ pushFollow(FOLLOW_ruleOpAdd_in_entryRuleOpAdd1935);
+ ruleOpAdd();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpAddRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpAdd1942); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpAdd"
+
+
+ // $ANTLR start "ruleOpAdd"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:948:1: ruleOpAdd : ( ( rule__OpAdd__Alternatives ) ) ;
+ public final void ruleOpAdd() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:952:2: ( ( ( rule__OpAdd__Alternatives ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:953:1: ( ( rule__OpAdd__Alternatives ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:953:1: ( ( rule__OpAdd__Alternatives ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:954:1: ( rule__OpAdd__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpAddAccess().getAlternatives());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:955:1: ( rule__OpAdd__Alternatives )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:955:2: rule__OpAdd__Alternatives
+ {
+ pushFollow(FOLLOW_rule__OpAdd__Alternatives_in_ruleOpAdd1968);
+ rule__OpAdd__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpAddAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpAdd"
+
+
+ // $ANTLR start "entryRuleXMultiplicativeExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:967:1: entryRuleXMultiplicativeExpression : ruleXMultiplicativeExpression EOF ;
+ public final void entryRuleXMultiplicativeExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:968:1: ( ruleXMultiplicativeExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:969:1: ruleXMultiplicativeExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMultiplicativeExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXMultiplicativeExpression_in_entryRuleXMultiplicativeExpression1995);
+ ruleXMultiplicativeExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMultiplicativeExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXMultiplicativeExpression2002); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXMultiplicativeExpression"
+
+
+ // $ANTLR start "ruleXMultiplicativeExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:976:1: ruleXMultiplicativeExpression : ( ( rule__XMultiplicativeExpression__Group__0 ) ) ;
+ public final void ruleXMultiplicativeExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:980:2: ( ( ( rule__XMultiplicativeExpression__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:981:1: ( ( rule__XMultiplicativeExpression__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:981:1: ( ( rule__XMultiplicativeExpression__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:982:1: ( rule__XMultiplicativeExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:983:1: ( rule__XMultiplicativeExpression__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:983:2: rule__XMultiplicativeExpression__Group__0
+ {
+ pushFollow(FOLLOW_rule__XMultiplicativeExpression__Group__0_in_ruleXMultiplicativeExpression2028);
+ rule__XMultiplicativeExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXMultiplicativeExpression"
+
+
+ // $ANTLR start "entryRuleOpMulti"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:995:1: entryRuleOpMulti : ruleOpMulti EOF ;
+ public final void entryRuleOpMulti() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:996:1: ( ruleOpMulti EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:997:1: ruleOpMulti EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpMultiRule());
+ }
+ pushFollow(FOLLOW_ruleOpMulti_in_entryRuleOpMulti2055);
+ ruleOpMulti();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpMultiRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpMulti2062); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpMulti"
+
+
+ // $ANTLR start "ruleOpMulti"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1004:1: ruleOpMulti : ( ( rule__OpMulti__Alternatives ) ) ;
+ public final void ruleOpMulti() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1008:2: ( ( ( rule__OpMulti__Alternatives ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1009:1: ( ( rule__OpMulti__Alternatives ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1009:1: ( ( rule__OpMulti__Alternatives ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1010:1: ( rule__OpMulti__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpMultiAccess().getAlternatives());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1011:1: ( rule__OpMulti__Alternatives )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1011:2: rule__OpMulti__Alternatives
+ {
+ pushFollow(FOLLOW_rule__OpMulti__Alternatives_in_ruleOpMulti2088);
+ rule__OpMulti__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpMultiAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpMulti"
+
+
+ // $ANTLR start "entryRuleXUnaryOperation"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1023:1: entryRuleXUnaryOperation : ruleXUnaryOperation EOF ;
+ public final void entryRuleXUnaryOperation() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1024:1: ( ruleXUnaryOperation EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1025:1: ruleXUnaryOperation EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXUnaryOperationRule());
+ }
+ pushFollow(FOLLOW_ruleXUnaryOperation_in_entryRuleXUnaryOperation2115);
+ ruleXUnaryOperation();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXUnaryOperationRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXUnaryOperation2122); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXUnaryOperation"
+
+
+ // $ANTLR start "ruleXUnaryOperation"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1032:1: ruleXUnaryOperation : ( ( rule__XUnaryOperation__Alternatives ) ) ;
+ public final void ruleXUnaryOperation() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1036:2: ( ( ( rule__XUnaryOperation__Alternatives ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1037:1: ( ( rule__XUnaryOperation__Alternatives ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1037:1: ( ( rule__XUnaryOperation__Alternatives ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1038:1: ( rule__XUnaryOperation__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXUnaryOperationAccess().getAlternatives());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1039:1: ( rule__XUnaryOperation__Alternatives )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1039:2: rule__XUnaryOperation__Alternatives
+ {
+ pushFollow(FOLLOW_rule__XUnaryOperation__Alternatives_in_ruleXUnaryOperation2148);
+ rule__XUnaryOperation__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXUnaryOperationAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXUnaryOperation"
+
+
+ // $ANTLR start "entryRuleOpUnary"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1051:1: entryRuleOpUnary : ruleOpUnary EOF ;
+ public final void entryRuleOpUnary() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1052:1: ( ruleOpUnary EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1053:1: ruleOpUnary EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpUnaryRule());
+ }
+ pushFollow(FOLLOW_ruleOpUnary_in_entryRuleOpUnary2175);
+ ruleOpUnary();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpUnaryRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpUnary2182); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleOpUnary"
+
+
+ // $ANTLR start "ruleOpUnary"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1060:1: ruleOpUnary : ( ( rule__OpUnary__Alternatives ) ) ;
+ public final void ruleOpUnary() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1064:2: ( ( ( rule__OpUnary__Alternatives ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1065:1: ( ( rule__OpUnary__Alternatives ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1065:1: ( ( rule__OpUnary__Alternatives ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1066:1: ( rule__OpUnary__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpUnaryAccess().getAlternatives());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1067:1: ( rule__OpUnary__Alternatives )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1067:2: rule__OpUnary__Alternatives
+ {
+ pushFollow(FOLLOW_rule__OpUnary__Alternatives_in_ruleOpUnary2208);
+ rule__OpUnary__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpUnaryAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleOpUnary"
+
+
+ // $ANTLR start "entryRuleXCastedExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1079:1: entryRuleXCastedExpression : ruleXCastedExpression EOF ;
+ public final void entryRuleXCastedExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1080:1: ( ruleXCastedExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1081:1: ruleXCastedExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCastedExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXCastedExpression_in_entryRuleXCastedExpression2235);
+ ruleXCastedExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCastedExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXCastedExpression2242); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXCastedExpression"
+
+
+ // $ANTLR start "ruleXCastedExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1088:1: ruleXCastedExpression : ( ( rule__XCastedExpression__Group__0 ) ) ;
+ public final void ruleXCastedExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1092:2: ( ( ( rule__XCastedExpression__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1093:1: ( ( rule__XCastedExpression__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1093:1: ( ( rule__XCastedExpression__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1094:1: ( rule__XCastedExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCastedExpressionAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1095:1: ( rule__XCastedExpression__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1095:2: rule__XCastedExpression__Group__0
+ {
+ pushFollow(FOLLOW_rule__XCastedExpression__Group__0_in_ruleXCastedExpression2268);
+ rule__XCastedExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCastedExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXCastedExpression"
+
+
+ // $ANTLR start "entryRuleXMemberFeatureCall"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1107:1: entryRuleXMemberFeatureCall : ruleXMemberFeatureCall EOF ;
+ public final void entryRuleXMemberFeatureCall() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1108:1: ( ruleXMemberFeatureCall EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1109:1: ruleXMemberFeatureCall EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallRule());
+ }
+ pushFollow(FOLLOW_ruleXMemberFeatureCall_in_entryRuleXMemberFeatureCall2295);
+ ruleXMemberFeatureCall();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXMemberFeatureCall2302); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXMemberFeatureCall"
+
+
+ // $ANTLR start "ruleXMemberFeatureCall"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1116:1: ruleXMemberFeatureCall : ( ( rule__XMemberFeatureCall__Group__0 ) ) ;
+ public final void ruleXMemberFeatureCall() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1120:2: ( ( ( rule__XMemberFeatureCall__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1121:1: ( ( rule__XMemberFeatureCall__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1121:1: ( ( rule__XMemberFeatureCall__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1122:1: ( rule__XMemberFeatureCall__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1123:1: ( rule__XMemberFeatureCall__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1123:2: rule__XMemberFeatureCall__Group__0
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group__0_in_ruleXMemberFeatureCall2328);
+ rule__XMemberFeatureCall__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXMemberFeatureCall"
+
+
+ // $ANTLR start "entryRuleXPrimaryExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1135:1: entryRuleXPrimaryExpression : ruleXPrimaryExpression EOF ;
+ public final void entryRuleXPrimaryExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1136:1: ( ruleXPrimaryExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1137:1: ruleXPrimaryExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXPrimaryExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXPrimaryExpression_in_entryRuleXPrimaryExpression2355);
+ ruleXPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXPrimaryExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXPrimaryExpression2362); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXPrimaryExpression"
+
+
+ // $ANTLR start "ruleXPrimaryExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1144:1: ruleXPrimaryExpression : ( ( rule__XPrimaryExpression__Alternatives ) ) ;
+ public final void ruleXPrimaryExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1148:2: ( ( ( rule__XPrimaryExpression__Alternatives ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1149:1: ( ( rule__XPrimaryExpression__Alternatives ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1149:1: ( ( rule__XPrimaryExpression__Alternatives ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1150:1: ( rule__XPrimaryExpression__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXPrimaryExpressionAccess().getAlternatives());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1151:1: ( rule__XPrimaryExpression__Alternatives )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1151:2: rule__XPrimaryExpression__Alternatives
+ {
+ pushFollow(FOLLOW_rule__XPrimaryExpression__Alternatives_in_ruleXPrimaryExpression2388);
+ rule__XPrimaryExpression__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXPrimaryExpressionAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXPrimaryExpression"
+
+
+ // $ANTLR start "entryRuleXLiteral"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1163:1: entryRuleXLiteral : ruleXLiteral EOF ;
+ public final void entryRuleXLiteral() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1164:1: ( ruleXLiteral EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1165:1: ruleXLiteral EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXLiteralRule());
+ }
+ pushFollow(FOLLOW_ruleXLiteral_in_entryRuleXLiteral2415);
+ ruleXLiteral();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXLiteralRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXLiteral2422); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXLiteral"
+
+
+ // $ANTLR start "ruleXLiteral"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1172:1: ruleXLiteral : ( ( rule__XLiteral__Alternatives ) ) ;
+ public final void ruleXLiteral() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1176:2: ( ( ( rule__XLiteral__Alternatives ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1177:1: ( ( rule__XLiteral__Alternatives ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1177:1: ( ( rule__XLiteral__Alternatives ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1178:1: ( rule__XLiteral__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXLiteralAccess().getAlternatives());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1179:1: ( rule__XLiteral__Alternatives )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1179:2: rule__XLiteral__Alternatives
+ {
+ pushFollow(FOLLOW_rule__XLiteral__Alternatives_in_ruleXLiteral2448);
+ rule__XLiteral__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXLiteralAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXLiteral"
+
+
+ // $ANTLR start "entryRuleXCollectionLiteral"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1191:1: entryRuleXCollectionLiteral : ruleXCollectionLiteral EOF ;
+ public final void entryRuleXCollectionLiteral() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1192:1: ( ruleXCollectionLiteral EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1193:1: ruleXCollectionLiteral EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCollectionLiteralRule());
+ }
+ pushFollow(FOLLOW_ruleXCollectionLiteral_in_entryRuleXCollectionLiteral2475);
+ ruleXCollectionLiteral();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCollectionLiteralRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXCollectionLiteral2482); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXCollectionLiteral"
+
+
+ // $ANTLR start "ruleXCollectionLiteral"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1200:1: ruleXCollectionLiteral : ( ( rule__XCollectionLiteral__Alternatives ) ) ;
+ public final void ruleXCollectionLiteral() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1204:2: ( ( ( rule__XCollectionLiteral__Alternatives ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1205:1: ( ( rule__XCollectionLiteral__Alternatives ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1205:1: ( ( rule__XCollectionLiteral__Alternatives ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1206:1: ( rule__XCollectionLiteral__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCollectionLiteralAccess().getAlternatives());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1207:1: ( rule__XCollectionLiteral__Alternatives )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1207:2: rule__XCollectionLiteral__Alternatives
+ {
+ pushFollow(FOLLOW_rule__XCollectionLiteral__Alternatives_in_ruleXCollectionLiteral2508);
+ rule__XCollectionLiteral__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCollectionLiteralAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXCollectionLiteral"
+
+
+ // $ANTLR start "entryRuleXSetLiteral"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1219:1: entryRuleXSetLiteral : ruleXSetLiteral EOF ;
+ public final void entryRuleXSetLiteral() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1220:1: ( ruleXSetLiteral EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1221:1: ruleXSetLiteral EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSetLiteralRule());
+ }
+ pushFollow(FOLLOW_ruleXSetLiteral_in_entryRuleXSetLiteral2535);
+ ruleXSetLiteral();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSetLiteralRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXSetLiteral2542); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXSetLiteral"
+
+
+ // $ANTLR start "ruleXSetLiteral"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1228:1: ruleXSetLiteral : ( ( rule__XSetLiteral__Group__0 ) ) ;
+ public final void ruleXSetLiteral() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1232:2: ( ( ( rule__XSetLiteral__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1233:1: ( ( rule__XSetLiteral__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1233:1: ( ( rule__XSetLiteral__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1234:1: ( rule__XSetLiteral__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSetLiteralAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1235:1: ( rule__XSetLiteral__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1235:2: rule__XSetLiteral__Group__0
+ {
+ pushFollow(FOLLOW_rule__XSetLiteral__Group__0_in_ruleXSetLiteral2568);
+ rule__XSetLiteral__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSetLiteralAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXSetLiteral"
+
+
+ // $ANTLR start "entryRuleXListLiteral"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1247:1: entryRuleXListLiteral : ruleXListLiteral EOF ;
+ public final void entryRuleXListLiteral() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1248:1: ( ruleXListLiteral EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1249:1: ruleXListLiteral EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXListLiteralRule());
+ }
+ pushFollow(FOLLOW_ruleXListLiteral_in_entryRuleXListLiteral2595);
+ ruleXListLiteral();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXListLiteralRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXListLiteral2602); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXListLiteral"
+
+
+ // $ANTLR start "ruleXListLiteral"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1256:1: ruleXListLiteral : ( ( rule__XListLiteral__Group__0 ) ) ;
+ public final void ruleXListLiteral() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1260:2: ( ( ( rule__XListLiteral__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1261:1: ( ( rule__XListLiteral__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1261:1: ( ( rule__XListLiteral__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1262:1: ( rule__XListLiteral__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXListLiteralAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1263:1: ( rule__XListLiteral__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1263:2: rule__XListLiteral__Group__0
+ {
+ pushFollow(FOLLOW_rule__XListLiteral__Group__0_in_ruleXListLiteral2628);
+ rule__XListLiteral__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXListLiteralAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXListLiteral"
+
+
+ // $ANTLR start "entryRuleXClosure"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1275:1: entryRuleXClosure : ruleXClosure EOF ;
+ public final void entryRuleXClosure() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1276:1: ( ruleXClosure EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1277:1: ruleXClosure EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureRule());
+ }
+ pushFollow(FOLLOW_ruleXClosure_in_entryRuleXClosure2655);
+ ruleXClosure();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXClosure2662); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXClosure"
+
+
+ // $ANTLR start "ruleXClosure"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1284:1: ruleXClosure : ( ( rule__XClosure__Group__0 ) ) ;
+ public final void ruleXClosure() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1288:2: ( ( ( rule__XClosure__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1289:1: ( ( rule__XClosure__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1289:1: ( ( rule__XClosure__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1290:1: ( rule__XClosure__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1291:1: ( rule__XClosure__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1291:2: rule__XClosure__Group__0
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group__0_in_ruleXClosure2688);
+ rule__XClosure__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXClosure"
+
+
+ // $ANTLR start "entryRuleXExpressionInClosure"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1303:1: entryRuleXExpressionInClosure : ruleXExpressionInClosure EOF ;
+ public final void entryRuleXExpressionInClosure() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1304:1: ( ruleXExpressionInClosure EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1305:1: ruleXExpressionInClosure EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXExpressionInClosureRule());
+ }
+ pushFollow(FOLLOW_ruleXExpressionInClosure_in_entryRuleXExpressionInClosure2715);
+ ruleXExpressionInClosure();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXExpressionInClosureRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXExpressionInClosure2722); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXExpressionInClosure"
+
+
+ // $ANTLR start "ruleXExpressionInClosure"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1312:1: ruleXExpressionInClosure : ( ( rule__XExpressionInClosure__Group__0 ) ) ;
+ public final void ruleXExpressionInClosure() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1316:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1317:1: ( ( rule__XExpressionInClosure__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1317:1: ( ( rule__XExpressionInClosure__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1318:1: ( rule__XExpressionInClosure__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXExpressionInClosureAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1319:1: ( rule__XExpressionInClosure__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1319:2: rule__XExpressionInClosure__Group__0
+ {
+ pushFollow(FOLLOW_rule__XExpressionInClosure__Group__0_in_ruleXExpressionInClosure2748);
+ rule__XExpressionInClosure__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXExpressionInClosureAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXExpressionInClosure"
+
+
+ // $ANTLR start "entryRuleXShortClosure"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1331:1: entryRuleXShortClosure : ruleXShortClosure EOF ;
+ public final void entryRuleXShortClosure() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1332:1: ( ruleXShortClosure EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1333:1: ruleXShortClosure EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXShortClosureRule());
+ }
+ pushFollow(FOLLOW_ruleXShortClosure_in_entryRuleXShortClosure2775);
+ ruleXShortClosure();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXShortClosureRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXShortClosure2782); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXShortClosure"
+
+
+ // $ANTLR start "ruleXShortClosure"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1340:1: ruleXShortClosure : ( ( rule__XShortClosure__Group__0 ) ) ;
+ public final void ruleXShortClosure() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1344:2: ( ( ( rule__XShortClosure__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1345:1: ( ( rule__XShortClosure__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1345:1: ( ( rule__XShortClosure__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1346:1: ( rule__XShortClosure__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXShortClosureAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1347:1: ( rule__XShortClosure__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1347:2: rule__XShortClosure__Group__0
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__Group__0_in_ruleXShortClosure2808);
+ rule__XShortClosure__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXShortClosureAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXShortClosure"
+
+
+ // $ANTLR start "entryRuleXParenthesizedExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1359:1: entryRuleXParenthesizedExpression : ruleXParenthesizedExpression EOF ;
+ public final void entryRuleXParenthesizedExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1360:1: ( ruleXParenthesizedExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1361:1: ruleXParenthesizedExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXParenthesizedExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXParenthesizedExpression_in_entryRuleXParenthesizedExpression2835);
+ ruleXParenthesizedExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXParenthesizedExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXParenthesizedExpression2842); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXParenthesizedExpression"
+
+
+ // $ANTLR start "ruleXParenthesizedExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1368:1: ruleXParenthesizedExpression : ( ( rule__XParenthesizedExpression__Group__0 ) ) ;
+ public final void ruleXParenthesizedExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1372:2: ( ( ( rule__XParenthesizedExpression__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1373:1: ( ( rule__XParenthesizedExpression__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1373:1: ( ( rule__XParenthesizedExpression__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1374:1: ( rule__XParenthesizedExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXParenthesizedExpressionAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1375:1: ( rule__XParenthesizedExpression__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1375:2: rule__XParenthesizedExpression__Group__0
+ {
+ pushFollow(FOLLOW_rule__XParenthesizedExpression__Group__0_in_ruleXParenthesizedExpression2868);
+ rule__XParenthesizedExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXParenthesizedExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXParenthesizedExpression"
+
+
+ // $ANTLR start "entryRuleXIfExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1387:1: entryRuleXIfExpression : ruleXIfExpression EOF ;
+ public final void entryRuleXIfExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1388:1: ( ruleXIfExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1389:1: ruleXIfExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXIfExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXIfExpression_in_entryRuleXIfExpression2895);
+ ruleXIfExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXIfExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXIfExpression2902); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXIfExpression"
+
+
+ // $ANTLR start "ruleXIfExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1396:1: ruleXIfExpression : ( ( rule__XIfExpression__Group__0 ) ) ;
+ public final void ruleXIfExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1400:2: ( ( ( rule__XIfExpression__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1401:1: ( ( rule__XIfExpression__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1401:1: ( ( rule__XIfExpression__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1402:1: ( rule__XIfExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXIfExpressionAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1403:1: ( rule__XIfExpression__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1403:2: rule__XIfExpression__Group__0
+ {
+ pushFollow(FOLLOW_rule__XIfExpression__Group__0_in_ruleXIfExpression2928);
+ rule__XIfExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXIfExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXIfExpression"
+
+
+ // $ANTLR start "entryRuleXSwitchExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1415:1: entryRuleXSwitchExpression : ruleXSwitchExpression EOF ;
+ public final void entryRuleXSwitchExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1416:1: ( ruleXSwitchExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1417:1: ruleXSwitchExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXSwitchExpression_in_entryRuleXSwitchExpression2955);
+ ruleXSwitchExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXSwitchExpression2962); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXSwitchExpression"
+
+
+ // $ANTLR start "ruleXSwitchExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1424:1: ruleXSwitchExpression : ( ( rule__XSwitchExpression__Group__0 ) ) ;
+ public final void ruleXSwitchExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1428:2: ( ( ( rule__XSwitchExpression__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1429:1: ( ( rule__XSwitchExpression__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1429:1: ( ( rule__XSwitchExpression__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1430:1: ( rule__XSwitchExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1431:1: ( rule__XSwitchExpression__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1431:2: rule__XSwitchExpression__Group__0
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group__0_in_ruleXSwitchExpression2988);
+ rule__XSwitchExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXSwitchExpression"
+
+
+ // $ANTLR start "entryRuleXCasePart"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1443:1: entryRuleXCasePart : ruleXCasePart EOF ;
+ public final void entryRuleXCasePart() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1444:1: ( ruleXCasePart EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1445:1: ruleXCasePart EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCasePartRule());
+ }
+ pushFollow(FOLLOW_ruleXCasePart_in_entryRuleXCasePart3015);
+ ruleXCasePart();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCasePartRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXCasePart3022); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXCasePart"
+
+
+ // $ANTLR start "ruleXCasePart"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1452:1: ruleXCasePart : ( ( rule__XCasePart__Group__0 ) ) ;
+ public final void ruleXCasePart() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1456:2: ( ( ( rule__XCasePart__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1457:1: ( ( rule__XCasePart__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1457:1: ( ( rule__XCasePart__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1458:1: ( rule__XCasePart__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCasePartAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1459:1: ( rule__XCasePart__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1459:2: rule__XCasePart__Group__0
+ {
+ pushFollow(FOLLOW_rule__XCasePart__Group__0_in_ruleXCasePart3048);
+ rule__XCasePart__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCasePartAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXCasePart"
+
+
+ // $ANTLR start "entryRuleXForLoopExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1471:1: entryRuleXForLoopExpression : ruleXForLoopExpression EOF ;
+ public final void entryRuleXForLoopExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1472:1: ( ruleXForLoopExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1473:1: ruleXForLoopExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXForLoopExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXForLoopExpression_in_entryRuleXForLoopExpression3075);
+ ruleXForLoopExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXForLoopExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXForLoopExpression3082); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXForLoopExpression"
+
+
+ // $ANTLR start "ruleXForLoopExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1480:1: ruleXForLoopExpression : ( ( rule__XForLoopExpression__Group__0 ) ) ;
+ public final void ruleXForLoopExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1484:2: ( ( ( rule__XForLoopExpression__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1485:1: ( ( rule__XForLoopExpression__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1485:1: ( ( rule__XForLoopExpression__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1486:1: ( rule__XForLoopExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXForLoopExpressionAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1487:1: ( rule__XForLoopExpression__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1487:2: rule__XForLoopExpression__Group__0
+ {
+ pushFollow(FOLLOW_rule__XForLoopExpression__Group__0_in_ruleXForLoopExpression3108);
+ rule__XForLoopExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXForLoopExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXForLoopExpression"
+
+
+ // $ANTLR start "entryRuleXWhileExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1499:1: entryRuleXWhileExpression : ruleXWhileExpression EOF ;
+ public final void entryRuleXWhileExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1500:1: ( ruleXWhileExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1501:1: ruleXWhileExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXWhileExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXWhileExpression_in_entryRuleXWhileExpression3135);
+ ruleXWhileExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXWhileExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXWhileExpression3142); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXWhileExpression"
+
+
+ // $ANTLR start "ruleXWhileExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1508:1: ruleXWhileExpression : ( ( rule__XWhileExpression__Group__0 ) ) ;
+ public final void ruleXWhileExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1512:2: ( ( ( rule__XWhileExpression__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1513:1: ( ( rule__XWhileExpression__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1513:1: ( ( rule__XWhileExpression__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1514:1: ( rule__XWhileExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXWhileExpressionAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1515:1: ( rule__XWhileExpression__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1515:2: rule__XWhileExpression__Group__0
+ {
+ pushFollow(FOLLOW_rule__XWhileExpression__Group__0_in_ruleXWhileExpression3168);
+ rule__XWhileExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXWhileExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXWhileExpression"
+
+
+ // $ANTLR start "entryRuleXDoWhileExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1527:1: entryRuleXDoWhileExpression : ruleXDoWhileExpression EOF ;
+ public final void entryRuleXDoWhileExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1528:1: ( ruleXDoWhileExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1529:1: ruleXDoWhileExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXDoWhileExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXDoWhileExpression_in_entryRuleXDoWhileExpression3195);
+ ruleXDoWhileExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXDoWhileExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXDoWhileExpression3202); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXDoWhileExpression"
+
+
+ // $ANTLR start "ruleXDoWhileExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1536:1: ruleXDoWhileExpression : ( ( rule__XDoWhileExpression__Group__0 ) ) ;
+ public final void ruleXDoWhileExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1540:2: ( ( ( rule__XDoWhileExpression__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1541:1: ( ( rule__XDoWhileExpression__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1541:1: ( ( rule__XDoWhileExpression__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1542:1: ( rule__XDoWhileExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXDoWhileExpressionAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1543:1: ( rule__XDoWhileExpression__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1543:2: rule__XDoWhileExpression__Group__0
+ {
+ pushFollow(FOLLOW_rule__XDoWhileExpression__Group__0_in_ruleXDoWhileExpression3228);
+ rule__XDoWhileExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXDoWhileExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXDoWhileExpression"
+
+
+ // $ANTLR start "entryRuleXBlockExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1555:1: entryRuleXBlockExpression : ruleXBlockExpression EOF ;
+ public final void entryRuleXBlockExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1556:1: ( ruleXBlockExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1557:1: ruleXBlockExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXBlockExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXBlockExpression_in_entryRuleXBlockExpression3255);
+ ruleXBlockExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXBlockExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXBlockExpression3262); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXBlockExpression"
+
+
+ // $ANTLR start "ruleXBlockExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1564:1: ruleXBlockExpression : ( ( rule__XBlockExpression__Group__0 ) ) ;
+ public final void ruleXBlockExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1568:2: ( ( ( rule__XBlockExpression__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1569:1: ( ( rule__XBlockExpression__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1569:1: ( ( rule__XBlockExpression__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1570:1: ( rule__XBlockExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXBlockExpressionAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1571:1: ( rule__XBlockExpression__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1571:2: rule__XBlockExpression__Group__0
+ {
+ pushFollow(FOLLOW_rule__XBlockExpression__Group__0_in_ruleXBlockExpression3288);
+ rule__XBlockExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXBlockExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXBlockExpression"
+
+
+ // $ANTLR start "entryRuleXExpressionInsideBlock"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1583:1: entryRuleXExpressionInsideBlock : ruleXExpressionInsideBlock EOF ;
+ public final void entryRuleXExpressionInsideBlock() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1584:1: ( ruleXExpressionInsideBlock EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1585:1: ruleXExpressionInsideBlock EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXExpressionInsideBlockRule());
+ }
+ pushFollow(FOLLOW_ruleXExpressionInsideBlock_in_entryRuleXExpressionInsideBlock3315);
+ ruleXExpressionInsideBlock();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXExpressionInsideBlockRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXExpressionInsideBlock3322); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXExpressionInsideBlock"
+
+
+ // $ANTLR start "ruleXExpressionInsideBlock"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1592:1: ruleXExpressionInsideBlock : ( ( rule__XExpressionInsideBlock__Alternatives ) ) ;
+ public final void ruleXExpressionInsideBlock() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1596:2: ( ( ( rule__XExpressionInsideBlock__Alternatives ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1597:1: ( ( rule__XExpressionInsideBlock__Alternatives ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1597:1: ( ( rule__XExpressionInsideBlock__Alternatives ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1598:1: ( rule__XExpressionInsideBlock__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXExpressionInsideBlockAccess().getAlternatives());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1599:1: ( rule__XExpressionInsideBlock__Alternatives )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1599:2: rule__XExpressionInsideBlock__Alternatives
+ {
+ pushFollow(FOLLOW_rule__XExpressionInsideBlock__Alternatives_in_ruleXExpressionInsideBlock3348);
+ rule__XExpressionInsideBlock__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXExpressionInsideBlockAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXExpressionInsideBlock"
+
+
+ // $ANTLR start "entryRuleXVariableDeclaration"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1611:1: entryRuleXVariableDeclaration : ruleXVariableDeclaration EOF ;
+ public final void entryRuleXVariableDeclaration() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1612:1: ( ruleXVariableDeclaration EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1613:1: ruleXVariableDeclaration EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationRule());
+ }
+ pushFollow(FOLLOW_ruleXVariableDeclaration_in_entryRuleXVariableDeclaration3375);
+ ruleXVariableDeclaration();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXVariableDeclaration3382); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXVariableDeclaration"
+
+
+ // $ANTLR start "ruleXVariableDeclaration"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1620:1: ruleXVariableDeclaration : ( ( rule__XVariableDeclaration__Group__0 ) ) ;
+ public final void ruleXVariableDeclaration() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1624:2: ( ( ( rule__XVariableDeclaration__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1625:1: ( ( rule__XVariableDeclaration__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1625:1: ( ( rule__XVariableDeclaration__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1626:1: ( rule__XVariableDeclaration__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1627:1: ( rule__XVariableDeclaration__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1627:2: rule__XVariableDeclaration__Group__0
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group__0_in_ruleXVariableDeclaration3408);
+ rule__XVariableDeclaration__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXVariableDeclaration"
+
+
+ // $ANTLR start "entryRuleJvmFormalParameter"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1639:1: entryRuleJvmFormalParameter : ruleJvmFormalParameter EOF ;
+ public final void entryRuleJvmFormalParameter() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1640:1: ( ruleJvmFormalParameter EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1641:1: ruleJvmFormalParameter EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmFormalParameterRule());
+ }
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_entryRuleJvmFormalParameter3435);
+ ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmFormalParameterRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleJvmFormalParameter3442); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleJvmFormalParameter"
+
+
+ // $ANTLR start "ruleJvmFormalParameter"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1648:1: ruleJvmFormalParameter : ( ( rule__JvmFormalParameter__Group__0 ) ) ;
+ public final void ruleJvmFormalParameter() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1652:2: ( ( ( rule__JvmFormalParameter__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1653:1: ( ( rule__JvmFormalParameter__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1653:1: ( ( rule__JvmFormalParameter__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1654:1: ( rule__JvmFormalParameter__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmFormalParameterAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1655:1: ( rule__JvmFormalParameter__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1655:2: rule__JvmFormalParameter__Group__0
+ {
+ pushFollow(FOLLOW_rule__JvmFormalParameter__Group__0_in_ruleJvmFormalParameter3468);
+ rule__JvmFormalParameter__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmFormalParameterAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleJvmFormalParameter"
+
+
+ // $ANTLR start "entryRuleFullJvmFormalParameter"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1667:1: entryRuleFullJvmFormalParameter : ruleFullJvmFormalParameter EOF ;
+ public final void entryRuleFullJvmFormalParameter() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1668:1: ( ruleFullJvmFormalParameter EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1669:1: ruleFullJvmFormalParameter EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFullJvmFormalParameterRule());
+ }
+ pushFollow(FOLLOW_ruleFullJvmFormalParameter_in_entryRuleFullJvmFormalParameter3495);
+ ruleFullJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFullJvmFormalParameterRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleFullJvmFormalParameter3502); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleFullJvmFormalParameter"
+
+
+ // $ANTLR start "ruleFullJvmFormalParameter"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1676:1: ruleFullJvmFormalParameter : ( ( rule__FullJvmFormalParameter__Group__0 ) ) ;
+ public final void ruleFullJvmFormalParameter() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1680:2: ( ( ( rule__FullJvmFormalParameter__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1681:1: ( ( rule__FullJvmFormalParameter__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1681:1: ( ( rule__FullJvmFormalParameter__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1682:1: ( rule__FullJvmFormalParameter__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFullJvmFormalParameterAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1683:1: ( rule__FullJvmFormalParameter__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1683:2: rule__FullJvmFormalParameter__Group__0
+ {
+ pushFollow(FOLLOW_rule__FullJvmFormalParameter__Group__0_in_ruleFullJvmFormalParameter3528);
+ rule__FullJvmFormalParameter__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFullJvmFormalParameterAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleFullJvmFormalParameter"
+
+
+ // $ANTLR start "entryRuleXFeatureCall"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1695:1: entryRuleXFeatureCall : ruleXFeatureCall EOF ;
+ public final void entryRuleXFeatureCall() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1696:1: ( ruleXFeatureCall EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1697:1: ruleXFeatureCall EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallRule());
+ }
+ pushFollow(FOLLOW_ruleXFeatureCall_in_entryRuleXFeatureCall3555);
+ ruleXFeatureCall();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXFeatureCall3562); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXFeatureCall"
+
+
+ // $ANTLR start "ruleXFeatureCall"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1704:1: ruleXFeatureCall : ( ( rule__XFeatureCall__Group__0 ) ) ;
+ public final void ruleXFeatureCall() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1708:2: ( ( ( rule__XFeatureCall__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1709:1: ( ( rule__XFeatureCall__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1709:1: ( ( rule__XFeatureCall__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1710:1: ( rule__XFeatureCall__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1711:1: ( rule__XFeatureCall__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1711:2: rule__XFeatureCall__Group__0
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group__0_in_ruleXFeatureCall3588);
+ rule__XFeatureCall__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXFeatureCall"
+
+
+ // $ANTLR start "entryRuleFeatureCallID"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1723:1: entryRuleFeatureCallID : ruleFeatureCallID EOF ;
+ public final void entryRuleFeatureCallID() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1724:1: ( ruleFeatureCallID EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1725:1: ruleFeatureCallID EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureCallIDRule());
+ }
+ pushFollow(FOLLOW_ruleFeatureCallID_in_entryRuleFeatureCallID3615);
+ ruleFeatureCallID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureCallIDRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleFeatureCallID3622); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleFeatureCallID"
+
+
+ // $ANTLR start "ruleFeatureCallID"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1732:1: ruleFeatureCallID : ( ( rule__FeatureCallID__Alternatives ) ) ;
+ public final void ruleFeatureCallID() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1736:2: ( ( ( rule__FeatureCallID__Alternatives ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1737:1: ( ( rule__FeatureCallID__Alternatives ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1737:1: ( ( rule__FeatureCallID__Alternatives ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1738:1: ( rule__FeatureCallID__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureCallIDAccess().getAlternatives());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1739:1: ( rule__FeatureCallID__Alternatives )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1739:2: rule__FeatureCallID__Alternatives
+ {
+ pushFollow(FOLLOW_rule__FeatureCallID__Alternatives_in_ruleFeatureCallID3648);
+ rule__FeatureCallID__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureCallIDAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleFeatureCallID"
+
+
+ // $ANTLR start "entryRuleIdOrSuper"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1751:1: entryRuleIdOrSuper : ruleIdOrSuper EOF ;
+ public final void entryRuleIdOrSuper() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1752:1: ( ruleIdOrSuper EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1753:1: ruleIdOrSuper EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIdOrSuperRule());
+ }
+ pushFollow(FOLLOW_ruleIdOrSuper_in_entryRuleIdOrSuper3675);
+ ruleIdOrSuper();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIdOrSuperRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleIdOrSuper3682); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleIdOrSuper"
+
+
+ // $ANTLR start "ruleIdOrSuper"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1760:1: ruleIdOrSuper : ( ( rule__IdOrSuper__Alternatives ) ) ;
+ public final void ruleIdOrSuper() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1764:2: ( ( ( rule__IdOrSuper__Alternatives ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1765:1: ( ( rule__IdOrSuper__Alternatives ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1765:1: ( ( rule__IdOrSuper__Alternatives ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1766:1: ( rule__IdOrSuper__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIdOrSuperAccess().getAlternatives());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1767:1: ( rule__IdOrSuper__Alternatives )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1767:2: rule__IdOrSuper__Alternatives
+ {
+ pushFollow(FOLLOW_rule__IdOrSuper__Alternatives_in_ruleIdOrSuper3708);
+ rule__IdOrSuper__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIdOrSuperAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleIdOrSuper"
+
+
+ // $ANTLR start "entryRuleXConstructorCall"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1779:1: entryRuleXConstructorCall : ruleXConstructorCall EOF ;
+ public final void entryRuleXConstructorCall() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1780:1: ( ruleXConstructorCall EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1781:1: ruleXConstructorCall EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallRule());
+ }
+ pushFollow(FOLLOW_ruleXConstructorCall_in_entryRuleXConstructorCall3735);
+ ruleXConstructorCall();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXConstructorCall3742); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXConstructorCall"
+
+
+ // $ANTLR start "ruleXConstructorCall"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1788:1: ruleXConstructorCall : ( ( rule__XConstructorCall__Group__0 ) ) ;
+ public final void ruleXConstructorCall() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1792:2: ( ( ( rule__XConstructorCall__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1793:1: ( ( rule__XConstructorCall__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1793:1: ( ( rule__XConstructorCall__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1794:1: ( rule__XConstructorCall__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1795:1: ( rule__XConstructorCall__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1795:2: rule__XConstructorCall__Group__0
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group__0_in_ruleXConstructorCall3768);
+ rule__XConstructorCall__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXConstructorCall"
+
+
+ // $ANTLR start "entryRuleXBooleanLiteral"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1807:1: entryRuleXBooleanLiteral : ruleXBooleanLiteral EOF ;
+ public final void entryRuleXBooleanLiteral() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1808:1: ( ruleXBooleanLiteral EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1809:1: ruleXBooleanLiteral EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXBooleanLiteralRule());
+ }
+ pushFollow(FOLLOW_ruleXBooleanLiteral_in_entryRuleXBooleanLiteral3795);
+ ruleXBooleanLiteral();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXBooleanLiteralRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXBooleanLiteral3802); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXBooleanLiteral"
+
+
+ // $ANTLR start "ruleXBooleanLiteral"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1816:1: ruleXBooleanLiteral : ( ( rule__XBooleanLiteral__Group__0 ) ) ;
+ public final void ruleXBooleanLiteral() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1820:2: ( ( ( rule__XBooleanLiteral__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1821:1: ( ( rule__XBooleanLiteral__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1821:1: ( ( rule__XBooleanLiteral__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1822:1: ( rule__XBooleanLiteral__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXBooleanLiteralAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1823:1: ( rule__XBooleanLiteral__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1823:2: rule__XBooleanLiteral__Group__0
+ {
+ pushFollow(FOLLOW_rule__XBooleanLiteral__Group__0_in_ruleXBooleanLiteral3828);
+ rule__XBooleanLiteral__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXBooleanLiteralAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXBooleanLiteral"
+
+
+ // $ANTLR start "entryRuleXNullLiteral"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1835:1: entryRuleXNullLiteral : ruleXNullLiteral EOF ;
+ public final void entryRuleXNullLiteral() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1836:1: ( ruleXNullLiteral EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1837:1: ruleXNullLiteral EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXNullLiteralRule());
+ }
+ pushFollow(FOLLOW_ruleXNullLiteral_in_entryRuleXNullLiteral3855);
+ ruleXNullLiteral();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXNullLiteralRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXNullLiteral3862); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXNullLiteral"
+
+
+ // $ANTLR start "ruleXNullLiteral"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1844:1: ruleXNullLiteral : ( ( rule__XNullLiteral__Group__0 ) ) ;
+ public final void ruleXNullLiteral() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1848:2: ( ( ( rule__XNullLiteral__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1849:1: ( ( rule__XNullLiteral__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1849:1: ( ( rule__XNullLiteral__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1850:1: ( rule__XNullLiteral__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXNullLiteralAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1851:1: ( rule__XNullLiteral__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1851:2: rule__XNullLiteral__Group__0
+ {
+ pushFollow(FOLLOW_rule__XNullLiteral__Group__0_in_ruleXNullLiteral3888);
+ rule__XNullLiteral__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXNullLiteralAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXNullLiteral"
+
+
+ // $ANTLR start "entryRuleXNumberLiteral"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1863:1: entryRuleXNumberLiteral : ruleXNumberLiteral EOF ;
+ public final void entryRuleXNumberLiteral() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1864:1: ( ruleXNumberLiteral EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1865:1: ruleXNumberLiteral EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXNumberLiteralRule());
+ }
+ pushFollow(FOLLOW_ruleXNumberLiteral_in_entryRuleXNumberLiteral3915);
+ ruleXNumberLiteral();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXNumberLiteralRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXNumberLiteral3922); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXNumberLiteral"
+
+
+ // $ANTLR start "ruleXNumberLiteral"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1872:1: ruleXNumberLiteral : ( ( rule__XNumberLiteral__Group__0 ) ) ;
+ public final void ruleXNumberLiteral() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1876:2: ( ( ( rule__XNumberLiteral__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1877:1: ( ( rule__XNumberLiteral__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1877:1: ( ( rule__XNumberLiteral__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1878:1: ( rule__XNumberLiteral__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXNumberLiteralAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1879:1: ( rule__XNumberLiteral__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1879:2: rule__XNumberLiteral__Group__0
+ {
+ pushFollow(FOLLOW_rule__XNumberLiteral__Group__0_in_ruleXNumberLiteral3948);
+ rule__XNumberLiteral__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXNumberLiteralAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXNumberLiteral"
+
+
+ // $ANTLR start "entryRuleXStringLiteral"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1891:1: entryRuleXStringLiteral : ruleXStringLiteral EOF ;
+ public final void entryRuleXStringLiteral() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1892:1: ( ruleXStringLiteral EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1893:1: ruleXStringLiteral EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXStringLiteralRule());
+ }
+ pushFollow(FOLLOW_ruleXStringLiteral_in_entryRuleXStringLiteral3975);
+ ruleXStringLiteral();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXStringLiteralRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXStringLiteral3982); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXStringLiteral"
+
+
+ // $ANTLR start "ruleXStringLiteral"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1900:1: ruleXStringLiteral : ( ( rule__XStringLiteral__Group__0 ) ) ;
+ public final void ruleXStringLiteral() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1904:2: ( ( ( rule__XStringLiteral__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1905:1: ( ( rule__XStringLiteral__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1905:1: ( ( rule__XStringLiteral__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1906:1: ( rule__XStringLiteral__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXStringLiteralAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1907:1: ( rule__XStringLiteral__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1907:2: rule__XStringLiteral__Group__0
+ {
+ pushFollow(FOLLOW_rule__XStringLiteral__Group__0_in_ruleXStringLiteral4008);
+ rule__XStringLiteral__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXStringLiteralAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXStringLiteral"
+
+
+ // $ANTLR start "entryRuleXTypeLiteral"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1919:1: entryRuleXTypeLiteral : ruleXTypeLiteral EOF ;
+ public final void entryRuleXTypeLiteral() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1920:1: ( ruleXTypeLiteral EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1921:1: ruleXTypeLiteral EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTypeLiteralRule());
+ }
+ pushFollow(FOLLOW_ruleXTypeLiteral_in_entryRuleXTypeLiteral4035);
+ ruleXTypeLiteral();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTypeLiteralRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXTypeLiteral4042); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXTypeLiteral"
+
+
+ // $ANTLR start "ruleXTypeLiteral"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1928:1: ruleXTypeLiteral : ( ( rule__XTypeLiteral__Group__0 ) ) ;
+ public final void ruleXTypeLiteral() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1932:2: ( ( ( rule__XTypeLiteral__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1933:1: ( ( rule__XTypeLiteral__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1933:1: ( ( rule__XTypeLiteral__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1934:1: ( rule__XTypeLiteral__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTypeLiteralAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1935:1: ( rule__XTypeLiteral__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1935:2: rule__XTypeLiteral__Group__0
+ {
+ pushFollow(FOLLOW_rule__XTypeLiteral__Group__0_in_ruleXTypeLiteral4068);
+ rule__XTypeLiteral__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTypeLiteralAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXTypeLiteral"
+
+
+ // $ANTLR start "entryRuleXThrowExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1947:1: entryRuleXThrowExpression : ruleXThrowExpression EOF ;
+ public final void entryRuleXThrowExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1948:1: ( ruleXThrowExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1949:1: ruleXThrowExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXThrowExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXThrowExpression_in_entryRuleXThrowExpression4095);
+ ruleXThrowExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXThrowExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXThrowExpression4102); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXThrowExpression"
+
+
+ // $ANTLR start "ruleXThrowExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1956:1: ruleXThrowExpression : ( ( rule__XThrowExpression__Group__0 ) ) ;
+ public final void ruleXThrowExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1960:2: ( ( ( rule__XThrowExpression__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1961:1: ( ( rule__XThrowExpression__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1961:1: ( ( rule__XThrowExpression__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1962:1: ( rule__XThrowExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXThrowExpressionAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1963:1: ( rule__XThrowExpression__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1963:2: rule__XThrowExpression__Group__0
+ {
+ pushFollow(FOLLOW_rule__XThrowExpression__Group__0_in_ruleXThrowExpression4128);
+ rule__XThrowExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXThrowExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXThrowExpression"
+
+
+ // $ANTLR start "entryRuleXReturnExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1975:1: entryRuleXReturnExpression : ruleXReturnExpression EOF ;
+ public final void entryRuleXReturnExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1976:1: ( ruleXReturnExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1977:1: ruleXReturnExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXReturnExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXReturnExpression_in_entryRuleXReturnExpression4155);
+ ruleXReturnExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXReturnExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXReturnExpression4162); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXReturnExpression"
+
+
+ // $ANTLR start "ruleXReturnExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1984:1: ruleXReturnExpression : ( ( rule__XReturnExpression__Group__0 ) ) ;
+ public final void ruleXReturnExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1988:2: ( ( ( rule__XReturnExpression__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1989:1: ( ( rule__XReturnExpression__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1989:1: ( ( rule__XReturnExpression__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1990:1: ( rule__XReturnExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXReturnExpressionAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1991:1: ( rule__XReturnExpression__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:1991:2: rule__XReturnExpression__Group__0
+ {
+ pushFollow(FOLLOW_rule__XReturnExpression__Group__0_in_ruleXReturnExpression4188);
+ rule__XReturnExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXReturnExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXReturnExpression"
+
+
+ // $ANTLR start "entryRuleXTryCatchFinallyExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2003:1: entryRuleXTryCatchFinallyExpression : ruleXTryCatchFinallyExpression EOF ;
+ public final void entryRuleXTryCatchFinallyExpression() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2004:1: ( ruleXTryCatchFinallyExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2005:1: ruleXTryCatchFinallyExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXTryCatchFinallyExpression_in_entryRuleXTryCatchFinallyExpression4215);
+ ruleXTryCatchFinallyExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXTryCatchFinallyExpression4222); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXTryCatchFinallyExpression"
+
+
+ // $ANTLR start "ruleXTryCatchFinallyExpression"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2012:1: ruleXTryCatchFinallyExpression : ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) ;
+ public final void ruleXTryCatchFinallyExpression() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2016:2: ( ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2017:1: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2017:1: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2018:1: ( rule__XTryCatchFinallyExpression__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2019:1: ( rule__XTryCatchFinallyExpression__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2019:2: rule__XTryCatchFinallyExpression__Group__0
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group__0_in_ruleXTryCatchFinallyExpression4248);
+ rule__XTryCatchFinallyExpression__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXTryCatchFinallyExpression"
+
+
+ // $ANTLR start "entryRuleXCatchClause"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2031:1: entryRuleXCatchClause : ruleXCatchClause EOF ;
+ public final void entryRuleXCatchClause() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2032:1: ( ruleXCatchClause EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2033:1: ruleXCatchClause EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCatchClauseRule());
+ }
+ pushFollow(FOLLOW_ruleXCatchClause_in_entryRuleXCatchClause4275);
+ ruleXCatchClause();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCatchClauseRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXCatchClause4282); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXCatchClause"
+
+
+ // $ANTLR start "ruleXCatchClause"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2040:1: ruleXCatchClause : ( ( rule__XCatchClause__Group__0 ) ) ;
+ public final void ruleXCatchClause() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2044:2: ( ( ( rule__XCatchClause__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2045:1: ( ( rule__XCatchClause__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2045:1: ( ( rule__XCatchClause__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2046:1: ( rule__XCatchClause__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCatchClauseAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2047:1: ( rule__XCatchClause__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2047:2: rule__XCatchClause__Group__0
+ {
+ pushFollow(FOLLOW_rule__XCatchClause__Group__0_in_ruleXCatchClause4308);
+ rule__XCatchClause__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCatchClauseAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXCatchClause"
+
+
+ // $ANTLR start "entryRuleQualifiedName"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2059:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
+ public final void entryRuleQualifiedName() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2060:1: ( ruleQualifiedName EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2061:1: ruleQualifiedName EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameRule());
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName4335);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedName4342); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleQualifiedName"
+
+
+ // $ANTLR start "ruleQualifiedName"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2068:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
+ public final void ruleQualifiedName() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2072:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2073:1: ( ( rule__QualifiedName__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2073:1: ( ( rule__QualifiedName__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2074:1: ( rule__QualifiedName__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2075:1: ( rule__QualifiedName__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2075:2: rule__QualifiedName__Group__0
+ {
+ pushFollow(FOLLOW_rule__QualifiedName__Group__0_in_ruleQualifiedName4368);
+ rule__QualifiedName__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleQualifiedName"
+
+
+ // $ANTLR start "entryRuleNumber"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2087:1: entryRuleNumber : ruleNumber EOF ;
+ public final void entryRuleNumber() throws RecognitionException {
+
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2091:1: ( ruleNumber EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2092:1: ruleNumber EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNumberRule());
+ }
+ pushFollow(FOLLOW_ruleNumber_in_entryRuleNumber4400);
+ ruleNumber();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNumberRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleNumber4407); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ myHiddenTokenState.restore();
+
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleNumber"
+
+
+ // $ANTLR start "ruleNumber"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2102:1: ruleNumber : ( ( rule__Number__Alternatives ) ) ;
+ public final void ruleNumber() throws RecognitionException {
+
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2107:2: ( ( ( rule__Number__Alternatives ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2108:1: ( ( rule__Number__Alternatives ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2108:1: ( ( rule__Number__Alternatives ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2109:1: ( rule__Number__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNumberAccess().getAlternatives());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2110:1: ( rule__Number__Alternatives )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2110:2: rule__Number__Alternatives
+ {
+ pushFollow(FOLLOW_rule__Number__Alternatives_in_ruleNumber4437);
+ rule__Number__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNumberAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+ myHiddenTokenState.restore();
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleNumber"
+
+
+ // $ANTLR start "entryRuleJvmTypeReference"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2125:1: entryRuleJvmTypeReference : ruleJvmTypeReference EOF ;
+ public final void entryRuleJvmTypeReference() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2126:1: ( ruleJvmTypeReference EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2127:1: ruleJvmTypeReference EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmTypeReferenceRule());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_entryRuleJvmTypeReference4466);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmTypeReferenceRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleJvmTypeReference4473); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleJvmTypeReference"
+
+
+ // $ANTLR start "ruleJvmTypeReference"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2134:1: ruleJvmTypeReference : ( ( rule__JvmTypeReference__Alternatives ) ) ;
+ public final void ruleJvmTypeReference() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2138:2: ( ( ( rule__JvmTypeReference__Alternatives ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2139:1: ( ( rule__JvmTypeReference__Alternatives ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2139:1: ( ( rule__JvmTypeReference__Alternatives ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2140:1: ( rule__JvmTypeReference__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmTypeReferenceAccess().getAlternatives());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2141:1: ( rule__JvmTypeReference__Alternatives )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2141:2: rule__JvmTypeReference__Alternatives
+ {
+ pushFollow(FOLLOW_rule__JvmTypeReference__Alternatives_in_ruleJvmTypeReference4499);
+ rule__JvmTypeReference__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmTypeReferenceAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleJvmTypeReference"
+
+
+ // $ANTLR start "entryRuleArrayBrackets"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2153:1: entryRuleArrayBrackets : ruleArrayBrackets EOF ;
+ public final void entryRuleArrayBrackets() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2154:1: ( ruleArrayBrackets EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2155:1: ruleArrayBrackets EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getArrayBracketsRule());
+ }
+ pushFollow(FOLLOW_ruleArrayBrackets_in_entryRuleArrayBrackets4526);
+ ruleArrayBrackets();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getArrayBracketsRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleArrayBrackets4533); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleArrayBrackets"
+
+
+ // $ANTLR start "ruleArrayBrackets"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2162:1: ruleArrayBrackets : ( ( rule__ArrayBrackets__Group__0 ) ) ;
+ public final void ruleArrayBrackets() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2166:2: ( ( ( rule__ArrayBrackets__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2167:1: ( ( rule__ArrayBrackets__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2167:1: ( ( rule__ArrayBrackets__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2168:1: ( rule__ArrayBrackets__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getArrayBracketsAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2169:1: ( rule__ArrayBrackets__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2169:2: rule__ArrayBrackets__Group__0
+ {
+ pushFollow(FOLLOW_rule__ArrayBrackets__Group__0_in_ruleArrayBrackets4559);
+ rule__ArrayBrackets__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getArrayBracketsAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleArrayBrackets"
+
+
+ // $ANTLR start "entryRuleXFunctionTypeRef"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2181:1: entryRuleXFunctionTypeRef : ruleXFunctionTypeRef EOF ;
+ public final void entryRuleXFunctionTypeRef() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2182:1: ( ruleXFunctionTypeRef EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2183:1: ruleXFunctionTypeRef EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFunctionTypeRefRule());
+ }
+ pushFollow(FOLLOW_ruleXFunctionTypeRef_in_entryRuleXFunctionTypeRef4586);
+ ruleXFunctionTypeRef();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFunctionTypeRefRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXFunctionTypeRef4593); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXFunctionTypeRef"
+
+
+ // $ANTLR start "ruleXFunctionTypeRef"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2190:1: ruleXFunctionTypeRef : ( ( rule__XFunctionTypeRef__Group__0 ) ) ;
+ public final void ruleXFunctionTypeRef() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2194:2: ( ( ( rule__XFunctionTypeRef__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2195:1: ( ( rule__XFunctionTypeRef__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2195:1: ( ( rule__XFunctionTypeRef__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2196:1: ( rule__XFunctionTypeRef__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFunctionTypeRefAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2197:1: ( rule__XFunctionTypeRef__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2197:2: rule__XFunctionTypeRef__Group__0
+ {
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group__0_in_ruleXFunctionTypeRef4619);
+ rule__XFunctionTypeRef__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFunctionTypeRefAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXFunctionTypeRef"
+
+
+ // $ANTLR start "entryRuleJvmParameterizedTypeReference"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2209:1: entryRuleJvmParameterizedTypeReference : ruleJvmParameterizedTypeReference EOF ;
+ public final void entryRuleJvmParameterizedTypeReference() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2210:1: ( ruleJvmParameterizedTypeReference EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2211:1: ruleJvmParameterizedTypeReference EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmParameterizedTypeReferenceRule());
+ }
+ pushFollow(FOLLOW_ruleJvmParameterizedTypeReference_in_entryRuleJvmParameterizedTypeReference4646);
+ ruleJvmParameterizedTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmParameterizedTypeReferenceRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleJvmParameterizedTypeReference4653); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleJvmParameterizedTypeReference"
+
+
+ // $ANTLR start "ruleJvmParameterizedTypeReference"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2218:1: ruleJvmParameterizedTypeReference : ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) ;
+ public final void ruleJvmParameterizedTypeReference() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2222:2: ( ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2223:1: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2223:1: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2224:1: ( rule__JvmParameterizedTypeReference__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2225:1: ( rule__JvmParameterizedTypeReference__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2225:2: rule__JvmParameterizedTypeReference__Group__0
+ {
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group__0_in_ruleJvmParameterizedTypeReference4679);
+ rule__JvmParameterizedTypeReference__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleJvmParameterizedTypeReference"
+
+
+ // $ANTLR start "entryRuleJvmArgumentTypeReference"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2237:1: entryRuleJvmArgumentTypeReference : ruleJvmArgumentTypeReference EOF ;
+ public final void entryRuleJvmArgumentTypeReference() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2238:1: ( ruleJvmArgumentTypeReference EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2239:1: ruleJvmArgumentTypeReference EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmArgumentTypeReferenceRule());
+ }
+ pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_entryRuleJvmArgumentTypeReference4706);
+ ruleJvmArgumentTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmArgumentTypeReferenceRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleJvmArgumentTypeReference4713); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleJvmArgumentTypeReference"
+
+
+ // $ANTLR start "ruleJvmArgumentTypeReference"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2246:1: ruleJvmArgumentTypeReference : ( ( rule__JvmArgumentTypeReference__Alternatives ) ) ;
+ public final void ruleJvmArgumentTypeReference() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2250:2: ( ( ( rule__JvmArgumentTypeReference__Alternatives ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2251:1: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2251:1: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2252:1: ( rule__JvmArgumentTypeReference__Alternatives )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2253:1: ( rule__JvmArgumentTypeReference__Alternatives )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2253:2: rule__JvmArgumentTypeReference__Alternatives
+ {
+ pushFollow(FOLLOW_rule__JvmArgumentTypeReference__Alternatives_in_ruleJvmArgumentTypeReference4739);
+ rule__JvmArgumentTypeReference__Alternatives();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleJvmArgumentTypeReference"
+
+
+ // $ANTLR start "entryRuleJvmWildcardTypeReference"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2265:1: entryRuleJvmWildcardTypeReference : ruleJvmWildcardTypeReference EOF ;
+ public final void entryRuleJvmWildcardTypeReference() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2266:1: ( ruleJvmWildcardTypeReference EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2267:1: ruleJvmWildcardTypeReference EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmWildcardTypeReferenceRule());
+ }
+ pushFollow(FOLLOW_ruleJvmWildcardTypeReference_in_entryRuleJvmWildcardTypeReference4766);
+ ruleJvmWildcardTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmWildcardTypeReferenceRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleJvmWildcardTypeReference4773); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleJvmWildcardTypeReference"
+
+
+ // $ANTLR start "ruleJvmWildcardTypeReference"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2274:1: ruleJvmWildcardTypeReference : ( ( rule__JvmWildcardTypeReference__Group__0 ) ) ;
+ public final void ruleJvmWildcardTypeReference() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2278:2: ( ( ( rule__JvmWildcardTypeReference__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2279:1: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2279:1: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2280:1: ( rule__JvmWildcardTypeReference__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2281:1: ( rule__JvmWildcardTypeReference__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2281:2: rule__JvmWildcardTypeReference__Group__0
+ {
+ pushFollow(FOLLOW_rule__JvmWildcardTypeReference__Group__0_in_ruleJvmWildcardTypeReference4799);
+ rule__JvmWildcardTypeReference__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleJvmWildcardTypeReference"
+
+
+ // $ANTLR start "entryRuleJvmUpperBound"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2293:1: entryRuleJvmUpperBound : ruleJvmUpperBound EOF ;
+ public final void entryRuleJvmUpperBound() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2294:1: ( ruleJvmUpperBound EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2295:1: ruleJvmUpperBound EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmUpperBoundRule());
+ }
+ pushFollow(FOLLOW_ruleJvmUpperBound_in_entryRuleJvmUpperBound4826);
+ ruleJvmUpperBound();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmUpperBoundRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleJvmUpperBound4833); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleJvmUpperBound"
+
+
+ // $ANTLR start "ruleJvmUpperBound"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2302:1: ruleJvmUpperBound : ( ( rule__JvmUpperBound__Group__0 ) ) ;
+ public final void ruleJvmUpperBound() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2306:2: ( ( ( rule__JvmUpperBound__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2307:1: ( ( rule__JvmUpperBound__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2307:1: ( ( rule__JvmUpperBound__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2308:1: ( rule__JvmUpperBound__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmUpperBoundAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2309:1: ( rule__JvmUpperBound__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2309:2: rule__JvmUpperBound__Group__0
+ {
+ pushFollow(FOLLOW_rule__JvmUpperBound__Group__0_in_ruleJvmUpperBound4859);
+ rule__JvmUpperBound__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmUpperBoundAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleJvmUpperBound"
+
+
+ // $ANTLR start "entryRuleJvmUpperBoundAnded"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2321:1: entryRuleJvmUpperBoundAnded : ruleJvmUpperBoundAnded EOF ;
+ public final void entryRuleJvmUpperBoundAnded() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2322:1: ( ruleJvmUpperBoundAnded EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2323:1: ruleJvmUpperBoundAnded EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmUpperBoundAndedRule());
+ }
+ pushFollow(FOLLOW_ruleJvmUpperBoundAnded_in_entryRuleJvmUpperBoundAnded4886);
+ ruleJvmUpperBoundAnded();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmUpperBoundAndedRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleJvmUpperBoundAnded4893); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleJvmUpperBoundAnded"
+
+
+ // $ANTLR start "ruleJvmUpperBoundAnded"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2330:1: ruleJvmUpperBoundAnded : ( ( rule__JvmUpperBoundAnded__Group__0 ) ) ;
+ public final void ruleJvmUpperBoundAnded() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2334:2: ( ( ( rule__JvmUpperBoundAnded__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2335:1: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2335:1: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2336:1: ( rule__JvmUpperBoundAnded__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmUpperBoundAndedAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2337:1: ( rule__JvmUpperBoundAnded__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2337:2: rule__JvmUpperBoundAnded__Group__0
+ {
+ pushFollow(FOLLOW_rule__JvmUpperBoundAnded__Group__0_in_ruleJvmUpperBoundAnded4919);
+ rule__JvmUpperBoundAnded__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmUpperBoundAndedAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleJvmUpperBoundAnded"
+
+
+ // $ANTLR start "entryRuleJvmLowerBound"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2349:1: entryRuleJvmLowerBound : ruleJvmLowerBound EOF ;
+ public final void entryRuleJvmLowerBound() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2350:1: ( ruleJvmLowerBound EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2351:1: ruleJvmLowerBound EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmLowerBoundRule());
+ }
+ pushFollow(FOLLOW_ruleJvmLowerBound_in_entryRuleJvmLowerBound4946);
+ ruleJvmLowerBound();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmLowerBoundRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleJvmLowerBound4953); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleJvmLowerBound"
+
+
+ // $ANTLR start "ruleJvmLowerBound"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2358:1: ruleJvmLowerBound : ( ( rule__JvmLowerBound__Group__0 ) ) ;
+ public final void ruleJvmLowerBound() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2362:2: ( ( ( rule__JvmLowerBound__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2363:1: ( ( rule__JvmLowerBound__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2363:1: ( ( rule__JvmLowerBound__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2364:1: ( rule__JvmLowerBound__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmLowerBoundAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2365:1: ( rule__JvmLowerBound__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2365:2: rule__JvmLowerBound__Group__0
+ {
+ pushFollow(FOLLOW_rule__JvmLowerBound__Group__0_in_ruleJvmLowerBound4979);
+ rule__JvmLowerBound__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmLowerBoundAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleJvmLowerBound"
+
+
+ // $ANTLR start "entryRuleQualifiedNameWithWildcard"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2379:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
+ public final void entryRuleQualifiedNameWithWildcard() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2380:1: ( ruleQualifiedNameWithWildcard EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2381:1: ruleQualifiedNameWithWildcard EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameWithWildcardRule());
+ }
+ pushFollow(FOLLOW_ruleQualifiedNameWithWildcard_in_entryRuleQualifiedNameWithWildcard5008);
+ ruleQualifiedNameWithWildcard();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameWithWildcardRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedNameWithWildcard5015); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleQualifiedNameWithWildcard"
+
+
+ // $ANTLR start "ruleQualifiedNameWithWildcard"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2388:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
+ public final void ruleQualifiedNameWithWildcard() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2392:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2393:1: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2393:1: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2394:1: ( rule__QualifiedNameWithWildcard__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2395:1: ( rule__QualifiedNameWithWildcard__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2395:2: rule__QualifiedNameWithWildcard__Group__0
+ {
+ pushFollow(FOLLOW_rule__QualifiedNameWithWildcard__Group__0_in_ruleQualifiedNameWithWildcard5041);
+ rule__QualifiedNameWithWildcard__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleQualifiedNameWithWildcard"
+
+
+ // $ANTLR start "entryRuleValidID"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2407:1: entryRuleValidID : ruleValidID EOF ;
+ public final void entryRuleValidID() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2408:1: ( ruleValidID EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2409:1: ruleValidID EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getValidIDRule());
+ }
+ pushFollow(FOLLOW_ruleValidID_in_entryRuleValidID5068);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getValidIDRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleValidID5075); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleValidID"
+
+
+ // $ANTLR start "ruleValidID"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2416:1: ruleValidID : ( RULE_ID ) ;
+ public final void ruleValidID() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2420:2: ( ( RULE_ID ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2421:1: ( RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2421:1: ( RULE_ID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2422:1: RULE_ID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getValidIDAccess().getIDTerminalRuleCall());
+ }
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleValidID5101); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getValidIDAccess().getIDTerminalRuleCall());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleValidID"
+
+
+ // $ANTLR start "entryRuleXImportSection"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2435:1: entryRuleXImportSection : ruleXImportSection EOF ;
+ public final void entryRuleXImportSection() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2436:1: ( ruleXImportSection EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2437:1: ruleXImportSection EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportSectionRule());
+ }
+ pushFollow(FOLLOW_ruleXImportSection_in_entryRuleXImportSection5127);
+ ruleXImportSection();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportSectionRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXImportSection5134); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXImportSection"
+
+
+ // $ANTLR start "ruleXImportSection"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2444:1: ruleXImportSection : ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) ;
+ public final void ruleXImportSection() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2448:2: ( ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2449:1: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2449:1: ( ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2450:1: ( ( rule__XImportSection__ImportDeclarationsAssignment ) ) ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2450:1: ( ( rule__XImportSection__ImportDeclarationsAssignment ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2451:1: ( rule__XImportSection__ImportDeclarationsAssignment )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2452:1: ( rule__XImportSection__ImportDeclarationsAssignment )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2452:2: rule__XImportSection__ImportDeclarationsAssignment
+ {
+ pushFollow(FOLLOW_rule__XImportSection__ImportDeclarationsAssignment_in_ruleXImportSection5162);
+ rule__XImportSection__ImportDeclarationsAssignment();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment());
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2455:1: ( ( rule__XImportSection__ImportDeclarationsAssignment )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2456:1: ( rule__XImportSection__ImportDeclarationsAssignment )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2457:1: ( rule__XImportSection__ImportDeclarationsAssignment )*
+ loop1:
+ do {
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==44) ) {
+ alt1=1;
+ }
+
+
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2457:2: rule__XImportSection__ImportDeclarationsAssignment
+ {
+ pushFollow(FOLLOW_rule__XImportSection__ImportDeclarationsAssignment_in_ruleXImportSection5174);
+ rule__XImportSection__ImportDeclarationsAssignment();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop1;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportSectionAccess().getImportDeclarationsAssignment());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXImportSection"
+
+
+ // $ANTLR start "entryRuleXImportDeclaration"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2470:1: entryRuleXImportDeclaration : ruleXImportDeclaration EOF ;
+ public final void entryRuleXImportDeclaration() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2471:1: ( ruleXImportDeclaration EOF )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2472:1: ruleXImportDeclaration EOF
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationRule());
+ }
+ pushFollow(FOLLOW_ruleXImportDeclaration_in_entryRuleXImportDeclaration5204);
+ ruleXImportDeclaration();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationRule());
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXImportDeclaration5211); if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleXImportDeclaration"
+
+
+ // $ANTLR start "ruleXImportDeclaration"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2479:1: ruleXImportDeclaration : ( ( rule__XImportDeclaration__Group__0 ) ) ;
+ public final void ruleXImportDeclaration() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2483:2: ( ( ( rule__XImportDeclaration__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2484:1: ( ( rule__XImportDeclaration__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2484:1: ( ( rule__XImportDeclaration__Group__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2485:1: ( rule__XImportDeclaration__Group__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getGroup());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2486:1: ( rule__XImportDeclaration__Group__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2486:2: rule__XImportDeclaration__Group__0
+ {
+ pushFollow(FOLLOW_rule__XImportDeclaration__Group__0_in_ruleXImportDeclaration5237);
+ rule__XImportDeclaration__Group__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getGroup());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleXImportDeclaration"
+
+
+ // $ANTLR start "rule__XAssignment__Alternatives"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2499:1: rule__XAssignment__Alternatives : ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) );
+ public final void rule__XAssignment__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2503:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
+ int alt2=2;
+ switch ( input.LA(1) ) {
+ case RULE_ID:
+ {
+ int LA2_1 = input.LA(2);
+
+ if ( (LA2_1==13) ) {
+ alt2=1;
+ }
+ else if ( (LA2_1==EOF||(LA2_1>=RULE_ID && LA2_1<=RULE_STRING)||(LA2_1>=14 && LA2_1<=47)||(LA2_1>=49 && LA2_1<=50)||LA2_1==56||LA2_1==59||LA2_1==62||(LA2_1>=70 && LA2_1<=93)||(LA2_1>=96 && LA2_1<=97)||(LA2_1>=99 && LA2_1<=100)) ) {
+ alt2=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 2, 1, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case 42:
+ {
+ int LA2_2 = input.LA(2);
+
+ if ( (LA2_2==13) ) {
+ alt2=1;
+ }
+ else if ( (LA2_2==EOF||(LA2_2>=RULE_ID && LA2_2<=RULE_STRING)||(LA2_2>=14 && LA2_2<=47)||(LA2_2>=49 && LA2_2<=50)||LA2_2==56||LA2_2==59||LA2_2==62||(LA2_2>=70 && LA2_2<=93)||(LA2_2>=96 && LA2_2<=97)||(LA2_2>=99 && LA2_2<=100)) ) {
+ alt2=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 2, 2, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case 43:
+ {
+ int LA2_3 = input.LA(2);
+
+ if ( (LA2_3==EOF||(LA2_3>=RULE_ID && LA2_3<=RULE_STRING)||(LA2_3>=14 && LA2_3<=47)||(LA2_3>=49 && LA2_3<=50)||LA2_3==56||LA2_3==59||LA2_3==62||(LA2_3>=70 && LA2_3<=93)||(LA2_3>=96 && LA2_3<=97)||(LA2_3>=99 && LA2_3<=100)) ) {
+ alt2=2;
+ }
+ else if ( (LA2_3==13) ) {
+ alt2=1;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 2, 3, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case 44:
+ {
+ int LA2_4 = input.LA(2);
+
+ if ( (LA2_4==EOF||(LA2_4>=RULE_ID && LA2_4<=RULE_STRING)||(LA2_4>=14 && LA2_4<=47)||(LA2_4>=49 && LA2_4<=50)||LA2_4==56||LA2_4==59||LA2_4==62||(LA2_4>=70 && LA2_4<=93)||(LA2_4>=96 && LA2_4<=97)||(LA2_4>=99 && LA2_4<=100)) ) {
+ alt2=2;
+ }
+ else if ( (LA2_4==13) ) {
+ alt2=1;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 2, 4, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case 45:
+ {
+ int LA2_5 = input.LA(2);
+
+ if ( (LA2_5==13) ) {
+ alt2=1;
+ }
+ else if ( (LA2_5==EOF||(LA2_5>=RULE_ID && LA2_5<=RULE_STRING)||(LA2_5>=14 && LA2_5<=47)||(LA2_5>=49 && LA2_5<=50)||LA2_5==56||LA2_5==59||LA2_5==62||(LA2_5>=70 && LA2_5<=93)||(LA2_5>=96 && LA2_5<=97)||(LA2_5>=99 && LA2_5<=100)) ) {
+ alt2=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 2, 5, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case RULE_HEX:
+ case RULE_INT:
+ case RULE_DECIMAL:
+ case RULE_STRING:
+ case 25:
+ case 33:
+ case 34:
+ case 39:
+ case 46:
+ case 47:
+ case 49:
+ case 73:
+ case 74:
+ case 77:
+ case 78:
+ case 80:
+ case 83:
+ case 84:
+ case 85:
+ case 86:
+ case 87:
+ case 88:
+ case 89:
+ case 90:
+ case 91:
+ case 100:
+ {
+ alt2=2;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 2, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2504:1: ( ( rule__XAssignment__Group_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2504:1: ( ( rule__XAssignment__Group_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2505:1: ( rule__XAssignment__Group_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getGroup_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2506:1: ( rule__XAssignment__Group_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2506:2: rule__XAssignment__Group_0__0
+ {
+ pushFollow(FOLLOW_rule__XAssignment__Group_0__0_in_rule__XAssignment__Alternatives5274);
+ rule__XAssignment__Group_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getGroup_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2510:6: ( ( rule__XAssignment__Group_1__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2510:6: ( ( rule__XAssignment__Group_1__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2511:1: ( rule__XAssignment__Group_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getGroup_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2512:1: ( rule__XAssignment__Group_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2512:2: rule__XAssignment__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XAssignment__Group_1__0_in_rule__XAssignment__Alternatives5292);
+ rule__XAssignment__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Alternatives"
+
+
+ // $ANTLR start "rule__OpMultiAssign__Alternatives"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2521:1: rule__OpMultiAssign__Alternatives : ( ( '+=' ) | ( '-=' ) );
+ public final void rule__OpMultiAssign__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2525:1: ( ( '+=' ) | ( '-=' ) )
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==16) ) {
+ alt3=1;
+ }
+ else if ( (LA3_0==17) ) {
+ alt3=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 3, 0, input);
+
+ throw nvae;
+ }
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2526:1: ( '+=' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2526:1: ( '+=' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2527:1: '+='
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0());
+ }
+ match(input,16,FOLLOW_16_in_rule__OpMultiAssign__Alternatives5326); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2534:6: ( '-=' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2534:6: ( '-=' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2535:1: '-='
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1());
+ }
+ match(input,17,FOLLOW_17_in_rule__OpMultiAssign__Alternatives5346); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpMultiAssign__Alternatives"
+
+
+ // $ANTLR start "rule__OpEquality__Alternatives"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2547:1: rule__OpEquality__Alternatives : ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) );
+ public final void rule__OpEquality__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2551:1: ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) )
+ int alt4=4;
+ switch ( input.LA(1) ) {
+ case 18:
+ {
+ alt4=1;
+ }
+ break;
+ case 19:
+ {
+ alt4=2;
+ }
+ break;
+ case 20:
+ {
+ alt4=3;
+ }
+ break;
+ case 21:
+ {
+ alt4=4;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 4, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2552:1: ( '==' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2552:1: ( '==' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2553:1: '=='
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0());
+ }
+ match(input,18,FOLLOW_18_in_rule__OpEquality__Alternatives5381); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2560:6: ( '!=' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2560:6: ( '!=' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2561:1: '!='
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1());
+ }
+ match(input,19,FOLLOW_19_in_rule__OpEquality__Alternatives5401); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2568:6: ( '===' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2568:6: ( '===' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2569:1: '==='
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2());
+ }
+ match(input,20,FOLLOW_20_in_rule__OpEquality__Alternatives5421); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2576:6: ( '!==' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2576:6: ( '!==' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2577:1: '!=='
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3());
+ }
+ match(input,21,FOLLOW_21_in_rule__OpEquality__Alternatives5441); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpEquality__Alternatives"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Alternatives_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2589:1: rule__XRelationalExpression__Alternatives_1 : ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) );
+ public final void rule__XRelationalExpression__Alternatives_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2593:1: ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) )
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==70) ) {
+ alt5=1;
+ }
+ else if ( ((LA5_0>=22 && LA5_0<=25)) ) {
+ alt5=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 5, 0, input);
+
+ throw nvae;
+ }
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2594:1: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2594:1: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2595:1: ( rule__XRelationalExpression__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2596:1: ( rule__XRelationalExpression__Group_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2596:2: rule__XRelationalExpression__Group_1_0__0
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_0__0_in_rule__XRelationalExpression__Alternatives_15475);
+ rule__XRelationalExpression__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2600:6: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2600:6: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2601:1: ( rule__XRelationalExpression__Group_1_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2602:1: ( rule__XRelationalExpression__Group_1_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2602:2: rule__XRelationalExpression__Group_1_1__0
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_1__0_in_rule__XRelationalExpression__Alternatives_15493);
+ rule__XRelationalExpression__Group_1_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Alternatives_1"
+
+
+ // $ANTLR start "rule__OpCompare__Alternatives"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2611:1: rule__OpCompare__Alternatives : ( ( '>=' ) | ( '<=' ) | ( '>' ) | ( '<' ) );
+ public final void rule__OpCompare__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2615:1: ( ( '>=' ) | ( '<=' ) | ( '>' ) | ( '<' ) )
+ int alt6=4;
+ switch ( input.LA(1) ) {
+ case 22:
+ {
+ alt6=1;
+ }
+ break;
+ case 23:
+ {
+ alt6=2;
+ }
+ break;
+ case 24:
+ {
+ alt6=3;
+ }
+ break;
+ case 25:
+ {
+ alt6=4;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 6, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2616:1: ( '>=' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2616:1: ( '>=' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2617:1: '>='
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0());
+ }
+ match(input,22,FOLLOW_22_in_rule__OpCompare__Alternatives5527); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2624:6: ( '<=' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2624:6: ( '<=' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2625:1: '<='
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpCompareAccess().getLessThanSignEqualsSignKeyword_1());
+ }
+ match(input,23,FOLLOW_23_in_rule__OpCompare__Alternatives5547); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpCompareAccess().getLessThanSignEqualsSignKeyword_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2632:6: ( '>' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2632:6: ( '>' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2633:1: '>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2());
+ }
+ match(input,24,FOLLOW_24_in_rule__OpCompare__Alternatives5567); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2640:6: ( '<' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2640:6: ( '<' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2641:1: '<'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3());
+ }
+ match(input,25,FOLLOW_25_in_rule__OpCompare__Alternatives5587); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpCompare__Alternatives"
+
+
+ // $ANTLR start "rule__OpOther__Alternatives"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2653:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) | ( '<=>' ) );
+ public final void rule__OpOther__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2657:1: ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) | ( '<=>' ) )
+ int alt7=10;
+ alt7 = dfa7.predict(input);
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2658:1: ( '->' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2658:1: ( '->' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2659:1: '->'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0());
+ }
+ match(input,26,FOLLOW_26_in_rule__OpOther__Alternatives5622); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2666:6: ( '..<' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2666:6: ( '..<' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2667:1: '..<'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1());
+ }
+ match(input,27,FOLLOW_27_in_rule__OpOther__Alternatives5642); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2674:6: ( ( rule__OpOther__Group_2__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2674:6: ( ( rule__OpOther__Group_2__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2675:1: ( rule__OpOther__Group_2__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getGroup_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2676:1: ( rule__OpOther__Group_2__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2676:2: rule__OpOther__Group_2__0
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_2__0_in_rule__OpOther__Alternatives5661);
+ rule__OpOther__Group_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getGroup_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2680:6: ( '..' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2680:6: ( '..' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2681:1: '..'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3());
+ }
+ match(input,28,FOLLOW_28_in_rule__OpOther__Alternatives5680); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3());
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2688:6: ( '=>' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2688:6: ( '=>' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2689:1: '=>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4());
+ }
+ match(input,29,FOLLOW_29_in_rule__OpOther__Alternatives5700); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4());
+ }
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2696:6: ( ( rule__OpOther__Group_5__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2696:6: ( ( rule__OpOther__Group_5__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2697:1: ( rule__OpOther__Group_5__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getGroup_5());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2698:1: ( rule__OpOther__Group_5__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2698:2: rule__OpOther__Group_5__0
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_5__0_in_rule__OpOther__Alternatives5719);
+ rule__OpOther__Group_5__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getGroup_5());
+ }
+
+ }
+
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2702:6: ( ( rule__OpOther__Group_6__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2702:6: ( ( rule__OpOther__Group_6__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2703:1: ( rule__OpOther__Group_6__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getGroup_6());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2704:1: ( rule__OpOther__Group_6__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2704:2: rule__OpOther__Group_6__0
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_6__0_in_rule__OpOther__Alternatives5737);
+ rule__OpOther__Group_6__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getGroup_6());
+ }
+
+ }
+
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2708:6: ( '<>' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2708:6: ( '<>' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2709:1: '<>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7());
+ }
+ match(input,30,FOLLOW_30_in_rule__OpOther__Alternatives5756); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7());
+ }
+
+ }
+
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2716:6: ( '?:' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2716:6: ( '?:' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2717:1: '?:'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8());
+ }
+ match(input,31,FOLLOW_31_in_rule__OpOther__Alternatives5776); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8());
+ }
+
+ }
+
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2724:6: ( '<=>' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2724:6: ( '<=>' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2725:1: '<=>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_9());
+ }
+ match(input,32,FOLLOW_32_in_rule__OpOther__Alternatives5796); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_9());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Alternatives"
+
+
+ // $ANTLR start "rule__OpOther__Alternatives_5_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2737:1: rule__OpOther__Alternatives_5_1 : ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) );
+ public final void rule__OpOther__Alternatives_5_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2741:1: ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) )
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==24) ) {
+ int LA8_1 = input.LA(2);
+
+ if ( (LA8_1==EOF||(LA8_1>=RULE_ID && LA8_1<=RULE_STRING)||LA8_1==25||(LA8_1>=33 && LA8_1<=34)||LA8_1==39||(LA8_1>=42 && LA8_1<=47)||LA8_1==49||(LA8_1>=73 && LA8_1<=74)||(LA8_1>=77 && LA8_1<=78)||LA8_1==80||(LA8_1>=83 && LA8_1<=91)||LA8_1==100) ) {
+ alt8=2;
+ }
+ else if ( (LA8_1==24) ) {
+ alt8=1;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 8, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 8, 0, input);
+
+ throw nvae;
+ }
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2742:1: ( ( rule__OpOther__Group_5_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2742:1: ( ( rule__OpOther__Group_5_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2743:1: ( rule__OpOther__Group_5_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getGroup_5_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2744:1: ( rule__OpOther__Group_5_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2744:2: rule__OpOther__Group_5_1_0__0
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_5_1_0__0_in_rule__OpOther__Alternatives_5_15830);
+ rule__OpOther__Group_5_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getGroup_5_1_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2748:6: ( '>' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2748:6: ( '>' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2749:1: '>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1());
+ }
+ match(input,24,FOLLOW_24_in_rule__OpOther__Alternatives_5_15849); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Alternatives_5_1"
+
+
+ // $ANTLR start "rule__OpOther__Alternatives_6_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2761:1: rule__OpOther__Alternatives_6_1 : ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) );
+ public final void rule__OpOther__Alternatives_6_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2765:1: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) )
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0==25) ) {
+ int LA9_1 = input.LA(2);
+
+ if ( (synpred21_InternalEmfParsleyDsl()) ) {
+ alt9=1;
+ }
+ else if ( (true) ) {
+ alt9=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 9, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 9, 0, input);
+
+ throw nvae;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2766:1: ( ( rule__OpOther__Group_6_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2766:1: ( ( rule__OpOther__Group_6_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2767:1: ( rule__OpOther__Group_6_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getGroup_6_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2768:1: ( rule__OpOther__Group_6_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2768:2: rule__OpOther__Group_6_1_0__0
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_6_1_0__0_in_rule__OpOther__Alternatives_6_15883);
+ rule__OpOther__Group_6_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getGroup_6_1_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2772:6: ( '<' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2772:6: ( '<' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2773:1: '<'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1());
+ }
+ match(input,25,FOLLOW_25_in_rule__OpOther__Alternatives_6_15902); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Alternatives_6_1"
+
+
+ // $ANTLR start "rule__OpAdd__Alternatives"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2785:1: rule__OpAdd__Alternatives : ( ( '+' ) | ( '-' ) );
+ public final void rule__OpAdd__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2789:1: ( ( '+' ) | ( '-' ) )
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0==33) ) {
+ alt10=1;
+ }
+ else if ( (LA10_0==34) ) {
+ alt10=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 10, 0, input);
+
+ throw nvae;
+ }
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2790:1: ( '+' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2790:1: ( '+' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2791:1: '+'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpAddAccess().getPlusSignKeyword_0());
+ }
+ match(input,33,FOLLOW_33_in_rule__OpAdd__Alternatives5937); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpAddAccess().getPlusSignKeyword_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2798:6: ( '-' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2798:6: ( '-' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2799:1: '-'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1());
+ }
+ match(input,34,FOLLOW_34_in_rule__OpAdd__Alternatives5957); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpAdd__Alternatives"
+
+
+ // $ANTLR start "rule__OpMulti__Alternatives"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2811:1: rule__OpMulti__Alternatives : ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) );
+ public final void rule__OpMulti__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2815:1: ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) )
+ int alt11=4;
+ switch ( input.LA(1) ) {
+ case 35:
+ {
+ alt11=1;
+ }
+ break;
+ case 36:
+ {
+ alt11=2;
+ }
+ break;
+ case 37:
+ {
+ alt11=3;
+ }
+ break;
+ case 38:
+ {
+ alt11=4;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 11, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2816:1: ( '*' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2816:1: ( '*' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2817:1: '*'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0());
+ }
+ match(input,35,FOLLOW_35_in_rule__OpMulti__Alternatives5992); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2824:6: ( '**' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2824:6: ( '**' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2825:1: '**'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1());
+ }
+ match(input,36,FOLLOW_36_in_rule__OpMulti__Alternatives6012); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2832:6: ( '/' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2832:6: ( '/' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2833:1: '/'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpMultiAccess().getSolidusKeyword_2());
+ }
+ match(input,37,FOLLOW_37_in_rule__OpMulti__Alternatives6032); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpMultiAccess().getSolidusKeyword_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2840:6: ( '%' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2840:6: ( '%' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2841:1: '%'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3());
+ }
+ match(input,38,FOLLOW_38_in_rule__OpMulti__Alternatives6052); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpMulti__Alternatives"
+
+
+ // $ANTLR start "rule__XUnaryOperation__Alternatives"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2853:1: rule__XUnaryOperation__Alternatives : ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) );
+ public final void rule__XUnaryOperation__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2857:1: ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) )
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+
+ if ( ((LA12_0>=33 && LA12_0<=34)||LA12_0==39) ) {
+ alt12=1;
+ }
+ else if ( ((LA12_0>=RULE_ID && LA12_0<=RULE_STRING)||LA12_0==25||(LA12_0>=42 && LA12_0<=47)||LA12_0==49||(LA12_0>=73 && LA12_0<=74)||(LA12_0>=77 && LA12_0<=78)||LA12_0==80||(LA12_0>=83 && LA12_0<=91)||LA12_0==100) ) {
+ alt12=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 12, 0, input);
+
+ throw nvae;
+ }
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2858:1: ( ( rule__XUnaryOperation__Group_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2858:1: ( ( rule__XUnaryOperation__Group_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2859:1: ( rule__XUnaryOperation__Group_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXUnaryOperationAccess().getGroup_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2860:1: ( rule__XUnaryOperation__Group_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2860:2: rule__XUnaryOperation__Group_0__0
+ {
+ pushFollow(FOLLOW_rule__XUnaryOperation__Group_0__0_in_rule__XUnaryOperation__Alternatives6086);
+ rule__XUnaryOperation__Group_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXUnaryOperationAccess().getGroup_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2864:6: ( ruleXCastedExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2864:6: ( ruleXCastedExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2865:1: ruleXCastedExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_ruleXCastedExpression_in_rule__XUnaryOperation__Alternatives6104);
+ ruleXCastedExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XUnaryOperation__Alternatives"
+
+
+ // $ANTLR start "rule__OpUnary__Alternatives"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2875:1: rule__OpUnary__Alternatives : ( ( '!' ) | ( '-' ) | ( '+' ) );
+ public final void rule__OpUnary__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2879:1: ( ( '!' ) | ( '-' ) | ( '+' ) )
+ int alt13=3;
+ switch ( input.LA(1) ) {
+ case 39:
+ {
+ alt13=1;
+ }
+ break;
+ case 34:
+ {
+ alt13=2;
+ }
+ break;
+ case 33:
+ {
+ alt13=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 13, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt13) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2880:1: ( '!' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2880:1: ( '!' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2881:1: '!'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0());
+ }
+ match(input,39,FOLLOW_39_in_rule__OpUnary__Alternatives6137); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2888:6: ( '-' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2888:6: ( '-' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2889:1: '-'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1());
+ }
+ match(input,34,FOLLOW_34_in_rule__OpUnary__Alternatives6157); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2896:6: ( '+' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2896:6: ( '+' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2897:1: '+'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2());
+ }
+ match(input,33,FOLLOW_33_in_rule__OpUnary__Alternatives6177); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpUnary__Alternatives"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2909:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );
+ public final void rule__XMemberFeatureCall__Alternatives_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2913:1: ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) )
+ int alt14=2;
+ alt14 = dfa14.predict(input);
+ switch (alt14) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2914:1: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2914:1: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2915:1: ( rule__XMemberFeatureCall__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2916:1: ( rule__XMemberFeatureCall__Group_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2916:2: rule__XMemberFeatureCall__Group_1_0__0
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_0__0_in_rule__XMemberFeatureCall__Alternatives_16211);
+ rule__XMemberFeatureCall__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2920:6: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2920:6: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2921:1: ( rule__XMemberFeatureCall__Group_1_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2922:1: ( rule__XMemberFeatureCall__Group_1_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2922:2: rule__XMemberFeatureCall__Group_1_1__0
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1__0_in_rule__XMemberFeatureCall__Alternatives_16229);
+ rule__XMemberFeatureCall__Group_1_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Alternatives_1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_0_0_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2931:1: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) );
+ public final void rule__XMemberFeatureCall__Alternatives_1_0_0_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2935:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) )
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0==40) ) {
+ alt15=1;
+ }
+ else if ( (LA15_0==96) ) {
+ alt15=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 15, 0, input);
+
+ throw nvae;
+ }
+ switch (alt15) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2936:1: ( '.' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2936:1: ( '.' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2937:1: '.'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0());
+ }
+ match(input,40,FOLLOW_40_in_rule__XMemberFeatureCall__Alternatives_1_0_0_0_16263); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2944:6: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2944:6: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2945:1: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2946:1: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2946:2: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1_in_rule__XMemberFeatureCall__Alternatives_1_0_0_0_16282);
+ rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Alternatives_1_0_0_0_1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_1_0_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2955:1: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) );
+ public final void rule__XMemberFeatureCall__Alternatives_1_1_0_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2959:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) )
+ int alt16=3;
+ switch ( input.LA(1) ) {
+ case 40:
+ {
+ alt16=1;
+ }
+ break;
+ case 97:
+ {
+ alt16=2;
+ }
+ break;
+ case 96:
+ {
+ alt16=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 16, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt16) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2960:1: ( '.' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2960:1: ( '.' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2961:1: '.'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0());
+ }
+ match(input,40,FOLLOW_40_in_rule__XMemberFeatureCall__Alternatives_1_1_0_0_16316); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2968:6: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2968:6: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2969:1: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2970:1: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2970:2: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1_in_rule__XMemberFeatureCall__Alternatives_1_1_0_0_16335);
+ rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2974:6: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2974:6: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2975:1: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2976:1: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2976:2: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2_in_rule__XMemberFeatureCall__Alternatives_1_1_0_0_16353);
+ rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Alternatives_1_1_0_0_1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_1_3_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2985:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );
+ public final void rule__XMemberFeatureCall__Alternatives_1_1_3_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2989:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) )
+ int alt17=2;
+ alt17 = dfa17.predict(input);
+ switch (alt17) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2990:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2990:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2991:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2992:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2992:2: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0_in_rule__XMemberFeatureCall__Alternatives_1_1_3_16386);
+ rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2996:6: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2996:6: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2997:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2998:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2998:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__0
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1__0_in_rule__XMemberFeatureCall__Alternatives_1_1_3_16404);
+ rule__XMemberFeatureCall__Group_1_1_3_1_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Alternatives_1_1_3_1"
+
+
+ // $ANTLR start "rule__XPrimaryExpression__Alternatives"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3007:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ruleXForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );
+ public final void rule__XPrimaryExpression__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3011:1: ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ruleXForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) )
+ int alt18=13;
+ switch ( input.LA(1) ) {
+ case 86:
+ {
+ alt18=1;
+ }
+ break;
+ case 49:
+ {
+ alt18=2;
+ }
+ break;
+ case 80:
+ {
+ alt18=3;
+ }
+ break;
+ case RULE_ID:
+ case 25:
+ case 42:
+ case 43:
+ case 44:
+ case 45:
+ case 46:
+ {
+ alt18=4;
+ }
+ break;
+ case RULE_HEX:
+ case RULE_INT:
+ case RULE_DECIMAL:
+ case RULE_STRING:
+ case 47:
+ case 73:
+ case 74:
+ case 87:
+ case 88:
+ case 100:
+ {
+ alt18=5;
+ }
+ break;
+ case 78:
+ {
+ alt18=6;
+ }
+ break;
+ case 83:
+ {
+ alt18=7;
+ }
+ break;
+ case 84:
+ {
+ alt18=8;
+ }
+ break;
+ case 85:
+ {
+ alt18=9;
+ }
+ break;
+ case 89:
+ {
+ alt18=10;
+ }
+ break;
+ case 90:
+ {
+ alt18=11;
+ }
+ break;
+ case 91:
+ {
+ alt18=12;
+ }
+ break;
+ case 77:
+ {
+ alt18=13;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 18, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt18) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3012:1: ( ruleXConstructorCall )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3012:1: ( ruleXConstructorCall )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3013:1: ruleXConstructorCall
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleXConstructorCall_in_rule__XPrimaryExpression__Alternatives6437);
+ ruleXConstructorCall();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3018:6: ( ruleXBlockExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3018:6: ( ruleXBlockExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3019:1: ruleXBlockExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_ruleXBlockExpression_in_rule__XPrimaryExpression__Alternatives6454);
+ ruleXBlockExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3024:6: ( ruleXSwitchExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3024:6: ( ruleXSwitchExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3025:1: ruleXSwitchExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2());
+ }
+ pushFollow(FOLLOW_ruleXSwitchExpression_in_rule__XPrimaryExpression__Alternatives6471);
+ ruleXSwitchExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3030:6: ( ruleXFeatureCall )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3030:6: ( ruleXFeatureCall )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3031:1: ruleXFeatureCall
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_3());
+ }
+ pushFollow(FOLLOW_ruleXFeatureCall_in_rule__XPrimaryExpression__Alternatives6488);
+ ruleXFeatureCall();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_3());
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3036:6: ( ruleXLiteral )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3036:6: ( ruleXLiteral )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3037:1: ruleXLiteral
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_4());
+ }
+ pushFollow(FOLLOW_ruleXLiteral_in_rule__XPrimaryExpression__Alternatives6505);
+ ruleXLiteral();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_4());
+ }
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3042:6: ( ruleXIfExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3042:6: ( ruleXIfExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3043:1: ruleXIfExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_5());
+ }
+ pushFollow(FOLLOW_ruleXIfExpression_in_rule__XPrimaryExpression__Alternatives6522);
+ ruleXIfExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_5());
+ }
+
+ }
+
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3048:6: ( ruleXForLoopExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3048:6: ( ruleXForLoopExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3049:1: ruleXForLoopExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_6());
+ }
+ pushFollow(FOLLOW_ruleXForLoopExpression_in_rule__XPrimaryExpression__Alternatives6539);
+ ruleXForLoopExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_6());
+ }
+
+ }
+
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3054:6: ( ruleXWhileExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3054:6: ( ruleXWhileExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3055:1: ruleXWhileExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_7());
+ }
+ pushFollow(FOLLOW_ruleXWhileExpression_in_rule__XPrimaryExpression__Alternatives6556);
+ ruleXWhileExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_7());
+ }
+
+ }
+
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3060:6: ( ruleXDoWhileExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3060:6: ( ruleXDoWhileExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3061:1: ruleXDoWhileExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_8());
+ }
+ pushFollow(FOLLOW_ruleXDoWhileExpression_in_rule__XPrimaryExpression__Alternatives6573);
+ ruleXDoWhileExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_8());
+ }
+
+ }
+
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3066:6: ( ruleXThrowExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3066:6: ( ruleXThrowExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3067:1: ruleXThrowExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_9());
+ }
+ pushFollow(FOLLOW_ruleXThrowExpression_in_rule__XPrimaryExpression__Alternatives6590);
+ ruleXThrowExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_9());
+ }
+
+ }
+
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3072:6: ( ruleXReturnExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3072:6: ( ruleXReturnExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3073:1: ruleXReturnExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_10());
+ }
+ pushFollow(FOLLOW_ruleXReturnExpression_in_rule__XPrimaryExpression__Alternatives6607);
+ ruleXReturnExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_10());
+ }
+
+ }
+
+
+ }
+ break;
+ case 12 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3078:6: ( ruleXTryCatchFinallyExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3078:6: ( ruleXTryCatchFinallyExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3079:1: ruleXTryCatchFinallyExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_11());
+ }
+ pushFollow(FOLLOW_ruleXTryCatchFinallyExpression_in_rule__XPrimaryExpression__Alternatives6624);
+ ruleXTryCatchFinallyExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_11());
+ }
+
+ }
+
+
+ }
+ break;
+ case 13 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3084:6: ( ruleXParenthesizedExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3084:6: ( ruleXParenthesizedExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3085:1: ruleXParenthesizedExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_12());
+ }
+ pushFollow(FOLLOW_ruleXParenthesizedExpression_in_rule__XPrimaryExpression__Alternatives6641);
+ ruleXParenthesizedExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_12());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XPrimaryExpression__Alternatives"
+
+
+ // $ANTLR start "rule__XLiteral__Alternatives"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3095:1: rule__XLiteral__Alternatives : ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) );
+ public final void rule__XLiteral__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3099:1: ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) )
+ int alt19=7;
+ switch ( input.LA(1) ) {
+ case 73:
+ {
+ alt19=1;
+ }
+ break;
+ case 74:
+ {
+ alt19=2;
+ }
+ break;
+ case 47:
+ case 100:
+ {
+ alt19=3;
+ }
+ break;
+ case RULE_HEX:
+ case RULE_INT:
+ case RULE_DECIMAL:
+ {
+ alt19=4;
+ }
+ break;
+ case 87:
+ {
+ alt19=5;
+ }
+ break;
+ case RULE_STRING:
+ {
+ alt19=6;
+ }
+ break;
+ case 88:
+ {
+ alt19=7;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 19, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt19) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3100:1: ( ruleXCollectionLiteral )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3100:1: ( ruleXCollectionLiteral )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3101:1: ruleXCollectionLiteral
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleXCollectionLiteral_in_rule__XLiteral__Alternatives6673);
+ ruleXCollectionLiteral();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3106:6: ( ( ruleXClosure ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3106:6: ( ( ruleXClosure ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3107:1: ( ruleXClosure )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3108:1: ( ruleXClosure )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3108:3: ruleXClosure
+ {
+ pushFollow(FOLLOW_ruleXClosure_in_rule__XLiteral__Alternatives6691);
+ ruleXClosure();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3112:6: ( ruleXBooleanLiteral )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3112:6: ( ruleXBooleanLiteral )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3113:1: ruleXBooleanLiteral
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2());
+ }
+ pushFollow(FOLLOW_ruleXBooleanLiteral_in_rule__XLiteral__Alternatives6709);
+ ruleXBooleanLiteral();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3118:6: ( ruleXNumberLiteral )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3118:6: ( ruleXNumberLiteral )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3119:1: ruleXNumberLiteral
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3());
+ }
+ pushFollow(FOLLOW_ruleXNumberLiteral_in_rule__XLiteral__Alternatives6726);
+ ruleXNumberLiteral();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3());
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3124:6: ( ruleXNullLiteral )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3124:6: ( ruleXNullLiteral )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3125:1: ruleXNullLiteral
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4());
+ }
+ pushFollow(FOLLOW_ruleXNullLiteral_in_rule__XLiteral__Alternatives6743);
+ ruleXNullLiteral();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4());
+ }
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3130:6: ( ruleXStringLiteral )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3130:6: ( ruleXStringLiteral )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3131:1: ruleXStringLiteral
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5());
+ }
+ pushFollow(FOLLOW_ruleXStringLiteral_in_rule__XLiteral__Alternatives6760);
+ ruleXStringLiteral();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5());
+ }
+
+ }
+
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3136:6: ( ruleXTypeLiteral )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3136:6: ( ruleXTypeLiteral )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3137:1: ruleXTypeLiteral
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6());
+ }
+ pushFollow(FOLLOW_ruleXTypeLiteral_in_rule__XLiteral__Alternatives6777);
+ ruleXTypeLiteral();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XLiteral__Alternatives"
+
+
+ // $ANTLR start "rule__XCollectionLiteral__Alternatives"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3147:1: rule__XCollectionLiteral__Alternatives : ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) );
+ public final void rule__XCollectionLiteral__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3151:1: ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) )
+ int alt20=2;
+ int LA20_0 = input.LA(1);
+
+ if ( (LA20_0==73) ) {
+ int LA20_1 = input.LA(2);
+
+ if ( (LA20_1==74) ) {
+ alt20=2;
+ }
+ else if ( (LA20_1==49) ) {
+ alt20=1;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 20, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 20, 0, input);
+
+ throw nvae;
+ }
+ switch (alt20) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3152:1: ( ruleXSetLiteral )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3152:1: ( ruleXSetLiteral )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3153:1: ruleXSetLiteral
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleXSetLiteral_in_rule__XCollectionLiteral__Alternatives6809);
+ ruleXSetLiteral();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3158:6: ( ruleXListLiteral )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3158:6: ( ruleXListLiteral )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3159:1: ruleXListLiteral
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_ruleXListLiteral_in_rule__XCollectionLiteral__Alternatives6826);
+ ruleXListLiteral();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCollectionLiteral__Alternatives"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Alternatives_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3169:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );
+ public final void rule__XSwitchExpression__Alternatives_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3173:1: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) )
+ int alt21=2;
+ int LA21_0 = input.LA(1);
+
+ if ( ((LA21_0>=RULE_ID && LA21_0<=RULE_STRING)||LA21_0==25||(LA21_0>=33 && LA21_0<=34)||LA21_0==39||(LA21_0>=42 && LA21_0<=47)||LA21_0==49||(LA21_0>=73 && LA21_0<=74)||LA21_0==78||LA21_0==80||(LA21_0>=83 && LA21_0<=91)||LA21_0==100) ) {
+ alt21=1;
+ }
+ else if ( (LA21_0==77) ) {
+ int LA21_2 = input.LA(2);
+
+ if ( (LA21_2==RULE_ID) ) {
+ int LA21_3 = input.LA(3);
+
+ if ( ((LA21_3>=13 && LA21_3<=38)||LA21_3==40||(LA21_3>=70 && LA21_3<=72)||LA21_3==74||LA21_3==77||(LA21_3>=96 && LA21_3<=97)) ) {
+ alt21=1;
+ }
+ else if ( (LA21_3==56) ) {
+ alt21=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 21, 3, input);
+
+ throw nvae;
+ }
+ }
+ else if ( ((LA21_2>=RULE_HEX && LA21_2<=RULE_STRING)||LA21_2==25||(LA21_2>=33 && LA21_2<=34)||LA21_2==39||(LA21_2>=42 && LA21_2<=47)||LA21_2==49||(LA21_2>=73 && LA21_2<=74)||(LA21_2>=77 && LA21_2<=78)||LA21_2==80||(LA21_2>=83 && LA21_2<=91)||LA21_2==100) ) {
+ alt21=1;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 21, 2, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 21, 0, input);
+
+ throw nvae;
+ }
+ switch (alt21) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3174:1: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3174:1: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3175:1: ( rule__XSwitchExpression__Group_2_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3176:1: ( rule__XSwitchExpression__Group_2_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3176:2: rule__XSwitchExpression__Group_2_0__0
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_0__0_in_rule__XSwitchExpression__Alternatives_26858);
+ rule__XSwitchExpression__Group_2_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3180:6: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3180:6: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3181:1: ( rule__XSwitchExpression__Group_2_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3182:1: ( rule__XSwitchExpression__Group_2_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3182:2: rule__XSwitchExpression__Group_2_1__0
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_1__0_in_rule__XSwitchExpression__Alternatives_26876);
+ rule__XSwitchExpression__Group_2_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Alternatives_2"
+
+
+ // $ANTLR start "rule__XExpressionInsideBlock__Alternatives"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3191:1: rule__XExpressionInsideBlock__Alternatives : ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) );
+ public final void rule__XExpressionInsideBlock__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3195:1: ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) )
+ int alt22=2;
+ int LA22_0 = input.LA(1);
+
+ if ( (LA22_0==41||LA22_0==99) ) {
+ alt22=1;
+ }
+ else if ( ((LA22_0>=RULE_ID && LA22_0<=RULE_STRING)||LA22_0==25||(LA22_0>=33 && LA22_0<=34)||LA22_0==39||(LA22_0>=42 && LA22_0<=47)||LA22_0==49||(LA22_0>=73 && LA22_0<=74)||(LA22_0>=77 && LA22_0<=78)||LA22_0==80||(LA22_0>=83 && LA22_0<=91)||LA22_0==100) ) {
+ alt22=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 22, 0, input);
+
+ throw nvae;
+ }
+ switch (alt22) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3196:1: ( ruleXVariableDeclaration )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3196:1: ( ruleXVariableDeclaration )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3197:1: ruleXVariableDeclaration
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXExpressionInsideBlockAccess().getXVariableDeclarationParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleXVariableDeclaration_in_rule__XExpressionInsideBlock__Alternatives6909);
+ ruleXVariableDeclaration();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXExpressionInsideBlockAccess().getXVariableDeclarationParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3202:6: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3202:6: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3203:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXExpressionInsideBlockAccess().getXExpressionParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XExpressionInsideBlock__Alternatives6926);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXExpressionInsideBlockAccess().getXExpressionParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XExpressionInsideBlock__Alternatives"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Alternatives_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3213:1: rule__XVariableDeclaration__Alternatives_1 : ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) );
+ public final void rule__XVariableDeclaration__Alternatives_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3217:1: ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) )
+ int alt23=2;
+ int LA23_0 = input.LA(1);
+
+ if ( (LA23_0==99) ) {
+ alt23=1;
+ }
+ else if ( (LA23_0==41) ) {
+ alt23=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 23, 0, input);
+
+ throw nvae;
+ }
+ switch (alt23) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3218:1: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3218:1: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3219:1: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3220:1: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3220:2: rule__XVariableDeclaration__WriteableAssignment_1_0
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__WriteableAssignment_1_0_in_rule__XVariableDeclaration__Alternatives_16958);
+ rule__XVariableDeclaration__WriteableAssignment_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3224:6: ( 'val' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3224:6: ( 'val' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3225:1: 'val'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1());
+ }
+ match(input,41,FOLLOW_41_in_rule__XVariableDeclaration__Alternatives_16977); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Alternatives_1"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Alternatives_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3237:1: rule__XVariableDeclaration__Alternatives_2 : ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) );
+ public final void rule__XVariableDeclaration__Alternatives_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3241:1: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) )
+ int alt24=2;
+ int LA24_0 = input.LA(1);
+
+ if ( (LA24_0==RULE_ID) ) {
+ int LA24_1 = input.LA(2);
+
+ if ( (synpred56_InternalEmfParsleyDsl()) ) {
+ alt24=1;
+ }
+ else if ( (true) ) {
+ alt24=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 24, 1, input);
+
+ throw nvae;
+ }
+ }
+ else if ( (LA24_0==29||LA24_0==77) ) {
+ alt24=1;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 24, 0, input);
+
+ throw nvae;
+ }
+ switch (alt24) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3242:1: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3242:1: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3243:1: ( rule__XVariableDeclaration__Group_2_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3244:1: ( rule__XVariableDeclaration__Group_2_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3244:2: rule__XVariableDeclaration__Group_2_0__0
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group_2_0__0_in_rule__XVariableDeclaration__Alternatives_27011);
+ rule__XVariableDeclaration__Group_2_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3248:6: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3248:6: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3249:1: ( rule__XVariableDeclaration__NameAssignment_2_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3250:1: ( rule__XVariableDeclaration__NameAssignment_2_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3250:2: rule__XVariableDeclaration__NameAssignment_2_1
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__NameAssignment_2_1_in_rule__XVariableDeclaration__Alternatives_27029);
+ rule__XVariableDeclaration__NameAssignment_2_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Alternatives_2"
+
+
+ // $ANTLR start "rule__XFeatureCall__Alternatives_3_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3259:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );
+ public final void rule__XFeatureCall__Alternatives_3_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3263:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) )
+ int alt25=2;
+ alt25 = dfa25.predict(input);
+ switch (alt25) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3264:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3264:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3265:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3266:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3266:2: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0_in_rule__XFeatureCall__Alternatives_3_17062);
+ rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3270:6: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3270:6: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3271:1: ( rule__XFeatureCall__Group_3_1_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3272:1: ( rule__XFeatureCall__Group_3_1_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3272:2: rule__XFeatureCall__Group_3_1_1__0
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_3_1_1__0_in_rule__XFeatureCall__Alternatives_3_17080);
+ rule__XFeatureCall__Group_3_1_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Alternatives_3_1"
+
+
+ // $ANTLR start "rule__FeatureCallID__Alternatives"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3281:1: rule__FeatureCallID__Alternatives : ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) );
+ public final void rule__FeatureCallID__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3285:1: ( ( ruleValidID ) | ( 'extends' ) | ( 'static' ) | ( 'import' ) | ( 'extension' ) )
+ int alt26=5;
+ switch ( input.LA(1) ) {
+ case RULE_ID:
+ {
+ alt26=1;
+ }
+ break;
+ case 42:
+ {
+ alt26=2;
+ }
+ break;
+ case 43:
+ {
+ alt26=3;
+ }
+ break;
+ case 44:
+ {
+ alt26=4;
+ }
+ break;
+ case 45:
+ {
+ alt26=5;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 26, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt26) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3286:1: ( ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3286:1: ( ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3287:1: ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleValidID_in_rule__FeatureCallID__Alternatives7113);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3292:6: ( 'extends' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3292:6: ( 'extends' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3293:1: 'extends'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1());
+ }
+ match(input,42,FOLLOW_42_in_rule__FeatureCallID__Alternatives7131); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3300:6: ( 'static' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3300:6: ( 'static' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3301:1: 'static'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2());
+ }
+ match(input,43,FOLLOW_43_in_rule__FeatureCallID__Alternatives7151); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2());
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3308:6: ( 'import' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3308:6: ( 'import' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3309:1: 'import'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3());
+ }
+ match(input,44,FOLLOW_44_in_rule__FeatureCallID__Alternatives7171); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureCallIDAccess().getImportKeyword_3());
+ }
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3316:6: ( 'extension' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3316:6: ( 'extension' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3317:1: 'extension'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4());
+ }
+ match(input,45,FOLLOW_45_in_rule__FeatureCallID__Alternatives7191); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeatureCallID__Alternatives"
+
+
+ // $ANTLR start "rule__IdOrSuper__Alternatives"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3329:1: rule__IdOrSuper__Alternatives : ( ( ruleFeatureCallID ) | ( 'super' ) );
+ public final void rule__IdOrSuper__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3333:1: ( ( ruleFeatureCallID ) | ( 'super' ) )
+ int alt27=2;
+ int LA27_0 = input.LA(1);
+
+ if ( (LA27_0==RULE_ID||(LA27_0>=42 && LA27_0<=45)) ) {
+ alt27=1;
+ }
+ else if ( (LA27_0==46) ) {
+ alt27=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 27, 0, input);
+
+ throw nvae;
+ }
+ switch (alt27) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3334:1: ( ruleFeatureCallID )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3334:1: ( ruleFeatureCallID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3335:1: ruleFeatureCallID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleFeatureCallID_in_rule__IdOrSuper__Alternatives7225);
+ ruleFeatureCallID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3340:6: ( 'super' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3340:6: ( 'super' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3341:1: 'super'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1());
+ }
+ match(input,46,FOLLOW_46_in_rule__IdOrSuper__Alternatives7243); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__IdOrSuper__Alternatives"
+
+
+ // $ANTLR start "rule__XConstructorCall__Alternatives_4_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3353:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );
+ public final void rule__XConstructorCall__Alternatives_4_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3357:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) )
+ int alt28=2;
+ alt28 = dfa28.predict(input);
+ switch (alt28) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3358:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3358:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3359:1: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3360:1: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3360:2: rule__XConstructorCall__ArgumentsAssignment_4_1_0
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__ArgumentsAssignment_4_1_0_in_rule__XConstructorCall__Alternatives_4_17277);
+ rule__XConstructorCall__ArgumentsAssignment_4_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3364:6: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3364:6: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3365:1: ( rule__XConstructorCall__Group_4_1_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3366:1: ( rule__XConstructorCall__Group_4_1_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3366:2: rule__XConstructorCall__Group_4_1_1__0
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_4_1_1__0_in_rule__XConstructorCall__Alternatives_4_17295);
+ rule__XConstructorCall__Group_4_1_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Alternatives_4_1"
+
+
+ // $ANTLR start "rule__XBooleanLiteral__Alternatives_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3375:1: rule__XBooleanLiteral__Alternatives_1 : ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) );
+ public final void rule__XBooleanLiteral__Alternatives_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3379:1: ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) )
+ int alt29=2;
+ int LA29_0 = input.LA(1);
+
+ if ( (LA29_0==47) ) {
+ alt29=1;
+ }
+ else if ( (LA29_0==100) ) {
+ alt29=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 29, 0, input);
+
+ throw nvae;
+ }
+ switch (alt29) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3380:1: ( 'false' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3380:1: ( 'false' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3381:1: 'false'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0());
+ }
+ match(input,47,FOLLOW_47_in_rule__XBooleanLiteral__Alternatives_17329); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3388:6: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3388:6: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3389:1: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3390:1: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3390:2: rule__XBooleanLiteral__IsTrueAssignment_1_1
+ {
+ pushFollow(FOLLOW_rule__XBooleanLiteral__IsTrueAssignment_1_1_in_rule__XBooleanLiteral__Alternatives_17348);
+ rule__XBooleanLiteral__IsTrueAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBooleanLiteral__Alternatives_1"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Alternatives_3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3399:1: rule__XTryCatchFinallyExpression__Alternatives_3 : ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) );
+ public final void rule__XTryCatchFinallyExpression__Alternatives_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3403:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) )
+ int alt30=2;
+ int LA30_0 = input.LA(1);
+
+ if ( (LA30_0==93) ) {
+ alt30=1;
+ }
+ else if ( (LA30_0==92) ) {
+ alt30=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 30, 0, input);
+
+ throw nvae;
+ }
+ switch (alt30) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3404:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3404:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3405:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3406:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3406:2: rule__XTryCatchFinallyExpression__Group_3_0__0
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0__0_in_rule__XTryCatchFinallyExpression__Alternatives_37381);
+ rule__XTryCatchFinallyExpression__Group_3_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3410:6: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3410:6: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3411:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3412:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3412:2: rule__XTryCatchFinallyExpression__Group_3_1__0
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group_3_1__0_in_rule__XTryCatchFinallyExpression__Alternatives_37399);
+ rule__XTryCatchFinallyExpression__Group_3_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Alternatives_3"
+
+
+ // $ANTLR start "rule__Number__Alternatives"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3421:1: rule__Number__Alternatives : ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) );
+ public final void rule__Number__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3425:1: ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) )
+ int alt31=2;
+ int LA31_0 = input.LA(1);
+
+ if ( (LA31_0==RULE_HEX) ) {
+ alt31=1;
+ }
+ else if ( ((LA31_0>=RULE_INT && LA31_0<=RULE_DECIMAL)) ) {
+ alt31=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 31, 0, input);
+
+ throw nvae;
+ }
+ switch (alt31) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3426:1: ( RULE_HEX )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3426:1: ( RULE_HEX )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3427:1: RULE_HEX
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0());
+ }
+ match(input,RULE_HEX,FOLLOW_RULE_HEX_in_rule__Number__Alternatives7432); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3432:6: ( ( rule__Number__Group_1__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3432:6: ( ( rule__Number__Group_1__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3433:1: ( rule__Number__Group_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNumberAccess().getGroup_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3434:1: ( rule__Number__Group_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3434:2: rule__Number__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__Number__Group_1__0_in_rule__Number__Alternatives7449);
+ rule__Number__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNumberAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Number__Alternatives"
+
+
+ // $ANTLR start "rule__Number__Alternatives_1_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3443:1: rule__Number__Alternatives_1_0 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
+ public final void rule__Number__Alternatives_1_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3447:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
+ int alt32=2;
+ int LA32_0 = input.LA(1);
+
+ if ( (LA32_0==RULE_INT) ) {
+ alt32=1;
+ }
+ else if ( (LA32_0==RULE_DECIMAL) ) {
+ alt32=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 32, 0, input);
+
+ throw nvae;
+ }
+ switch (alt32) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3448:1: ( RULE_INT )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3448:1: ( RULE_INT )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3449:1: RULE_INT
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0());
+ }
+ match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__Number__Alternatives_1_07482); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3454:6: ( RULE_DECIMAL )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3454:6: ( RULE_DECIMAL )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3455:1: RULE_DECIMAL
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1());
+ }
+ match(input,RULE_DECIMAL,FOLLOW_RULE_DECIMAL_in_rule__Number__Alternatives_1_07499); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Number__Alternatives_1_0"
+
+
+ // $ANTLR start "rule__Number__Alternatives_1_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3465:1: rule__Number__Alternatives_1_1_1 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
+ public final void rule__Number__Alternatives_1_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3469:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
+ int alt33=2;
+ int LA33_0 = input.LA(1);
+
+ if ( (LA33_0==RULE_INT) ) {
+ alt33=1;
+ }
+ else if ( (LA33_0==RULE_DECIMAL) ) {
+ alt33=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 33, 0, input);
+
+ throw nvae;
+ }
+ switch (alt33) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3470:1: ( RULE_INT )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3470:1: ( RULE_INT )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3471:1: RULE_INT
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0());
+ }
+ match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__Number__Alternatives_1_1_17531); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3476:6: ( RULE_DECIMAL )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3476:6: ( RULE_DECIMAL )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3477:1: RULE_DECIMAL
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1());
+ }
+ match(input,RULE_DECIMAL,FOLLOW_RULE_DECIMAL_in_rule__Number__Alternatives_1_1_17548); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Number__Alternatives_1_1_1"
+
+
+ // $ANTLR start "rule__JvmTypeReference__Alternatives"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3487:1: rule__JvmTypeReference__Alternatives : ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) );
+ public final void rule__JvmTypeReference__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3491:1: ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) )
+ int alt34=2;
+ int LA34_0 = input.LA(1);
+
+ if ( (LA34_0==RULE_ID) ) {
+ alt34=1;
+ }
+ else if ( (LA34_0==29||LA34_0==77) ) {
+ alt34=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 34, 0, input);
+
+ throw nvae;
+ }
+ switch (alt34) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3492:1: ( ( rule__JvmTypeReference__Group_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3492:1: ( ( rule__JvmTypeReference__Group_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3493:1: ( rule__JvmTypeReference__Group_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3494:1: ( rule__JvmTypeReference__Group_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3494:2: rule__JvmTypeReference__Group_0__0
+ {
+ pushFollow(FOLLOW_rule__JvmTypeReference__Group_0__0_in_rule__JvmTypeReference__Alternatives7580);
+ rule__JvmTypeReference__Group_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3498:6: ( ruleXFunctionTypeRef )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3498:6: ( ruleXFunctionTypeRef )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3499:1: ruleXFunctionTypeRef
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_ruleXFunctionTypeRef_in_rule__JvmTypeReference__Alternatives7598);
+ ruleXFunctionTypeRef();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmTypeReference__Alternatives"
+
+
+ // $ANTLR start "rule__JvmArgumentTypeReference__Alternatives"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3509:1: rule__JvmArgumentTypeReference__Alternatives : ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) );
+ public final void rule__JvmArgumentTypeReference__Alternatives() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3513:1: ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) )
+ int alt35=2;
+ int LA35_0 = input.LA(1);
+
+ if ( (LA35_0==RULE_ID||LA35_0==29||LA35_0==77) ) {
+ alt35=1;
+ }
+ else if ( (LA35_0==94) ) {
+ alt35=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 35, 0, input);
+
+ throw nvae;
+ }
+ switch (alt35) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3514:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3514:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3515:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__JvmArgumentTypeReference__Alternatives7630);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3520:6: ( ruleJvmWildcardTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3520:6: ( ruleJvmWildcardTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3521:1: ruleJvmWildcardTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_ruleJvmWildcardTypeReference_in_rule__JvmArgumentTypeReference__Alternatives7647);
+ ruleJvmWildcardTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmArgumentTypeReference__Alternatives"
+
+
+ // $ANTLR start "rule__JvmWildcardTypeReference__Alternatives_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3531:1: rule__JvmWildcardTypeReference__Alternatives_2 : ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0 ) ) | ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1 ) ) );
+ public final void rule__JvmWildcardTypeReference__Alternatives_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3535:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0 ) ) | ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1 ) ) )
+ int alt36=2;
+ int LA36_0 = input.LA(1);
+
+ if ( (LA36_0==42) ) {
+ alt36=1;
+ }
+ else if ( (LA36_0==46) ) {
+ alt36=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 36, 0, input);
+
+ throw nvae;
+ }
+ switch (alt36) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3536:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3536:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3537:1: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3538:1: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3538:2: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0
+ {
+ pushFollow(FOLLOW_rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_in_rule__JvmWildcardTypeReference__Alternatives_27679);
+ rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3542:6: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3542:6: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3543:1: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3544:1: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3544:2: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1
+ {
+ pushFollow(FOLLOW_rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_in_rule__JvmWildcardTypeReference__Alternatives_27697);
+ rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmWildcardTypeReference__Alternatives_2"
+
+
+ // $ANTLR start "rule__XImportDeclaration__Alternatives_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3554:1: rule__XImportDeclaration__Alternatives_1 : ( ( ( rule__XImportDeclaration__Group_1_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 ) ) );
+ public final void rule__XImportDeclaration__Alternatives_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3558:1: ( ( ( rule__XImportDeclaration__Group_1_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 ) ) )
+ int alt37=3;
+ alt37 = dfa37.predict(input);
+ switch (alt37) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3559:1: ( ( rule__XImportDeclaration__Group_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3559:1: ( ( rule__XImportDeclaration__Group_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3560:1: ( rule__XImportDeclaration__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getGroup_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3561:1: ( rule__XImportDeclaration__Group_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3561:2: rule__XImportDeclaration__Group_1_0__0
+ {
+ pushFollow(FOLLOW_rule__XImportDeclaration__Group_1_0__0_in_rule__XImportDeclaration__Alternatives_17731);
+ rule__XImportDeclaration__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3565:6: ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3565:6: ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3566:1: ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3567:1: ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3567:2: rule__XImportDeclaration__ImportedTypeAssignment_1_1
+ {
+ pushFollow(FOLLOW_rule__XImportDeclaration__ImportedTypeAssignment_1_1_in_rule__XImportDeclaration__Alternatives_17749);
+ rule__XImportDeclaration__ImportedTypeAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1());
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3571:6: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3571:6: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3572:1: ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3573:1: ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3573:2: rule__XImportDeclaration__ImportedNamespaceAssignment_1_2
+ {
+ pushFollow(FOLLOW_rule__XImportDeclaration__ImportedNamespaceAssignment_1_2_in_rule__XImportDeclaration__Alternatives_17767);
+ rule__XImportDeclaration__ImportedNamespaceAssignment_1_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2());
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__Alternatives_1"
+
+
+ // $ANTLR start "rule__Model__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3584:1: rule__Model__Group__0 : rule__Model__Group__0__Impl rule__Model__Group__1 ;
+ public final void rule__Model__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3588:1: ( rule__Model__Group__0__Impl rule__Model__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3589:2: rule__Model__Group__0__Impl rule__Model__Group__1
+ {
+ pushFollow(FOLLOW_rule__Model__Group__0__Impl_in_rule__Model__Group__07798);
+ rule__Model__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__Model__Group__1_in_rule__Model__Group__07801);
+ rule__Model__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Model__Group__0"
+
+
+ // $ANTLR start "rule__Model__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3596:1: rule__Model__Group__0__Impl : ( ( rule__Model__ImportSectionAssignment_0 )? ) ;
+ public final void rule__Model__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3600:1: ( ( ( rule__Model__ImportSectionAssignment_0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3601:1: ( ( rule__Model__ImportSectionAssignment_0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3601:1: ( ( rule__Model__ImportSectionAssignment_0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3602:1: ( rule__Model__ImportSectionAssignment_0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModelAccess().getImportSectionAssignment_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3603:1: ( rule__Model__ImportSectionAssignment_0 )?
+ int alt38=2;
+ int LA38_0 = input.LA(1);
+
+ if ( (LA38_0==44) ) {
+ alt38=1;
+ }
+ switch (alt38) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3603:2: rule__Model__ImportSectionAssignment_0
+ {
+ pushFollow(FOLLOW_rule__Model__ImportSectionAssignment_0_in_rule__Model__Group__0__Impl7828);
+ rule__Model__ImportSectionAssignment_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModelAccess().getImportSectionAssignment_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Model__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Model__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3613:1: rule__Model__Group__1 : rule__Model__Group__1__Impl ;
+ public final void rule__Model__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3617:1: ( rule__Model__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3618:2: rule__Model__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__Model__Group__1__Impl_in_rule__Model__Group__17859);
+ rule__Model__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Model__Group__1"
+
+
+ // $ANTLR start "rule__Model__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3624:1: rule__Model__Group__1__Impl : ( ( rule__Model__ModuleAssignment_1 ) ) ;
+ public final void rule__Model__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3628:1: ( ( ( rule__Model__ModuleAssignment_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3629:1: ( ( rule__Model__ModuleAssignment_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3629:1: ( ( rule__Model__ModuleAssignment_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3630:1: ( rule__Model__ModuleAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModelAccess().getModuleAssignment_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3631:1: ( rule__Model__ModuleAssignment_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3631:2: rule__Model__ModuleAssignment_1
+ {
+ pushFollow(FOLLOW_rule__Model__ModuleAssignment_1_in_rule__Model__Group__1__Impl7886);
+ rule__Model__ModuleAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModelAccess().getModuleAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Model__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Module__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3645:1: rule__Module__Group__0 : rule__Module__Group__0__Impl rule__Module__Group__1 ;
+ public final void rule__Module__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3649:1: ( rule__Module__Group__0__Impl rule__Module__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3650:2: rule__Module__Group__0__Impl rule__Module__Group__1
+ {
+ pushFollow(FOLLOW_rule__Module__Group__0__Impl_in_rule__Module__Group__07920);
+ rule__Module__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__Module__Group__1_in_rule__Module__Group__07923);
+ rule__Module__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__0"
+
+
+ // $ANTLR start "rule__Module__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3657:1: rule__Module__Group__0__Impl : ( 'module' ) ;
+ public final void rule__Module__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3661:1: ( ( 'module' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3662:1: ( 'module' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3662:1: ( 'module' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3663:1: 'module'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getModuleKeyword_0());
+ }
+ match(input,48,FOLLOW_48_in_rule__Module__Group__0__Impl7951); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getModuleKeyword_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Module__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3676:1: rule__Module__Group__1 : rule__Module__Group__1__Impl rule__Module__Group__2 ;
+ public final void rule__Module__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3680:1: ( rule__Module__Group__1__Impl rule__Module__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3681:2: rule__Module__Group__1__Impl rule__Module__Group__2
+ {
+ pushFollow(FOLLOW_rule__Module__Group__1__Impl_in_rule__Module__Group__17982);
+ rule__Module__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__Module__Group__2_in_rule__Module__Group__17985);
+ rule__Module__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__1"
+
+
+ // $ANTLR start "rule__Module__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3688:1: rule__Module__Group__1__Impl : ( ( rule__Module__NameAssignment_1 ) ) ;
+ public final void rule__Module__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3692:1: ( ( ( rule__Module__NameAssignment_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3693:1: ( ( rule__Module__NameAssignment_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3693:1: ( ( rule__Module__NameAssignment_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3694:1: ( rule__Module__NameAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getNameAssignment_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3695:1: ( rule__Module__NameAssignment_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3695:2: rule__Module__NameAssignment_1
+ {
+ pushFollow(FOLLOW_rule__Module__NameAssignment_1_in_rule__Module__Group__1__Impl8012);
+ rule__Module__NameAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getNameAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Module__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3705:1: rule__Module__Group__2 : rule__Module__Group__2__Impl rule__Module__Group__3 ;
+ public final void rule__Module__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3709:1: ( rule__Module__Group__2__Impl rule__Module__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3710:2: rule__Module__Group__2__Impl rule__Module__Group__3
+ {
+ pushFollow(FOLLOW_rule__Module__Group__2__Impl_in_rule__Module__Group__28042);
+ rule__Module__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__Module__Group__3_in_rule__Module__Group__28045);
+ rule__Module__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__2"
+
+
+ // $ANTLR start "rule__Module__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3717:1: rule__Module__Group__2__Impl : ( ( rule__Module__ExtendsClauseAssignment_2 )? ) ;
+ public final void rule__Module__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3721:1: ( ( ( rule__Module__ExtendsClauseAssignment_2 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3722:1: ( ( rule__Module__ExtendsClauseAssignment_2 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3722:1: ( ( rule__Module__ExtendsClauseAssignment_2 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3723:1: ( rule__Module__ExtendsClauseAssignment_2 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getExtendsClauseAssignment_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3724:1: ( rule__Module__ExtendsClauseAssignment_2 )?
+ int alt39=2;
+ int LA39_0 = input.LA(1);
+
+ if ( (LA39_0==42) ) {
+ alt39=1;
+ }
+ switch (alt39) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3724:2: rule__Module__ExtendsClauseAssignment_2
+ {
+ pushFollow(FOLLOW_rule__Module__ExtendsClauseAssignment_2_in_rule__Module__Group__2__Impl8072);
+ rule__Module__ExtendsClauseAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getExtendsClauseAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Module__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3734:1: rule__Module__Group__3 : rule__Module__Group__3__Impl rule__Module__Group__4 ;
+ public final void rule__Module__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3738:1: ( rule__Module__Group__3__Impl rule__Module__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3739:2: rule__Module__Group__3__Impl rule__Module__Group__4
+ {
+ pushFollow(FOLLOW_rule__Module__Group__3__Impl_in_rule__Module__Group__38103);
+ rule__Module__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__Module__Group__4_in_rule__Module__Group__38106);
+ rule__Module__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__3"
+
+
+ // $ANTLR start "rule__Module__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3746:1: rule__Module__Group__3__Impl : ( '{' ) ;
+ public final void rule__Module__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3750:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3751:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3751:1: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3752:1: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,49,FOLLOW_49_in_rule__Module__Group__3__Impl8134); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__3__Impl"
+
+
+ // $ANTLR start "rule__Module__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3765:1: rule__Module__Group__4 : rule__Module__Group__4__Impl rule__Module__Group__5 ;
+ public final void rule__Module__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3769:1: ( rule__Module__Group__4__Impl rule__Module__Group__5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3770:2: rule__Module__Group__4__Impl rule__Module__Group__5
+ {
+ pushFollow(FOLLOW_rule__Module__Group__4__Impl_in_rule__Module__Group__48165);
+ rule__Module__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__Module__Group__5_in_rule__Module__Group__48168);
+ rule__Module__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__4"
+
+
+ // $ANTLR start "rule__Module__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3777:1: rule__Module__Group__4__Impl : ( ( rule__Module__UnorderedGroup_4 ) ) ;
+ public final void rule__Module__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3781:1: ( ( ( rule__Module__UnorderedGroup_4 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3782:1: ( ( rule__Module__UnorderedGroup_4 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3782:1: ( ( rule__Module__UnorderedGroup_4 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3783:1: ( rule__Module__UnorderedGroup_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3784:1: ( rule__Module__UnorderedGroup_4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3784:2: rule__Module__UnorderedGroup_4
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4_in_rule__Module__Group__4__Impl8195);
+ rule__Module__UnorderedGroup_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__4__Impl"
+
+
+ // $ANTLR start "rule__Module__Group__5"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3794:1: rule__Module__Group__5 : rule__Module__Group__5__Impl ;
+ public final void rule__Module__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3798:1: ( rule__Module__Group__5__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3799:2: rule__Module__Group__5__Impl
+ {
+ pushFollow(FOLLOW_rule__Module__Group__5__Impl_in_rule__Module__Group__58225);
+ rule__Module__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__5"
+
+
+ // $ANTLR start "rule__Module__Group__5__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3805:1: rule__Module__Group__5__Impl : ( '}' ) ;
+ public final void rule__Module__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3809:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3810:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3810:1: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3811:1: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_5());
+ }
+ match(input,50,FOLLOW_50_in_rule__Module__Group__5__Impl8253); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group__5__Impl"
+
+
+ // $ANTLR start "rule__Module__Group_4_6__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3836:1: rule__Module__Group_4_6__0 : rule__Module__Group_4_6__0__Impl rule__Module__Group_4_6__1 ;
+ public final void rule__Module__Group_4_6__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3840:1: ( rule__Module__Group_4_6__0__Impl rule__Module__Group_4_6__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3841:2: rule__Module__Group_4_6__0__Impl rule__Module__Group_4_6__1
+ {
+ pushFollow(FOLLOW_rule__Module__Group_4_6__0__Impl_in_rule__Module__Group_4_6__08296);
+ rule__Module__Group_4_6__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__Module__Group_4_6__1_in_rule__Module__Group_4_6__08299);
+ rule__Module__Group_4_6__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group_4_6__0"
+
+
+ // $ANTLR start "rule__Module__Group_4_6__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3848:1: rule__Module__Group_4_6__0__Impl : ( 'parts' ) ;
+ public final void rule__Module__Group_4_6__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3852:1: ( ( 'parts' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3853:1: ( 'parts' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3853:1: ( 'parts' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3854:1: 'parts'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getPartsKeyword_4_6_0());
+ }
+ match(input,51,FOLLOW_51_in_rule__Module__Group_4_6__0__Impl8327); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getPartsKeyword_4_6_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group_4_6__0__Impl"
+
+
+ // $ANTLR start "rule__Module__Group_4_6__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3867:1: rule__Module__Group_4_6__1 : rule__Module__Group_4_6__1__Impl rule__Module__Group_4_6__2 ;
+ public final void rule__Module__Group_4_6__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3871:1: ( rule__Module__Group_4_6__1__Impl rule__Module__Group_4_6__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3872:2: rule__Module__Group_4_6__1__Impl rule__Module__Group_4_6__2
+ {
+ pushFollow(FOLLOW_rule__Module__Group_4_6__1__Impl_in_rule__Module__Group_4_6__18358);
+ rule__Module__Group_4_6__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__Module__Group_4_6__2_in_rule__Module__Group_4_6__18361);
+ rule__Module__Group_4_6__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group_4_6__1"
+
+
+ // $ANTLR start "rule__Module__Group_4_6__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3879:1: rule__Module__Group_4_6__1__Impl : ( '{' ) ;
+ public final void rule__Module__Group_4_6__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3883:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3884:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3884:1: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3885:1: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_4_6_1());
+ }
+ match(input,49,FOLLOW_49_in_rule__Module__Group_4_6__1__Impl8389); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_4_6_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group_4_6__1__Impl"
+
+
+ // $ANTLR start "rule__Module__Group_4_6__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3898:1: rule__Module__Group_4_6__2 : rule__Module__Group_4_6__2__Impl rule__Module__Group_4_6__3 ;
+ public final void rule__Module__Group_4_6__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3902:1: ( rule__Module__Group_4_6__2__Impl rule__Module__Group_4_6__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3903:2: rule__Module__Group_4_6__2__Impl rule__Module__Group_4_6__3
+ {
+ pushFollow(FOLLOW_rule__Module__Group_4_6__2__Impl_in_rule__Module__Group_4_6__28420);
+ rule__Module__Group_4_6__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__Module__Group_4_6__3_in_rule__Module__Group_4_6__28423);
+ rule__Module__Group_4_6__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group_4_6__2"
+
+
+ // $ANTLR start "rule__Module__Group_4_6__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3910:1: rule__Module__Group_4_6__2__Impl : ( ( rule__Module__PartsAssignment_4_6_2 )* ) ;
+ public final void rule__Module__Group_4_6__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3914:1: ( ( ( rule__Module__PartsAssignment_4_6_2 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3915:1: ( ( rule__Module__PartsAssignment_4_6_2 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3915:1: ( ( rule__Module__PartsAssignment_4_6_2 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3916:1: ( rule__Module__PartsAssignment_4_6_2 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getPartsAssignment_4_6_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3917:1: ( rule__Module__PartsAssignment_4_6_2 )*
+ loop40:
+ do {
+ int alt40=2;
+ int LA40_0 = input.LA(1);
+
+ if ( (LA40_0==66) ) {
+ alt40=1;
+ }
+
+
+ switch (alt40) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3917:2: rule__Module__PartsAssignment_4_6_2
+ {
+ pushFollow(FOLLOW_rule__Module__PartsAssignment_4_6_2_in_rule__Module__Group_4_6__2__Impl8450);
+ rule__Module__PartsAssignment_4_6_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop40;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getPartsAssignment_4_6_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group_4_6__2__Impl"
+
+
+ // $ANTLR start "rule__Module__Group_4_6__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3927:1: rule__Module__Group_4_6__3 : rule__Module__Group_4_6__3__Impl ;
+ public final void rule__Module__Group_4_6__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3931:1: ( rule__Module__Group_4_6__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3932:2: rule__Module__Group_4_6__3__Impl
+ {
+ pushFollow(FOLLOW_rule__Module__Group_4_6__3__Impl_in_rule__Module__Group_4_6__38481);
+ rule__Module__Group_4_6__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group_4_6__3"
+
+
+ // $ANTLR start "rule__Module__Group_4_6__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3938:1: rule__Module__Group_4_6__3__Impl : ( '}' ) ;
+ public final void rule__Module__Group_4_6__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3942:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3943:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3943:1: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3944:1: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_4_6_3());
+ }
+ match(input,50,FOLLOW_50_in_rule__Module__Group_4_6__3__Impl8509); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_4_6_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__Group_4_6__3__Impl"
+
+
+ // $ANTLR start "rule__ExtendsClause__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3965:1: rule__ExtendsClause__Group__0 : rule__ExtendsClause__Group__0__Impl rule__ExtendsClause__Group__1 ;
+ public final void rule__ExtendsClause__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3969:1: ( rule__ExtendsClause__Group__0__Impl rule__ExtendsClause__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3970:2: rule__ExtendsClause__Group__0__Impl rule__ExtendsClause__Group__1
+ {
+ pushFollow(FOLLOW_rule__ExtendsClause__Group__0__Impl_in_rule__ExtendsClause__Group__08548);
+ rule__ExtendsClause__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ExtendsClause__Group__1_in_rule__ExtendsClause__Group__08551);
+ rule__ExtendsClause__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ExtendsClause__Group__0"
+
+
+ // $ANTLR start "rule__ExtendsClause__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3977:1: rule__ExtendsClause__Group__0__Impl : ( 'extends' ) ;
+ public final void rule__ExtendsClause__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3981:1: ( ( 'extends' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3982:1: ( 'extends' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3982:1: ( 'extends' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3983:1: 'extends'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getExtendsClauseAccess().getExtendsKeyword_0());
+ }
+ match(input,42,FOLLOW_42_in_rule__ExtendsClause__Group__0__Impl8579); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getExtendsClauseAccess().getExtendsKeyword_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ExtendsClause__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ExtendsClause__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3996:1: rule__ExtendsClause__Group__1 : rule__ExtendsClause__Group__1__Impl ;
+ public final void rule__ExtendsClause__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4000:1: ( rule__ExtendsClause__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4001:2: rule__ExtendsClause__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__ExtendsClause__Group__1__Impl_in_rule__ExtendsClause__Group__18610);
+ rule__ExtendsClause__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ExtendsClause__Group__1"
+
+
+ // $ANTLR start "rule__ExtendsClause__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4007:1: rule__ExtendsClause__Group__1__Impl : ( ( rule__ExtendsClause__SuperTypeAssignment_1 ) ) ;
+ public final void rule__ExtendsClause__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4011:1: ( ( ( rule__ExtendsClause__SuperTypeAssignment_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4012:1: ( ( rule__ExtendsClause__SuperTypeAssignment_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4012:1: ( ( rule__ExtendsClause__SuperTypeAssignment_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4013:1: ( rule__ExtendsClause__SuperTypeAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getExtendsClauseAccess().getSuperTypeAssignment_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4014:1: ( rule__ExtendsClause__SuperTypeAssignment_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4014:2: rule__ExtendsClause__SuperTypeAssignment_1
+ {
+ pushFollow(FOLLOW_rule__ExtendsClause__SuperTypeAssignment_1_in_rule__ExtendsClause__Group__1__Impl8637);
+ rule__ExtendsClause__SuperTypeAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getExtendsClauseAccess().getSuperTypeAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ExtendsClause__Group__1__Impl"
+
+
+ // $ANTLR start "rule__LabelProvider__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4028:1: rule__LabelProvider__Group__0 : rule__LabelProvider__Group__0__Impl rule__LabelProvider__Group__1 ;
+ public final void rule__LabelProvider__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4032:1: ( rule__LabelProvider__Group__0__Impl rule__LabelProvider__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4033:2: rule__LabelProvider__Group__0__Impl rule__LabelProvider__Group__1
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__Group__0__Impl_in_rule__LabelProvider__Group__08671);
+ rule__LabelProvider__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__LabelProvider__Group__1_in_rule__LabelProvider__Group__08674);
+ rule__LabelProvider__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group__0"
+
+
+ // $ANTLR start "rule__LabelProvider__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4040:1: rule__LabelProvider__Group__0__Impl : ( () ) ;
+ public final void rule__LabelProvider__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4044:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4045:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4045:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4046:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getLabelProviderAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4047:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4049:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderAccess().getLabelProviderAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group__0__Impl"
+
+
+ // $ANTLR start "rule__LabelProvider__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4059:1: rule__LabelProvider__Group__1 : rule__LabelProvider__Group__1__Impl rule__LabelProvider__Group__2 ;
+ public final void rule__LabelProvider__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4063:1: ( rule__LabelProvider__Group__1__Impl rule__LabelProvider__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4064:2: rule__LabelProvider__Group__1__Impl rule__LabelProvider__Group__2
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__Group__1__Impl_in_rule__LabelProvider__Group__18732);
+ rule__LabelProvider__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__LabelProvider__Group__2_in_rule__LabelProvider__Group__18735);
+ rule__LabelProvider__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group__1"
+
+
+ // $ANTLR start "rule__LabelProvider__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4071:1: rule__LabelProvider__Group__1__Impl : ( 'labelProvider' ) ;
+ public final void rule__LabelProvider__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4075:1: ( ( 'labelProvider' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4076:1: ( 'labelProvider' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4076:1: ( 'labelProvider' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4077:1: 'labelProvider'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getLabelProviderKeyword_1());
+ }
+ match(input,52,FOLLOW_52_in_rule__LabelProvider__Group__1__Impl8763); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderAccess().getLabelProviderKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group__1__Impl"
+
+
+ // $ANTLR start "rule__LabelProvider__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4090:1: rule__LabelProvider__Group__2 : rule__LabelProvider__Group__2__Impl rule__LabelProvider__Group__3 ;
+ public final void rule__LabelProvider__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4094:1: ( rule__LabelProvider__Group__2__Impl rule__LabelProvider__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4095:2: rule__LabelProvider__Group__2__Impl rule__LabelProvider__Group__3
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__Group__2__Impl_in_rule__LabelProvider__Group__28794);
+ rule__LabelProvider__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__LabelProvider__Group__3_in_rule__LabelProvider__Group__28797);
+ rule__LabelProvider__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group__2"
+
+
+ // $ANTLR start "rule__LabelProvider__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4102:1: rule__LabelProvider__Group__2__Impl : ( '{' ) ;
+ public final void rule__LabelProvider__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4106:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4107:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4107:1: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4108:1: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_2());
+ }
+ match(input,49,FOLLOW_49_in_rule__LabelProvider__Group__2__Impl8825); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group__2__Impl"
+
+
+ // $ANTLR start "rule__LabelProvider__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4121:1: rule__LabelProvider__Group__3 : rule__LabelProvider__Group__3__Impl rule__LabelProvider__Group__4 ;
+ public final void rule__LabelProvider__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4125:1: ( rule__LabelProvider__Group__3__Impl rule__LabelProvider__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4126:2: rule__LabelProvider__Group__3__Impl rule__LabelProvider__Group__4
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__Group__3__Impl_in_rule__LabelProvider__Group__38856);
+ rule__LabelProvider__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__LabelProvider__Group__4_in_rule__LabelProvider__Group__38859);
+ rule__LabelProvider__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group__3"
+
+
+ // $ANTLR start "rule__LabelProvider__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4133:1: rule__LabelProvider__Group__3__Impl : ( ( rule__LabelProvider__UnorderedGroup_3 ) ) ;
+ public final void rule__LabelProvider__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4137:1: ( ( ( rule__LabelProvider__UnorderedGroup_3 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4138:1: ( ( rule__LabelProvider__UnorderedGroup_3 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4138:1: ( ( rule__LabelProvider__UnorderedGroup_3 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4139:1: ( rule__LabelProvider__UnorderedGroup_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4140:1: ( rule__LabelProvider__UnorderedGroup_3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4140:2: rule__LabelProvider__UnorderedGroup_3
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__UnorderedGroup_3_in_rule__LabelProvider__Group__3__Impl8886);
+ rule__LabelProvider__UnorderedGroup_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group__3__Impl"
+
+
+ // $ANTLR start "rule__LabelProvider__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4150:1: rule__LabelProvider__Group__4 : rule__LabelProvider__Group__4__Impl ;
+ public final void rule__LabelProvider__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4154:1: ( rule__LabelProvider__Group__4__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4155:2: rule__LabelProvider__Group__4__Impl
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__Group__4__Impl_in_rule__LabelProvider__Group__48916);
+ rule__LabelProvider__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group__4"
+
+
+ // $ANTLR start "rule__LabelProvider__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4161:1: rule__LabelProvider__Group__4__Impl : ( '}' ) ;
+ public final void rule__LabelProvider__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4165:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4166:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4166:1: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4167:1: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_4());
+ }
+ match(input,50,FOLLOW_50_in_rule__LabelProvider__Group__4__Impl8944); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group__4__Impl"
+
+
+ // $ANTLR start "rule__LabelProvider__Group_3_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4190:1: rule__LabelProvider__Group_3_0__0 : rule__LabelProvider__Group_3_0__0__Impl rule__LabelProvider__Group_3_0__1 ;
+ public final void rule__LabelProvider__Group_3_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4194:1: ( rule__LabelProvider__Group_3_0__0__Impl rule__LabelProvider__Group_3_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4195:2: rule__LabelProvider__Group_3_0__0__Impl rule__LabelProvider__Group_3_0__1
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__Group_3_0__0__Impl_in_rule__LabelProvider__Group_3_0__08985);
+ rule__LabelProvider__Group_3_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__LabelProvider__Group_3_0__1_in_rule__LabelProvider__Group_3_0__08988);
+ rule__LabelProvider__Group_3_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group_3_0__0"
+
+
+ // $ANTLR start "rule__LabelProvider__Group_3_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4202:1: rule__LabelProvider__Group_3_0__0__Impl : ( 'text' ) ;
+ public final void rule__LabelProvider__Group_3_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4206:1: ( ( 'text' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4207:1: ( 'text' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4207:1: ( 'text' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4208:1: 'text'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0());
+ }
+ match(input,53,FOLLOW_53_in_rule__LabelProvider__Group_3_0__0__Impl9016); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group_3_0__0__Impl"
+
+
+ // $ANTLR start "rule__LabelProvider__Group_3_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4221:1: rule__LabelProvider__Group_3_0__1 : rule__LabelProvider__Group_3_0__1__Impl rule__LabelProvider__Group_3_0__2 ;
+ public final void rule__LabelProvider__Group_3_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4225:1: ( rule__LabelProvider__Group_3_0__1__Impl rule__LabelProvider__Group_3_0__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4226:2: rule__LabelProvider__Group_3_0__1__Impl rule__LabelProvider__Group_3_0__2
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__Group_3_0__1__Impl_in_rule__LabelProvider__Group_3_0__19047);
+ rule__LabelProvider__Group_3_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__LabelProvider__Group_3_0__2_in_rule__LabelProvider__Group_3_0__19050);
+ rule__LabelProvider__Group_3_0__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group_3_0__1"
+
+
+ // $ANTLR start "rule__LabelProvider__Group_3_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4233:1: rule__LabelProvider__Group_3_0__1__Impl : ( '{' ) ;
+ public final void rule__LabelProvider__Group_3_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4237:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4238:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4238:1: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4239:1: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1());
+ }
+ match(input,49,FOLLOW_49_in_rule__LabelProvider__Group_3_0__1__Impl9078); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group_3_0__1__Impl"
+
+
+ // $ANTLR start "rule__LabelProvider__Group_3_0__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4252:1: rule__LabelProvider__Group_3_0__2 : rule__LabelProvider__Group_3_0__2__Impl rule__LabelProvider__Group_3_0__3 ;
+ public final void rule__LabelProvider__Group_3_0__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4256:1: ( rule__LabelProvider__Group_3_0__2__Impl rule__LabelProvider__Group_3_0__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4257:2: rule__LabelProvider__Group_3_0__2__Impl rule__LabelProvider__Group_3_0__3
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__Group_3_0__2__Impl_in_rule__LabelProvider__Group_3_0__29109);
+ rule__LabelProvider__Group_3_0__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__LabelProvider__Group_3_0__3_in_rule__LabelProvider__Group_3_0__29112);
+ rule__LabelProvider__Group_3_0__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group_3_0__2"
+
+
+ // $ANTLR start "rule__LabelProvider__Group_3_0__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4264:1: rule__LabelProvider__Group_3_0__2__Impl : ( ( rule__LabelProvider__LabelSpecificationsAssignment_3_0_2 )* ) ;
+ public final void rule__LabelProvider__Group_3_0__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4268:1: ( ( ( rule__LabelProvider__LabelSpecificationsAssignment_3_0_2 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4269:1: ( ( rule__LabelProvider__LabelSpecificationsAssignment_3_0_2 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4269:1: ( ( rule__LabelProvider__LabelSpecificationsAssignment_3_0_2 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4270:1: ( rule__LabelProvider__LabelSpecificationsAssignment_3_0_2 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getLabelSpecificationsAssignment_3_0_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4271:1: ( rule__LabelProvider__LabelSpecificationsAssignment_3_0_2 )*
+ loop41:
+ do {
+ int alt41=2;
+ int LA41_0 = input.LA(1);
+
+ if ( (LA41_0==RULE_ID||LA41_0==29||LA41_0==77) ) {
+ alt41=1;
+ }
+
+
+ switch (alt41) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4271:2: rule__LabelProvider__LabelSpecificationsAssignment_3_0_2
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__LabelSpecificationsAssignment_3_0_2_in_rule__LabelProvider__Group_3_0__2__Impl9139);
+ rule__LabelProvider__LabelSpecificationsAssignment_3_0_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop41;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderAccess().getLabelSpecificationsAssignment_3_0_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group_3_0__2__Impl"
+
+
+ // $ANTLR start "rule__LabelProvider__Group_3_0__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4281:1: rule__LabelProvider__Group_3_0__3 : rule__LabelProvider__Group_3_0__3__Impl ;
+ public final void rule__LabelProvider__Group_3_0__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4285:1: ( rule__LabelProvider__Group_3_0__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4286:2: rule__LabelProvider__Group_3_0__3__Impl
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__Group_3_0__3__Impl_in_rule__LabelProvider__Group_3_0__39170);
+ rule__LabelProvider__Group_3_0__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group_3_0__3"
+
+
+ // $ANTLR start "rule__LabelProvider__Group_3_0__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4292:1: rule__LabelProvider__Group_3_0__3__Impl : ( '}' ) ;
+ public final void rule__LabelProvider__Group_3_0__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4296:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4297:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4297:1: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4298:1: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3());
+ }
+ match(input,50,FOLLOW_50_in_rule__LabelProvider__Group_3_0__3__Impl9198); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group_3_0__3__Impl"
+
+
+ // $ANTLR start "rule__LabelProvider__Group_3_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4319:1: rule__LabelProvider__Group_3_1__0 : rule__LabelProvider__Group_3_1__0__Impl rule__LabelProvider__Group_3_1__1 ;
+ public final void rule__LabelProvider__Group_3_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4323:1: ( rule__LabelProvider__Group_3_1__0__Impl rule__LabelProvider__Group_3_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4324:2: rule__LabelProvider__Group_3_1__0__Impl rule__LabelProvider__Group_3_1__1
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__Group_3_1__0__Impl_in_rule__LabelProvider__Group_3_1__09237);
+ rule__LabelProvider__Group_3_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__LabelProvider__Group_3_1__1_in_rule__LabelProvider__Group_3_1__09240);
+ rule__LabelProvider__Group_3_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group_3_1__0"
+
+
+ // $ANTLR start "rule__LabelProvider__Group_3_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4331:1: rule__LabelProvider__Group_3_1__0__Impl : ( 'image' ) ;
+ public final void rule__LabelProvider__Group_3_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4335:1: ( ( 'image' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4336:1: ( 'image' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4336:1: ( 'image' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4337:1: 'image'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0());
+ }
+ match(input,54,FOLLOW_54_in_rule__LabelProvider__Group_3_1__0__Impl9268); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group_3_1__0__Impl"
+
+
+ // $ANTLR start "rule__LabelProvider__Group_3_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4350:1: rule__LabelProvider__Group_3_1__1 : rule__LabelProvider__Group_3_1__1__Impl rule__LabelProvider__Group_3_1__2 ;
+ public final void rule__LabelProvider__Group_3_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4354:1: ( rule__LabelProvider__Group_3_1__1__Impl rule__LabelProvider__Group_3_1__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4355:2: rule__LabelProvider__Group_3_1__1__Impl rule__LabelProvider__Group_3_1__2
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__Group_3_1__1__Impl_in_rule__LabelProvider__Group_3_1__19299);
+ rule__LabelProvider__Group_3_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__LabelProvider__Group_3_1__2_in_rule__LabelProvider__Group_3_1__19302);
+ rule__LabelProvider__Group_3_1__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group_3_1__1"
+
+
+ // $ANTLR start "rule__LabelProvider__Group_3_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4362:1: rule__LabelProvider__Group_3_1__1__Impl : ( '{' ) ;
+ public final void rule__LabelProvider__Group_3_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4366:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4367:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4367:1: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4368:1: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1());
+ }
+ match(input,49,FOLLOW_49_in_rule__LabelProvider__Group_3_1__1__Impl9330); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group_3_1__1__Impl"
+
+
+ // $ANTLR start "rule__LabelProvider__Group_3_1__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4381:1: rule__LabelProvider__Group_3_1__2 : rule__LabelProvider__Group_3_1__2__Impl rule__LabelProvider__Group_3_1__3 ;
+ public final void rule__LabelProvider__Group_3_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4385:1: ( rule__LabelProvider__Group_3_1__2__Impl rule__LabelProvider__Group_3_1__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4386:2: rule__LabelProvider__Group_3_1__2__Impl rule__LabelProvider__Group_3_1__3
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__Group_3_1__2__Impl_in_rule__LabelProvider__Group_3_1__29361);
+ rule__LabelProvider__Group_3_1__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__LabelProvider__Group_3_1__3_in_rule__LabelProvider__Group_3_1__29364);
+ rule__LabelProvider__Group_3_1__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group_3_1__2"
+
+
+ // $ANTLR start "rule__LabelProvider__Group_3_1__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4393:1: rule__LabelProvider__Group_3_1__2__Impl : ( ( rule__LabelProvider__ImageSpecificationsAssignment_3_1_2 )* ) ;
+ public final void rule__LabelProvider__Group_3_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4397:1: ( ( ( rule__LabelProvider__ImageSpecificationsAssignment_3_1_2 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4398:1: ( ( rule__LabelProvider__ImageSpecificationsAssignment_3_1_2 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4398:1: ( ( rule__LabelProvider__ImageSpecificationsAssignment_3_1_2 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4399:1: ( rule__LabelProvider__ImageSpecificationsAssignment_3_1_2 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getImageSpecificationsAssignment_3_1_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4400:1: ( rule__LabelProvider__ImageSpecificationsAssignment_3_1_2 )*
+ loop42:
+ do {
+ int alt42=2;
+ int LA42_0 = input.LA(1);
+
+ if ( (LA42_0==RULE_ID||LA42_0==29||LA42_0==77) ) {
+ alt42=1;
+ }
+
+
+ switch (alt42) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4400:2: rule__LabelProvider__ImageSpecificationsAssignment_3_1_2
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__ImageSpecificationsAssignment_3_1_2_in_rule__LabelProvider__Group_3_1__2__Impl9391);
+ rule__LabelProvider__ImageSpecificationsAssignment_3_1_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop42;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderAccess().getImageSpecificationsAssignment_3_1_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group_3_1__2__Impl"
+
+
+ // $ANTLR start "rule__LabelProvider__Group_3_1__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4410:1: rule__LabelProvider__Group_3_1__3 : rule__LabelProvider__Group_3_1__3__Impl ;
+ public final void rule__LabelProvider__Group_3_1__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4414:1: ( rule__LabelProvider__Group_3_1__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4415:2: rule__LabelProvider__Group_3_1__3__Impl
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__Group_3_1__3__Impl_in_rule__LabelProvider__Group_3_1__39422);
+ rule__LabelProvider__Group_3_1__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group_3_1__3"
+
+
+ // $ANTLR start "rule__LabelProvider__Group_3_1__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4421:1: rule__LabelProvider__Group_3_1__3__Impl : ( '}' ) ;
+ public final void rule__LabelProvider__Group_3_1__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4425:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4426:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4426:1: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4427:1: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3());
+ }
+ match(input,50,FOLLOW_50_in_rule__LabelProvider__Group_3_1__3__Impl9450); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__Group_3_1__3__Impl"
+
+
+ // $ANTLR start "rule__LabelSpecification__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4448:1: rule__LabelSpecification__Group__0 : rule__LabelSpecification__Group__0__Impl rule__LabelSpecification__Group__1 ;
+ public final void rule__LabelSpecification__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4452:1: ( rule__LabelSpecification__Group__0__Impl rule__LabelSpecification__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4453:2: rule__LabelSpecification__Group__0__Impl rule__LabelSpecification__Group__1
+ {
+ pushFollow(FOLLOW_rule__LabelSpecification__Group__0__Impl_in_rule__LabelSpecification__Group__09489);
+ rule__LabelSpecification__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__LabelSpecification__Group__1_in_rule__LabelSpecification__Group__09492);
+ rule__LabelSpecification__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelSpecification__Group__0"
+
+
+ // $ANTLR start "rule__LabelSpecification__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4460:1: rule__LabelSpecification__Group__0__Impl : ( ( rule__LabelSpecification__ParameterTypeAssignment_0 ) ) ;
+ public final void rule__LabelSpecification__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4464:1: ( ( ( rule__LabelSpecification__ParameterTypeAssignment_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4465:1: ( ( rule__LabelSpecification__ParameterTypeAssignment_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4465:1: ( ( rule__LabelSpecification__ParameterTypeAssignment_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4466:1: ( rule__LabelSpecification__ParameterTypeAssignment_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelSpecificationAccess().getParameterTypeAssignment_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4467:1: ( rule__LabelSpecification__ParameterTypeAssignment_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4467:2: rule__LabelSpecification__ParameterTypeAssignment_0
+ {
+ pushFollow(FOLLOW_rule__LabelSpecification__ParameterTypeAssignment_0_in_rule__LabelSpecification__Group__0__Impl9519);
+ rule__LabelSpecification__ParameterTypeAssignment_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelSpecificationAccess().getParameterTypeAssignment_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelSpecification__Group__0__Impl"
+
+
+ // $ANTLR start "rule__LabelSpecification__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4477:1: rule__LabelSpecification__Group__1 : rule__LabelSpecification__Group__1__Impl rule__LabelSpecification__Group__2 ;
+ public final void rule__LabelSpecification__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4481:1: ( rule__LabelSpecification__Group__1__Impl rule__LabelSpecification__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4482:2: rule__LabelSpecification__Group__1__Impl rule__LabelSpecification__Group__2
+ {
+ pushFollow(FOLLOW_rule__LabelSpecification__Group__1__Impl_in_rule__LabelSpecification__Group__19549);
+ rule__LabelSpecification__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__LabelSpecification__Group__2_in_rule__LabelSpecification__Group__19552);
+ rule__LabelSpecification__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelSpecification__Group__1"
+
+
+ // $ANTLR start "rule__LabelSpecification__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4489:1: rule__LabelSpecification__Group__1__Impl : ( ( rule__LabelSpecification__NameAssignment_1 )? ) ;
+ public final void rule__LabelSpecification__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4493:1: ( ( ( rule__LabelSpecification__NameAssignment_1 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4494:1: ( ( rule__LabelSpecification__NameAssignment_1 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4494:1: ( ( rule__LabelSpecification__NameAssignment_1 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4495:1: ( rule__LabelSpecification__NameAssignment_1 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelSpecificationAccess().getNameAssignment_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4496:1: ( rule__LabelSpecification__NameAssignment_1 )?
+ int alt43=2;
+ int LA43_0 = input.LA(1);
+
+ if ( (LA43_0==RULE_ID) ) {
+ alt43=1;
+ }
+ switch (alt43) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4496:2: rule__LabelSpecification__NameAssignment_1
+ {
+ pushFollow(FOLLOW_rule__LabelSpecification__NameAssignment_1_in_rule__LabelSpecification__Group__1__Impl9579);
+ rule__LabelSpecification__NameAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelSpecificationAccess().getNameAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelSpecification__Group__1__Impl"
+
+
+ // $ANTLR start "rule__LabelSpecification__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4506:1: rule__LabelSpecification__Group__2 : rule__LabelSpecification__Group__2__Impl rule__LabelSpecification__Group__3 ;
+ public final void rule__LabelSpecification__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4510:1: ( rule__LabelSpecification__Group__2__Impl rule__LabelSpecification__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4511:2: rule__LabelSpecification__Group__2__Impl rule__LabelSpecification__Group__3
+ {
+ pushFollow(FOLLOW_rule__LabelSpecification__Group__2__Impl_in_rule__LabelSpecification__Group__29610);
+ rule__LabelSpecification__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__LabelSpecification__Group__3_in_rule__LabelSpecification__Group__29613);
+ rule__LabelSpecification__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelSpecification__Group__2"
+
+
+ // $ANTLR start "rule__LabelSpecification__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4518:1: rule__LabelSpecification__Group__2__Impl : ( '->' ) ;
+ public final void rule__LabelSpecification__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4522:1: ( ( '->' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4523:1: ( '->' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4523:1: ( '->' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4524:1: '->'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_2());
+ }
+ match(input,26,FOLLOW_26_in_rule__LabelSpecification__Group__2__Impl9641); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelSpecification__Group__2__Impl"
+
+
+ // $ANTLR start "rule__LabelSpecification__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4537:1: rule__LabelSpecification__Group__3 : rule__LabelSpecification__Group__3__Impl ;
+ public final void rule__LabelSpecification__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4541:1: ( rule__LabelSpecification__Group__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4542:2: rule__LabelSpecification__Group__3__Impl
+ {
+ pushFollow(FOLLOW_rule__LabelSpecification__Group__3__Impl_in_rule__LabelSpecification__Group__39672);
+ rule__LabelSpecification__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelSpecification__Group__3"
+
+
+ // $ANTLR start "rule__LabelSpecification__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4548:1: rule__LabelSpecification__Group__3__Impl : ( ( rule__LabelSpecification__ExpressionAssignment_3 ) ) ;
+ public final void rule__LabelSpecification__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4552:1: ( ( ( rule__LabelSpecification__ExpressionAssignment_3 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4553:1: ( ( rule__LabelSpecification__ExpressionAssignment_3 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4553:1: ( ( rule__LabelSpecification__ExpressionAssignment_3 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4554:1: ( rule__LabelSpecification__ExpressionAssignment_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelSpecificationAccess().getExpressionAssignment_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4555:1: ( rule__LabelSpecification__ExpressionAssignment_3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4555:2: rule__LabelSpecification__ExpressionAssignment_3
+ {
+ pushFollow(FOLLOW_rule__LabelSpecification__ExpressionAssignment_3_in_rule__LabelSpecification__Group__3__Impl9699);
+ rule__LabelSpecification__ExpressionAssignment_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelSpecificationAccess().getExpressionAssignment_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelSpecification__Group__3__Impl"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4573:1: rule__PropertyDescriptionProvider__Group__0 : rule__PropertyDescriptionProvider__Group__0__Impl rule__PropertyDescriptionProvider__Group__1 ;
+ public final void rule__PropertyDescriptionProvider__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4577:1: ( rule__PropertyDescriptionProvider__Group__0__Impl rule__PropertyDescriptionProvider__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4578:2: rule__PropertyDescriptionProvider__Group__0__Impl rule__PropertyDescriptionProvider__Group__1
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__Group__0__Impl_in_rule__PropertyDescriptionProvider__Group__09737);
+ rule__PropertyDescriptionProvider__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__Group__1_in_rule__PropertyDescriptionProvider__Group__09740);
+ rule__PropertyDescriptionProvider__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__Group__0"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4585:1: rule__PropertyDescriptionProvider__Group__0__Impl : ( () ) ;
+ public final void rule__PropertyDescriptionProvider__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4589:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4590:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4590:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4591:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionProviderAccess().getPropertyDescriptionProviderAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4592:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4594:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionProviderAccess().getPropertyDescriptionProviderAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__Group__0__Impl"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4604:1: rule__PropertyDescriptionProvider__Group__1 : rule__PropertyDescriptionProvider__Group__1__Impl rule__PropertyDescriptionProvider__Group__2 ;
+ public final void rule__PropertyDescriptionProvider__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4608:1: ( rule__PropertyDescriptionProvider__Group__1__Impl rule__PropertyDescriptionProvider__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4609:2: rule__PropertyDescriptionProvider__Group__1__Impl rule__PropertyDescriptionProvider__Group__2
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__Group__1__Impl_in_rule__PropertyDescriptionProvider__Group__19798);
+ rule__PropertyDescriptionProvider__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__Group__2_in_rule__PropertyDescriptionProvider__Group__19801);
+ rule__PropertyDescriptionProvider__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__Group__1"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4616:1: rule__PropertyDescriptionProvider__Group__1__Impl : ( 'propertyDescriptionProvider' ) ;
+ public final void rule__PropertyDescriptionProvider__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4620:1: ( ( 'propertyDescriptionProvider' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4621:1: ( 'propertyDescriptionProvider' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4621:1: ( 'propertyDescriptionProvider' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4622:1: 'propertyDescriptionProvider'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionProviderAccess().getPropertyDescriptionProviderKeyword_1());
+ }
+ match(input,55,FOLLOW_55_in_rule__PropertyDescriptionProvider__Group__1__Impl9829); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionProviderAccess().getPropertyDescriptionProviderKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__Group__1__Impl"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4635:1: rule__PropertyDescriptionProvider__Group__2 : rule__PropertyDescriptionProvider__Group__2__Impl rule__PropertyDescriptionProvider__Group__3 ;
+ public final void rule__PropertyDescriptionProvider__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4639:1: ( rule__PropertyDescriptionProvider__Group__2__Impl rule__PropertyDescriptionProvider__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4640:2: rule__PropertyDescriptionProvider__Group__2__Impl rule__PropertyDescriptionProvider__Group__3
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__Group__2__Impl_in_rule__PropertyDescriptionProvider__Group__29860);
+ rule__PropertyDescriptionProvider__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__Group__3_in_rule__PropertyDescriptionProvider__Group__29863);
+ rule__PropertyDescriptionProvider__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__Group__2"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4647:1: rule__PropertyDescriptionProvider__Group__2__Impl : ( '{' ) ;
+ public final void rule__PropertyDescriptionProvider__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4651:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4652:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4652:1: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4653:1: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionProviderAccess().getLeftCurlyBracketKeyword_2());
+ }
+ match(input,49,FOLLOW_49_in_rule__PropertyDescriptionProvider__Group__2__Impl9891); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionProviderAccess().getLeftCurlyBracketKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__Group__2__Impl"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4666:1: rule__PropertyDescriptionProvider__Group__3 : rule__PropertyDescriptionProvider__Group__3__Impl rule__PropertyDescriptionProvider__Group__4 ;
+ public final void rule__PropertyDescriptionProvider__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4670:1: ( rule__PropertyDescriptionProvider__Group__3__Impl rule__PropertyDescriptionProvider__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4671:2: rule__PropertyDescriptionProvider__Group__3__Impl rule__PropertyDescriptionProvider__Group__4
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__Group__3__Impl_in_rule__PropertyDescriptionProvider__Group__39922);
+ rule__PropertyDescriptionProvider__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__Group__4_in_rule__PropertyDescriptionProvider__Group__39925);
+ rule__PropertyDescriptionProvider__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__Group__3"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4678:1: rule__PropertyDescriptionProvider__Group__3__Impl : ( ( rule__PropertyDescriptionProvider__Group_3__0 )? ) ;
+ public final void rule__PropertyDescriptionProvider__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4682:1: ( ( ( rule__PropertyDescriptionProvider__Group_3__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4683:1: ( ( rule__PropertyDescriptionProvider__Group_3__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4683:1: ( ( rule__PropertyDescriptionProvider__Group_3__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4684:1: ( rule__PropertyDescriptionProvider__Group_3__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionProviderAccess().getGroup_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4685:1: ( rule__PropertyDescriptionProvider__Group_3__0 )?
+ int alt44=2;
+ int LA44_0 = input.LA(1);
+
+ if ( (LA44_0==53) ) {
+ alt44=1;
+ }
+ switch (alt44) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4685:2: rule__PropertyDescriptionProvider__Group_3__0
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__Group_3__0_in_rule__PropertyDescriptionProvider__Group__3__Impl9952);
+ rule__PropertyDescriptionProvider__Group_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionProviderAccess().getGroup_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__Group__3__Impl"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4695:1: rule__PropertyDescriptionProvider__Group__4 : rule__PropertyDescriptionProvider__Group__4__Impl ;
+ public final void rule__PropertyDescriptionProvider__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4699:1: ( rule__PropertyDescriptionProvider__Group__4__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4700:2: rule__PropertyDescriptionProvider__Group__4__Impl
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__Group__4__Impl_in_rule__PropertyDescriptionProvider__Group__49983);
+ rule__PropertyDescriptionProvider__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__Group__4"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4706:1: rule__PropertyDescriptionProvider__Group__4__Impl : ( '}' ) ;
+ public final void rule__PropertyDescriptionProvider__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4710:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4711:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4711:1: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4712:1: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionProviderAccess().getRightCurlyBracketKeyword_4());
+ }
+ match(input,50,FOLLOW_50_in_rule__PropertyDescriptionProvider__Group__4__Impl10011); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionProviderAccess().getRightCurlyBracketKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__Group__4__Impl"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__Group_3__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4735:1: rule__PropertyDescriptionProvider__Group_3__0 : rule__PropertyDescriptionProvider__Group_3__0__Impl rule__PropertyDescriptionProvider__Group_3__1 ;
+ public final void rule__PropertyDescriptionProvider__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4739:1: ( rule__PropertyDescriptionProvider__Group_3__0__Impl rule__PropertyDescriptionProvider__Group_3__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4740:2: rule__PropertyDescriptionProvider__Group_3__0__Impl rule__PropertyDescriptionProvider__Group_3__1
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__Group_3__0__Impl_in_rule__PropertyDescriptionProvider__Group_3__010052);
+ rule__PropertyDescriptionProvider__Group_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__Group_3__1_in_rule__PropertyDescriptionProvider__Group_3__010055);
+ rule__PropertyDescriptionProvider__Group_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__Group_3__0"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__Group_3__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4747:1: rule__PropertyDescriptionProvider__Group_3__0__Impl : ( 'text' ) ;
+ public final void rule__PropertyDescriptionProvider__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4751:1: ( ( 'text' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4752:1: ( 'text' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4752:1: ( 'text' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4753:1: 'text'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionProviderAccess().getTextKeyword_3_0());
+ }
+ match(input,53,FOLLOW_53_in_rule__PropertyDescriptionProvider__Group_3__0__Impl10083); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionProviderAccess().getTextKeyword_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__Group_3__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4766:1: rule__PropertyDescriptionProvider__Group_3__1 : rule__PropertyDescriptionProvider__Group_3__1__Impl rule__PropertyDescriptionProvider__Group_3__2 ;
+ public final void rule__PropertyDescriptionProvider__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4770:1: ( rule__PropertyDescriptionProvider__Group_3__1__Impl rule__PropertyDescriptionProvider__Group_3__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4771:2: rule__PropertyDescriptionProvider__Group_3__1__Impl rule__PropertyDescriptionProvider__Group_3__2
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__Group_3__1__Impl_in_rule__PropertyDescriptionProvider__Group_3__110114);
+ rule__PropertyDescriptionProvider__Group_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__Group_3__2_in_rule__PropertyDescriptionProvider__Group_3__110117);
+ rule__PropertyDescriptionProvider__Group_3__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__Group_3__1"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__Group_3__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4778:1: rule__PropertyDescriptionProvider__Group_3__1__Impl : ( '{' ) ;
+ public final void rule__PropertyDescriptionProvider__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4782:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4783:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4783:1: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4784:1: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionProviderAccess().getLeftCurlyBracketKeyword_3_1());
+ }
+ match(input,49,FOLLOW_49_in_rule__PropertyDescriptionProvider__Group_3__1__Impl10145); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionProviderAccess().getLeftCurlyBracketKeyword_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__Group_3__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4797:1: rule__PropertyDescriptionProvider__Group_3__2 : rule__PropertyDescriptionProvider__Group_3__2__Impl rule__PropertyDescriptionProvider__Group_3__3 ;
+ public final void rule__PropertyDescriptionProvider__Group_3__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4801:1: ( rule__PropertyDescriptionProvider__Group_3__2__Impl rule__PropertyDescriptionProvider__Group_3__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4802:2: rule__PropertyDescriptionProvider__Group_3__2__Impl rule__PropertyDescriptionProvider__Group_3__3
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__Group_3__2__Impl_in_rule__PropertyDescriptionProvider__Group_3__210176);
+ rule__PropertyDescriptionProvider__Group_3__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__Group_3__3_in_rule__PropertyDescriptionProvider__Group_3__210179);
+ rule__PropertyDescriptionProvider__Group_3__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__Group_3__2"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__Group_3__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4809:1: rule__PropertyDescriptionProvider__Group_3__2__Impl : ( ( rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_2 )* ) ;
+ public final void rule__PropertyDescriptionProvider__Group_3__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4813:1: ( ( ( rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_2 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4814:1: ( ( rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_2 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4814:1: ( ( rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_2 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4815:1: ( rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_2 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionProviderAccess().getLabelSpecificationsAssignment_3_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4816:1: ( rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_2 )*
+ loop45:
+ do {
+ int alt45=2;
+ int LA45_0 = input.LA(1);
+
+ if ( (LA45_0==RULE_ID||LA45_0==29||LA45_0==77) ) {
+ alt45=1;
+ }
+
+
+ switch (alt45) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4816:2: rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_2
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_2_in_rule__PropertyDescriptionProvider__Group_3__2__Impl10206);
+ rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop45;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionProviderAccess().getLabelSpecificationsAssignment_3_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__Group_3__2__Impl"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__Group_3__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4826:1: rule__PropertyDescriptionProvider__Group_3__3 : rule__PropertyDescriptionProvider__Group_3__3__Impl ;
+ public final void rule__PropertyDescriptionProvider__Group_3__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4830:1: ( rule__PropertyDescriptionProvider__Group_3__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4831:2: rule__PropertyDescriptionProvider__Group_3__3__Impl
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionProvider__Group_3__3__Impl_in_rule__PropertyDescriptionProvider__Group_3__310237);
+ rule__PropertyDescriptionProvider__Group_3__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__Group_3__3"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__Group_3__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4837:1: rule__PropertyDescriptionProvider__Group_3__3__Impl : ( '}' ) ;
+ public final void rule__PropertyDescriptionProvider__Group_3__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4841:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4842:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4842:1: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4843:1: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionProviderAccess().getRightCurlyBracketKeyword_3_3());
+ }
+ match(input,50,FOLLOW_50_in_rule__PropertyDescriptionProvider__Group_3__3__Impl10265); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionProviderAccess().getRightCurlyBracketKeyword_3_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__Group_3__3__Impl"
+
+
+ // $ANTLR start "rule__PropertyDescriptionSpecification__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4864:1: rule__PropertyDescriptionSpecification__Group__0 : rule__PropertyDescriptionSpecification__Group__0__Impl rule__PropertyDescriptionSpecification__Group__1 ;
+ public final void rule__PropertyDescriptionSpecification__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4868:1: ( rule__PropertyDescriptionSpecification__Group__0__Impl rule__PropertyDescriptionSpecification__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4869:2: rule__PropertyDescriptionSpecification__Group__0__Impl rule__PropertyDescriptionSpecification__Group__1
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionSpecification__Group__0__Impl_in_rule__PropertyDescriptionSpecification__Group__010304);
+ rule__PropertyDescriptionSpecification__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__PropertyDescriptionSpecification__Group__1_in_rule__PropertyDescriptionSpecification__Group__010307);
+ rule__PropertyDescriptionSpecification__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionSpecification__Group__0"
+
+
+ // $ANTLR start "rule__PropertyDescriptionSpecification__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4876:1: rule__PropertyDescriptionSpecification__Group__0__Impl : ( ( rule__PropertyDescriptionSpecification__ParameterTypeAssignment_0 ) ) ;
+ public final void rule__PropertyDescriptionSpecification__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4880:1: ( ( ( rule__PropertyDescriptionSpecification__ParameterTypeAssignment_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4881:1: ( ( rule__PropertyDescriptionSpecification__ParameterTypeAssignment_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4881:1: ( ( rule__PropertyDescriptionSpecification__ParameterTypeAssignment_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4882:1: ( rule__PropertyDescriptionSpecification__ParameterTypeAssignment_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getParameterTypeAssignment_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4883:1: ( rule__PropertyDescriptionSpecification__ParameterTypeAssignment_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4883:2: rule__PropertyDescriptionSpecification__ParameterTypeAssignment_0
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionSpecification__ParameterTypeAssignment_0_in_rule__PropertyDescriptionSpecification__Group__0__Impl10334);
+ rule__PropertyDescriptionSpecification__ParameterTypeAssignment_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getParameterTypeAssignment_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionSpecification__Group__0__Impl"
+
+
+ // $ANTLR start "rule__PropertyDescriptionSpecification__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4893:1: rule__PropertyDescriptionSpecification__Group__1 : rule__PropertyDescriptionSpecification__Group__1__Impl rule__PropertyDescriptionSpecification__Group__2 ;
+ public final void rule__PropertyDescriptionSpecification__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4897:1: ( rule__PropertyDescriptionSpecification__Group__1__Impl rule__PropertyDescriptionSpecification__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4898:2: rule__PropertyDescriptionSpecification__Group__1__Impl rule__PropertyDescriptionSpecification__Group__2
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionSpecification__Group__1__Impl_in_rule__PropertyDescriptionSpecification__Group__110364);
+ rule__PropertyDescriptionSpecification__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__PropertyDescriptionSpecification__Group__2_in_rule__PropertyDescriptionSpecification__Group__110367);
+ rule__PropertyDescriptionSpecification__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionSpecification__Group__1"
+
+
+ // $ANTLR start "rule__PropertyDescriptionSpecification__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4905:1: rule__PropertyDescriptionSpecification__Group__1__Impl : ( ':' ) ;
+ public final void rule__PropertyDescriptionSpecification__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4909:1: ( ( ':' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4910:1: ( ':' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4910:1: ( ':' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4911:1: ':'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getColonKeyword_1());
+ }
+ match(input,56,FOLLOW_56_in_rule__PropertyDescriptionSpecification__Group__1__Impl10395); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getColonKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionSpecification__Group__1__Impl"
+
+
+ // $ANTLR start "rule__PropertyDescriptionSpecification__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4924:1: rule__PropertyDescriptionSpecification__Group__2 : rule__PropertyDescriptionSpecification__Group__2__Impl rule__PropertyDescriptionSpecification__Group__3 ;
+ public final void rule__PropertyDescriptionSpecification__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4928:1: ( rule__PropertyDescriptionSpecification__Group__2__Impl rule__PropertyDescriptionSpecification__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4929:2: rule__PropertyDescriptionSpecification__Group__2__Impl rule__PropertyDescriptionSpecification__Group__3
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionSpecification__Group__2__Impl_in_rule__PropertyDescriptionSpecification__Group__210426);
+ rule__PropertyDescriptionSpecification__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__PropertyDescriptionSpecification__Group__3_in_rule__PropertyDescriptionSpecification__Group__210429);
+ rule__PropertyDescriptionSpecification__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionSpecification__Group__2"
+
+
+ // $ANTLR start "rule__PropertyDescriptionSpecification__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4936:1: rule__PropertyDescriptionSpecification__Group__2__Impl : ( ( rule__PropertyDescriptionSpecification__FeatureAssignment_2 ) ) ;
+ public final void rule__PropertyDescriptionSpecification__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4940:1: ( ( ( rule__PropertyDescriptionSpecification__FeatureAssignment_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4941:1: ( ( rule__PropertyDescriptionSpecification__FeatureAssignment_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4941:1: ( ( rule__PropertyDescriptionSpecification__FeatureAssignment_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4942:1: ( rule__PropertyDescriptionSpecification__FeatureAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getFeatureAssignment_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4943:1: ( rule__PropertyDescriptionSpecification__FeatureAssignment_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4943:2: rule__PropertyDescriptionSpecification__FeatureAssignment_2
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionSpecification__FeatureAssignment_2_in_rule__PropertyDescriptionSpecification__Group__2__Impl10456);
+ rule__PropertyDescriptionSpecification__FeatureAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getFeatureAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionSpecification__Group__2__Impl"
+
+
+ // $ANTLR start "rule__PropertyDescriptionSpecification__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4953:1: rule__PropertyDescriptionSpecification__Group__3 : rule__PropertyDescriptionSpecification__Group__3__Impl rule__PropertyDescriptionSpecification__Group__4 ;
+ public final void rule__PropertyDescriptionSpecification__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4957:1: ( rule__PropertyDescriptionSpecification__Group__3__Impl rule__PropertyDescriptionSpecification__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4958:2: rule__PropertyDescriptionSpecification__Group__3__Impl rule__PropertyDescriptionSpecification__Group__4
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionSpecification__Group__3__Impl_in_rule__PropertyDescriptionSpecification__Group__310486);
+ rule__PropertyDescriptionSpecification__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__PropertyDescriptionSpecification__Group__4_in_rule__PropertyDescriptionSpecification__Group__310489);
+ rule__PropertyDescriptionSpecification__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionSpecification__Group__3"
+
+
+ // $ANTLR start "rule__PropertyDescriptionSpecification__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4965:1: rule__PropertyDescriptionSpecification__Group__3__Impl : ( '->' ) ;
+ public final void rule__PropertyDescriptionSpecification__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4969:1: ( ( '->' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4970:1: ( '->' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4970:1: ( '->' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4971:1: '->'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_3());
+ }
+ match(input,26,FOLLOW_26_in_rule__PropertyDescriptionSpecification__Group__3__Impl10517); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionSpecification__Group__3__Impl"
+
+
+ // $ANTLR start "rule__PropertyDescriptionSpecification__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4984:1: rule__PropertyDescriptionSpecification__Group__4 : rule__PropertyDescriptionSpecification__Group__4__Impl ;
+ public final void rule__PropertyDescriptionSpecification__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4988:1: ( rule__PropertyDescriptionSpecification__Group__4__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4989:2: rule__PropertyDescriptionSpecification__Group__4__Impl
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionSpecification__Group__4__Impl_in_rule__PropertyDescriptionSpecification__Group__410548);
+ rule__PropertyDescriptionSpecification__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionSpecification__Group__4"
+
+
+ // $ANTLR start "rule__PropertyDescriptionSpecification__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4995:1: rule__PropertyDescriptionSpecification__Group__4__Impl : ( ( rule__PropertyDescriptionSpecification__ExpressionAssignment_4 ) ) ;
+ public final void rule__PropertyDescriptionSpecification__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:4999:1: ( ( ( rule__PropertyDescriptionSpecification__ExpressionAssignment_4 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5000:1: ( ( rule__PropertyDescriptionSpecification__ExpressionAssignment_4 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5000:1: ( ( rule__PropertyDescriptionSpecification__ExpressionAssignment_4 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5001:1: ( rule__PropertyDescriptionSpecification__ExpressionAssignment_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getExpressionAssignment_4());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5002:1: ( rule__PropertyDescriptionSpecification__ExpressionAssignment_4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5002:2: rule__PropertyDescriptionSpecification__ExpressionAssignment_4
+ {
+ pushFollow(FOLLOW_rule__PropertyDescriptionSpecification__ExpressionAssignment_4_in_rule__PropertyDescriptionSpecification__Group__4__Impl10575);
+ rule__PropertyDescriptionSpecification__ExpressionAssignment_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getExpressionAssignment_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionSpecification__Group__4__Impl"
+
+
+ // $ANTLR start "rule__FeaturesProvider__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5022:1: rule__FeaturesProvider__Group__0 : rule__FeaturesProvider__Group__0__Impl rule__FeaturesProvider__Group__1 ;
+ public final void rule__FeaturesProvider__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5026:1: ( rule__FeaturesProvider__Group__0__Impl rule__FeaturesProvider__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5027:2: rule__FeaturesProvider__Group__0__Impl rule__FeaturesProvider__Group__1
+ {
+ pushFollow(FOLLOW_rule__FeaturesProvider__Group__0__Impl_in_rule__FeaturesProvider__Group__010615);
+ rule__FeaturesProvider__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FeaturesProvider__Group__1_in_rule__FeaturesProvider__Group__010618);
+ rule__FeaturesProvider__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__Group__0"
+
+
+ // $ANTLR start "rule__FeaturesProvider__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5034:1: rule__FeaturesProvider__Group__0__Impl : ( () ) ;
+ public final void rule__FeaturesProvider__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5038:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5039:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5039:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5040:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeaturesProviderAccess().getFeaturesProviderAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5041:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5043:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeaturesProviderAccess().getFeaturesProviderAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__Group__0__Impl"
+
+
+ // $ANTLR start "rule__FeaturesProvider__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5053:1: rule__FeaturesProvider__Group__1 : rule__FeaturesProvider__Group__1__Impl rule__FeaturesProvider__Group__2 ;
+ public final void rule__FeaturesProvider__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5057:1: ( rule__FeaturesProvider__Group__1__Impl rule__FeaturesProvider__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5058:2: rule__FeaturesProvider__Group__1__Impl rule__FeaturesProvider__Group__2
+ {
+ pushFollow(FOLLOW_rule__FeaturesProvider__Group__1__Impl_in_rule__FeaturesProvider__Group__110676);
+ rule__FeaturesProvider__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FeaturesProvider__Group__2_in_rule__FeaturesProvider__Group__110679);
+ rule__FeaturesProvider__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__Group__1"
+
+
+ // $ANTLR start "rule__FeaturesProvider__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5065:1: rule__FeaturesProvider__Group__1__Impl : ( 'featuresProvider' ) ;
+ public final void rule__FeaturesProvider__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5069:1: ( ( 'featuresProvider' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5070:1: ( 'featuresProvider' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5070:1: ( 'featuresProvider' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5071:1: 'featuresProvider'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeaturesProviderAccess().getFeaturesProviderKeyword_1());
+ }
+ match(input,57,FOLLOW_57_in_rule__FeaturesProvider__Group__1__Impl10707); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeaturesProviderAccess().getFeaturesProviderKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__Group__1__Impl"
+
+
+ // $ANTLR start "rule__FeaturesProvider__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5084:1: rule__FeaturesProvider__Group__2 : rule__FeaturesProvider__Group__2__Impl rule__FeaturesProvider__Group__3 ;
+ public final void rule__FeaturesProvider__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5088:1: ( rule__FeaturesProvider__Group__2__Impl rule__FeaturesProvider__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5089:2: rule__FeaturesProvider__Group__2__Impl rule__FeaturesProvider__Group__3
+ {
+ pushFollow(FOLLOW_rule__FeaturesProvider__Group__2__Impl_in_rule__FeaturesProvider__Group__210738);
+ rule__FeaturesProvider__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FeaturesProvider__Group__3_in_rule__FeaturesProvider__Group__210741);
+ rule__FeaturesProvider__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__Group__2"
+
+
+ // $ANTLR start "rule__FeaturesProvider__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5096:1: rule__FeaturesProvider__Group__2__Impl : ( '{' ) ;
+ public final void rule__FeaturesProvider__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5100:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5101:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5101:1: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5102:1: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeaturesProviderAccess().getLeftCurlyBracketKeyword_2());
+ }
+ match(input,49,FOLLOW_49_in_rule__FeaturesProvider__Group__2__Impl10769); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeaturesProviderAccess().getLeftCurlyBracketKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__Group__2__Impl"
+
+
+ // $ANTLR start "rule__FeaturesProvider__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5115:1: rule__FeaturesProvider__Group__3 : rule__FeaturesProvider__Group__3__Impl rule__FeaturesProvider__Group__4 ;
+ public final void rule__FeaturesProvider__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5119:1: ( rule__FeaturesProvider__Group__3__Impl rule__FeaturesProvider__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5120:2: rule__FeaturesProvider__Group__3__Impl rule__FeaturesProvider__Group__4
+ {
+ pushFollow(FOLLOW_rule__FeaturesProvider__Group__3__Impl_in_rule__FeaturesProvider__Group__310800);
+ rule__FeaturesProvider__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FeaturesProvider__Group__4_in_rule__FeaturesProvider__Group__310803);
+ rule__FeaturesProvider__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__Group__3"
+
+
+ // $ANTLR start "rule__FeaturesProvider__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5127:1: rule__FeaturesProvider__Group__3__Impl : ( ( rule__FeaturesProvider__Group_3__0 )? ) ;
+ public final void rule__FeaturesProvider__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5131:1: ( ( ( rule__FeaturesProvider__Group_3__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5132:1: ( ( rule__FeaturesProvider__Group_3__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5132:1: ( ( rule__FeaturesProvider__Group_3__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5133:1: ( rule__FeaturesProvider__Group_3__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeaturesProviderAccess().getGroup_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5134:1: ( rule__FeaturesProvider__Group_3__0 )?
+ int alt46=2;
+ int LA46_0 = input.LA(1);
+
+ if ( (LA46_0==58) ) {
+ alt46=1;
+ }
+ switch (alt46) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5134:2: rule__FeaturesProvider__Group_3__0
+ {
+ pushFollow(FOLLOW_rule__FeaturesProvider__Group_3__0_in_rule__FeaturesProvider__Group__3__Impl10830);
+ rule__FeaturesProvider__Group_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeaturesProviderAccess().getGroup_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__Group__3__Impl"
+
+
+ // $ANTLR start "rule__FeaturesProvider__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5144:1: rule__FeaturesProvider__Group__4 : rule__FeaturesProvider__Group__4__Impl ;
+ public final void rule__FeaturesProvider__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5148:1: ( rule__FeaturesProvider__Group__4__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5149:2: rule__FeaturesProvider__Group__4__Impl
+ {
+ pushFollow(FOLLOW_rule__FeaturesProvider__Group__4__Impl_in_rule__FeaturesProvider__Group__410861);
+ rule__FeaturesProvider__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__Group__4"
+
+
+ // $ANTLR start "rule__FeaturesProvider__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5155:1: rule__FeaturesProvider__Group__4__Impl : ( '}' ) ;
+ public final void rule__FeaturesProvider__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5159:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5160:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5160:1: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5161:1: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeaturesProviderAccess().getRightCurlyBracketKeyword_4());
+ }
+ match(input,50,FOLLOW_50_in_rule__FeaturesProvider__Group__4__Impl10889); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeaturesProviderAccess().getRightCurlyBracketKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__Group__4__Impl"
+
+
+ // $ANTLR start "rule__FeaturesProvider__Group_3__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5184:1: rule__FeaturesProvider__Group_3__0 : rule__FeaturesProvider__Group_3__0__Impl rule__FeaturesProvider__Group_3__1 ;
+ public final void rule__FeaturesProvider__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5188:1: ( rule__FeaturesProvider__Group_3__0__Impl rule__FeaturesProvider__Group_3__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5189:2: rule__FeaturesProvider__Group_3__0__Impl rule__FeaturesProvider__Group_3__1
+ {
+ pushFollow(FOLLOW_rule__FeaturesProvider__Group_3__0__Impl_in_rule__FeaturesProvider__Group_3__010930);
+ rule__FeaturesProvider__Group_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FeaturesProvider__Group_3__1_in_rule__FeaturesProvider__Group_3__010933);
+ rule__FeaturesProvider__Group_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__Group_3__0"
+
+
+ // $ANTLR start "rule__FeaturesProvider__Group_3__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5196:1: rule__FeaturesProvider__Group_3__0__Impl : ( 'features' ) ;
+ public final void rule__FeaturesProvider__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5200:1: ( ( 'features' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5201:1: ( 'features' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5201:1: ( 'features' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5202:1: 'features'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeaturesProviderAccess().getFeaturesKeyword_3_0());
+ }
+ match(input,58,FOLLOW_58_in_rule__FeaturesProvider__Group_3__0__Impl10961); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeaturesProviderAccess().getFeaturesKeyword_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__FeaturesProvider__Group_3__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5215:1: rule__FeaturesProvider__Group_3__1 : rule__FeaturesProvider__Group_3__1__Impl rule__FeaturesProvider__Group_3__2 ;
+ public final void rule__FeaturesProvider__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5219:1: ( rule__FeaturesProvider__Group_3__1__Impl rule__FeaturesProvider__Group_3__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5220:2: rule__FeaturesProvider__Group_3__1__Impl rule__FeaturesProvider__Group_3__2
+ {
+ pushFollow(FOLLOW_rule__FeaturesProvider__Group_3__1__Impl_in_rule__FeaturesProvider__Group_3__110992);
+ rule__FeaturesProvider__Group_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FeaturesProvider__Group_3__2_in_rule__FeaturesProvider__Group_3__110995);
+ rule__FeaturesProvider__Group_3__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__Group_3__1"
+
+
+ // $ANTLR start "rule__FeaturesProvider__Group_3__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5227:1: rule__FeaturesProvider__Group_3__1__Impl : ( '{' ) ;
+ public final void rule__FeaturesProvider__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5231:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5232:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5232:1: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5233:1: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeaturesProviderAccess().getLeftCurlyBracketKeyword_3_1());
+ }
+ match(input,49,FOLLOW_49_in_rule__FeaturesProvider__Group_3__1__Impl11023); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeaturesProviderAccess().getLeftCurlyBracketKeyword_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__FeaturesProvider__Group_3__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5246:1: rule__FeaturesProvider__Group_3__2 : rule__FeaturesProvider__Group_3__2__Impl rule__FeaturesProvider__Group_3__3 ;
+ public final void rule__FeaturesProvider__Group_3__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5250:1: ( rule__FeaturesProvider__Group_3__2__Impl rule__FeaturesProvider__Group_3__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5251:2: rule__FeaturesProvider__Group_3__2__Impl rule__FeaturesProvider__Group_3__3
+ {
+ pushFollow(FOLLOW_rule__FeaturesProvider__Group_3__2__Impl_in_rule__FeaturesProvider__Group_3__211054);
+ rule__FeaturesProvider__Group_3__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FeaturesProvider__Group_3__3_in_rule__FeaturesProvider__Group_3__211057);
+ rule__FeaturesProvider__Group_3__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__Group_3__2"
+
+
+ // $ANTLR start "rule__FeaturesProvider__Group_3__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5258:1: rule__FeaturesProvider__Group_3__2__Impl : ( ( rule__FeaturesProvider__FeatureSpecificationsAssignment_3_2 )* ) ;
+ public final void rule__FeaturesProvider__Group_3__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5262:1: ( ( ( rule__FeaturesProvider__FeatureSpecificationsAssignment_3_2 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5263:1: ( ( rule__FeaturesProvider__FeatureSpecificationsAssignment_3_2 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5263:1: ( ( rule__FeaturesProvider__FeatureSpecificationsAssignment_3_2 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5264:1: ( rule__FeaturesProvider__FeatureSpecificationsAssignment_3_2 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeaturesProviderAccess().getFeatureSpecificationsAssignment_3_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5265:1: ( rule__FeaturesProvider__FeatureSpecificationsAssignment_3_2 )*
+ loop47:
+ do {
+ int alt47=2;
+ int LA47_0 = input.LA(1);
+
+ if ( (LA47_0==RULE_ID||LA47_0==29||LA47_0==77) ) {
+ alt47=1;
+ }
+
+
+ switch (alt47) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5265:2: rule__FeaturesProvider__FeatureSpecificationsAssignment_3_2
+ {
+ pushFollow(FOLLOW_rule__FeaturesProvider__FeatureSpecificationsAssignment_3_2_in_rule__FeaturesProvider__Group_3__2__Impl11084);
+ rule__FeaturesProvider__FeatureSpecificationsAssignment_3_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop47;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeaturesProviderAccess().getFeatureSpecificationsAssignment_3_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__Group_3__2__Impl"
+
+
+ // $ANTLR start "rule__FeaturesProvider__Group_3__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5275:1: rule__FeaturesProvider__Group_3__3 : rule__FeaturesProvider__Group_3__3__Impl ;
+ public final void rule__FeaturesProvider__Group_3__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5279:1: ( rule__FeaturesProvider__Group_3__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5280:2: rule__FeaturesProvider__Group_3__3__Impl
+ {
+ pushFollow(FOLLOW_rule__FeaturesProvider__Group_3__3__Impl_in_rule__FeaturesProvider__Group_3__311115);
+ rule__FeaturesProvider__Group_3__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__Group_3__3"
+
+
+ // $ANTLR start "rule__FeaturesProvider__Group_3__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5286:1: rule__FeaturesProvider__Group_3__3__Impl : ( '}' ) ;
+ public final void rule__FeaturesProvider__Group_3__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5290:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5291:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5291:1: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5292:1: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeaturesProviderAccess().getRightCurlyBracketKeyword_3_3());
+ }
+ match(input,50,FOLLOW_50_in_rule__FeaturesProvider__Group_3__3__Impl11143); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeaturesProviderAccess().getRightCurlyBracketKeyword_3_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__Group_3__3__Impl"
+
+
+ // $ANTLR start "rule__FeatureSpecification__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5313:1: rule__FeatureSpecification__Group__0 : rule__FeatureSpecification__Group__0__Impl rule__FeatureSpecification__Group__1 ;
+ public final void rule__FeatureSpecification__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5317:1: ( rule__FeatureSpecification__Group__0__Impl rule__FeatureSpecification__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5318:2: rule__FeatureSpecification__Group__0__Impl rule__FeatureSpecification__Group__1
+ {
+ pushFollow(FOLLOW_rule__FeatureSpecification__Group__0__Impl_in_rule__FeatureSpecification__Group__011182);
+ rule__FeatureSpecification__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FeatureSpecification__Group__1_in_rule__FeatureSpecification__Group__011185);
+ rule__FeatureSpecification__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeatureSpecification__Group__0"
+
+
+ // $ANTLR start "rule__FeatureSpecification__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5325:1: rule__FeatureSpecification__Group__0__Impl : ( ( rule__FeatureSpecification__ParameterTypeAssignment_0 ) ) ;
+ public final void rule__FeatureSpecification__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5329:1: ( ( ( rule__FeatureSpecification__ParameterTypeAssignment_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5330:1: ( ( rule__FeatureSpecification__ParameterTypeAssignment_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5330:1: ( ( rule__FeatureSpecification__ParameterTypeAssignment_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5331:1: ( rule__FeatureSpecification__ParameterTypeAssignment_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureSpecificationAccess().getParameterTypeAssignment_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5332:1: ( rule__FeatureSpecification__ParameterTypeAssignment_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5332:2: rule__FeatureSpecification__ParameterTypeAssignment_0
+ {
+ pushFollow(FOLLOW_rule__FeatureSpecification__ParameterTypeAssignment_0_in_rule__FeatureSpecification__Group__0__Impl11212);
+ rule__FeatureSpecification__ParameterTypeAssignment_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureSpecificationAccess().getParameterTypeAssignment_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeatureSpecification__Group__0__Impl"
+
+
+ // $ANTLR start "rule__FeatureSpecification__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5342:1: rule__FeatureSpecification__Group__1 : rule__FeatureSpecification__Group__1__Impl rule__FeatureSpecification__Group__2 ;
+ public final void rule__FeatureSpecification__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5346:1: ( rule__FeatureSpecification__Group__1__Impl rule__FeatureSpecification__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5347:2: rule__FeatureSpecification__Group__1__Impl rule__FeatureSpecification__Group__2
+ {
+ pushFollow(FOLLOW_rule__FeatureSpecification__Group__1__Impl_in_rule__FeatureSpecification__Group__111242);
+ rule__FeatureSpecification__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FeatureSpecification__Group__2_in_rule__FeatureSpecification__Group__111245);
+ rule__FeatureSpecification__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeatureSpecification__Group__1"
+
+
+ // $ANTLR start "rule__FeatureSpecification__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5354:1: rule__FeatureSpecification__Group__1__Impl : ( '->' ) ;
+ public final void rule__FeatureSpecification__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5358:1: ( ( '->' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5359:1: ( '->' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5359:1: ( '->' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5360:1: '->'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_1());
+ }
+ match(input,26,FOLLOW_26_in_rule__FeatureSpecification__Group__1__Impl11273); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeatureSpecification__Group__1__Impl"
+
+
+ // $ANTLR start "rule__FeatureSpecification__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5373:1: rule__FeatureSpecification__Group__2 : rule__FeatureSpecification__Group__2__Impl rule__FeatureSpecification__Group__3 ;
+ public final void rule__FeatureSpecification__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5377:1: ( rule__FeatureSpecification__Group__2__Impl rule__FeatureSpecification__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5378:2: rule__FeatureSpecification__Group__2__Impl rule__FeatureSpecification__Group__3
+ {
+ pushFollow(FOLLOW_rule__FeatureSpecification__Group__2__Impl_in_rule__FeatureSpecification__Group__211304);
+ rule__FeatureSpecification__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FeatureSpecification__Group__3_in_rule__FeatureSpecification__Group__211307);
+ rule__FeatureSpecification__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeatureSpecification__Group__2"
+
+
+ // $ANTLR start "rule__FeatureSpecification__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5385:1: rule__FeatureSpecification__Group__2__Impl : ( ( rule__FeatureSpecification__FeaturesAssignment_2 ) ) ;
+ public final void rule__FeatureSpecification__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5389:1: ( ( ( rule__FeatureSpecification__FeaturesAssignment_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5390:1: ( ( rule__FeatureSpecification__FeaturesAssignment_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5390:1: ( ( rule__FeatureSpecification__FeaturesAssignment_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5391:1: ( rule__FeatureSpecification__FeaturesAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureSpecificationAccess().getFeaturesAssignment_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5392:1: ( rule__FeatureSpecification__FeaturesAssignment_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5392:2: rule__FeatureSpecification__FeaturesAssignment_2
+ {
+ pushFollow(FOLLOW_rule__FeatureSpecification__FeaturesAssignment_2_in_rule__FeatureSpecification__Group__2__Impl11334);
+ rule__FeatureSpecification__FeaturesAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureSpecificationAccess().getFeaturesAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeatureSpecification__Group__2__Impl"
+
+
+ // $ANTLR start "rule__FeatureSpecification__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5402:1: rule__FeatureSpecification__Group__3 : rule__FeatureSpecification__Group__3__Impl ;
+ public final void rule__FeatureSpecification__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5406:1: ( rule__FeatureSpecification__Group__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5407:2: rule__FeatureSpecification__Group__3__Impl
+ {
+ pushFollow(FOLLOW_rule__FeatureSpecification__Group__3__Impl_in_rule__FeatureSpecification__Group__311364);
+ rule__FeatureSpecification__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeatureSpecification__Group__3"
+
+
+ // $ANTLR start "rule__FeatureSpecification__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5413:1: rule__FeatureSpecification__Group__3__Impl : ( ( rule__FeatureSpecification__Group_3__0 )* ) ;
+ public final void rule__FeatureSpecification__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5417:1: ( ( ( rule__FeatureSpecification__Group_3__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5418:1: ( ( rule__FeatureSpecification__Group_3__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5418:1: ( ( rule__FeatureSpecification__Group_3__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5419:1: ( rule__FeatureSpecification__Group_3__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureSpecificationAccess().getGroup_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5420:1: ( rule__FeatureSpecification__Group_3__0 )*
+ loop48:
+ do {
+ int alt48=2;
+ int LA48_0 = input.LA(1);
+
+ if ( (LA48_0==59) ) {
+ alt48=1;
+ }
+
+
+ switch (alt48) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5420:2: rule__FeatureSpecification__Group_3__0
+ {
+ pushFollow(FOLLOW_rule__FeatureSpecification__Group_3__0_in_rule__FeatureSpecification__Group__3__Impl11391);
+ rule__FeatureSpecification__Group_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop48;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureSpecificationAccess().getGroup_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeatureSpecification__Group__3__Impl"
+
+
+ // $ANTLR start "rule__FeatureSpecification__Group_3__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5438:1: rule__FeatureSpecification__Group_3__0 : rule__FeatureSpecification__Group_3__0__Impl rule__FeatureSpecification__Group_3__1 ;
+ public final void rule__FeatureSpecification__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5442:1: ( rule__FeatureSpecification__Group_3__0__Impl rule__FeatureSpecification__Group_3__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5443:2: rule__FeatureSpecification__Group_3__0__Impl rule__FeatureSpecification__Group_3__1
+ {
+ pushFollow(FOLLOW_rule__FeatureSpecification__Group_3__0__Impl_in_rule__FeatureSpecification__Group_3__011430);
+ rule__FeatureSpecification__Group_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FeatureSpecification__Group_3__1_in_rule__FeatureSpecification__Group_3__011433);
+ rule__FeatureSpecification__Group_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeatureSpecification__Group_3__0"
+
+
+ // $ANTLR start "rule__FeatureSpecification__Group_3__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5450:1: rule__FeatureSpecification__Group_3__0__Impl : ( ',' ) ;
+ public final void rule__FeatureSpecification__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5454:1: ( ( ',' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5455:1: ( ',' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5455:1: ( ',' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5456:1: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureSpecificationAccess().getCommaKeyword_3_0());
+ }
+ match(input,59,FOLLOW_59_in_rule__FeatureSpecification__Group_3__0__Impl11461); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureSpecificationAccess().getCommaKeyword_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeatureSpecification__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__FeatureSpecification__Group_3__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5469:1: rule__FeatureSpecification__Group_3__1 : rule__FeatureSpecification__Group_3__1__Impl ;
+ public final void rule__FeatureSpecification__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5473:1: ( rule__FeatureSpecification__Group_3__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5474:2: rule__FeatureSpecification__Group_3__1__Impl
+ {
+ pushFollow(FOLLOW_rule__FeatureSpecification__Group_3__1__Impl_in_rule__FeatureSpecification__Group_3__111492);
+ rule__FeatureSpecification__Group_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeatureSpecification__Group_3__1"
+
+
+ // $ANTLR start "rule__FeatureSpecification__Group_3__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5480:1: rule__FeatureSpecification__Group_3__1__Impl : ( ( rule__FeatureSpecification__FeaturesAssignment_3_1 ) ) ;
+ public final void rule__FeatureSpecification__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5484:1: ( ( ( rule__FeatureSpecification__FeaturesAssignment_3_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5485:1: ( ( rule__FeatureSpecification__FeaturesAssignment_3_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5485:1: ( ( rule__FeatureSpecification__FeaturesAssignment_3_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5486:1: ( rule__FeatureSpecification__FeaturesAssignment_3_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureSpecificationAccess().getFeaturesAssignment_3_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5487:1: ( rule__FeatureSpecification__FeaturesAssignment_3_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5487:2: rule__FeatureSpecification__FeaturesAssignment_3_1
+ {
+ pushFollow(FOLLOW_rule__FeatureSpecification__FeaturesAssignment_3_1_in_rule__FeatureSpecification__Group_3__1__Impl11519);
+ rule__FeatureSpecification__FeaturesAssignment_3_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureSpecificationAccess().getFeaturesAssignment_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeatureSpecification__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__FormControlFactory__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5501:1: rule__FormControlFactory__Group__0 : rule__FormControlFactory__Group__0__Impl rule__FormControlFactory__Group__1 ;
+ public final void rule__FormControlFactory__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5505:1: ( rule__FormControlFactory__Group__0__Impl rule__FormControlFactory__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5506:2: rule__FormControlFactory__Group__0__Impl rule__FormControlFactory__Group__1
+ {
+ pushFollow(FOLLOW_rule__FormControlFactory__Group__0__Impl_in_rule__FormControlFactory__Group__011553);
+ rule__FormControlFactory__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FormControlFactory__Group__1_in_rule__FormControlFactory__Group__011556);
+ rule__FormControlFactory__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__Group__0"
+
+
+ // $ANTLR start "rule__FormControlFactory__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5513:1: rule__FormControlFactory__Group__0__Impl : ( () ) ;
+ public final void rule__FormControlFactory__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5517:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5518:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5518:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5519:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlFactoryAccess().getFormControlFactoryAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5520:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5522:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlFactoryAccess().getFormControlFactoryAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__Group__0__Impl"
+
+
+ // $ANTLR start "rule__FormControlFactory__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5532:1: rule__FormControlFactory__Group__1 : rule__FormControlFactory__Group__1__Impl rule__FormControlFactory__Group__2 ;
+ public final void rule__FormControlFactory__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5536:1: ( rule__FormControlFactory__Group__1__Impl rule__FormControlFactory__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5537:2: rule__FormControlFactory__Group__1__Impl rule__FormControlFactory__Group__2
+ {
+ pushFollow(FOLLOW_rule__FormControlFactory__Group__1__Impl_in_rule__FormControlFactory__Group__111614);
+ rule__FormControlFactory__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FormControlFactory__Group__2_in_rule__FormControlFactory__Group__111617);
+ rule__FormControlFactory__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__Group__1"
+
+
+ // $ANTLR start "rule__FormControlFactory__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5544:1: rule__FormControlFactory__Group__1__Impl : ( 'formControlFactory' ) ;
+ public final void rule__FormControlFactory__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5548:1: ( ( 'formControlFactory' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5549:1: ( 'formControlFactory' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5549:1: ( 'formControlFactory' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5550:1: 'formControlFactory'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlFactoryAccess().getFormControlFactoryKeyword_1());
+ }
+ match(input,60,FOLLOW_60_in_rule__FormControlFactory__Group__1__Impl11645); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlFactoryAccess().getFormControlFactoryKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__Group__1__Impl"
+
+
+ // $ANTLR start "rule__FormControlFactory__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5563:1: rule__FormControlFactory__Group__2 : rule__FormControlFactory__Group__2__Impl rule__FormControlFactory__Group__3 ;
+ public final void rule__FormControlFactory__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5567:1: ( rule__FormControlFactory__Group__2__Impl rule__FormControlFactory__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5568:2: rule__FormControlFactory__Group__2__Impl rule__FormControlFactory__Group__3
+ {
+ pushFollow(FOLLOW_rule__FormControlFactory__Group__2__Impl_in_rule__FormControlFactory__Group__211676);
+ rule__FormControlFactory__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FormControlFactory__Group__3_in_rule__FormControlFactory__Group__211679);
+ rule__FormControlFactory__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__Group__2"
+
+
+ // $ANTLR start "rule__FormControlFactory__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5575:1: rule__FormControlFactory__Group__2__Impl : ( '{' ) ;
+ public final void rule__FormControlFactory__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5579:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5580:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5580:1: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5581:1: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlFactoryAccess().getLeftCurlyBracketKeyword_2());
+ }
+ match(input,49,FOLLOW_49_in_rule__FormControlFactory__Group__2__Impl11707); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlFactoryAccess().getLeftCurlyBracketKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__Group__2__Impl"
+
+
+ // $ANTLR start "rule__FormControlFactory__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5594:1: rule__FormControlFactory__Group__3 : rule__FormControlFactory__Group__3__Impl rule__FormControlFactory__Group__4 ;
+ public final void rule__FormControlFactory__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5598:1: ( rule__FormControlFactory__Group__3__Impl rule__FormControlFactory__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5599:2: rule__FormControlFactory__Group__3__Impl rule__FormControlFactory__Group__4
+ {
+ pushFollow(FOLLOW_rule__FormControlFactory__Group__3__Impl_in_rule__FormControlFactory__Group__311738);
+ rule__FormControlFactory__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FormControlFactory__Group__4_in_rule__FormControlFactory__Group__311741);
+ rule__FormControlFactory__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__Group__3"
+
+
+ // $ANTLR start "rule__FormControlFactory__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5606:1: rule__FormControlFactory__Group__3__Impl : ( ( rule__FormControlFactory__Group_3__0 )? ) ;
+ public final void rule__FormControlFactory__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5610:1: ( ( ( rule__FormControlFactory__Group_3__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5611:1: ( ( rule__FormControlFactory__Group_3__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5611:1: ( ( rule__FormControlFactory__Group_3__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5612:1: ( rule__FormControlFactory__Group_3__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlFactoryAccess().getGroup_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5613:1: ( rule__FormControlFactory__Group_3__0 )?
+ int alt49=2;
+ int LA49_0 = input.LA(1);
+
+ if ( (LA49_0==61) ) {
+ alt49=1;
+ }
+ switch (alt49) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5613:2: rule__FormControlFactory__Group_3__0
+ {
+ pushFollow(FOLLOW_rule__FormControlFactory__Group_3__0_in_rule__FormControlFactory__Group__3__Impl11768);
+ rule__FormControlFactory__Group_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlFactoryAccess().getGroup_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__Group__3__Impl"
+
+
+ // $ANTLR start "rule__FormControlFactory__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5623:1: rule__FormControlFactory__Group__4 : rule__FormControlFactory__Group__4__Impl ;
+ public final void rule__FormControlFactory__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5627:1: ( rule__FormControlFactory__Group__4__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5628:2: rule__FormControlFactory__Group__4__Impl
+ {
+ pushFollow(FOLLOW_rule__FormControlFactory__Group__4__Impl_in_rule__FormControlFactory__Group__411799);
+ rule__FormControlFactory__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__Group__4"
+
+
+ // $ANTLR start "rule__FormControlFactory__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5634:1: rule__FormControlFactory__Group__4__Impl : ( '}' ) ;
+ public final void rule__FormControlFactory__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5638:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5639:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5639:1: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5640:1: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlFactoryAccess().getRightCurlyBracketKeyword_4());
+ }
+ match(input,50,FOLLOW_50_in_rule__FormControlFactory__Group__4__Impl11827); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlFactoryAccess().getRightCurlyBracketKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__Group__4__Impl"
+
+
+ // $ANTLR start "rule__FormControlFactory__Group_3__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5663:1: rule__FormControlFactory__Group_3__0 : rule__FormControlFactory__Group_3__0__Impl rule__FormControlFactory__Group_3__1 ;
+ public final void rule__FormControlFactory__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5667:1: ( rule__FormControlFactory__Group_3__0__Impl rule__FormControlFactory__Group_3__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5668:2: rule__FormControlFactory__Group_3__0__Impl rule__FormControlFactory__Group_3__1
+ {
+ pushFollow(FOLLOW_rule__FormControlFactory__Group_3__0__Impl_in_rule__FormControlFactory__Group_3__011868);
+ rule__FormControlFactory__Group_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FormControlFactory__Group_3__1_in_rule__FormControlFactory__Group_3__011871);
+ rule__FormControlFactory__Group_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__Group_3__0"
+
+
+ // $ANTLR start "rule__FormControlFactory__Group_3__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5675:1: rule__FormControlFactory__Group_3__0__Impl : ( 'control' ) ;
+ public final void rule__FormControlFactory__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5679:1: ( ( 'control' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5680:1: ( 'control' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5680:1: ( 'control' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5681:1: 'control'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlFactoryAccess().getControlKeyword_3_0());
+ }
+ match(input,61,FOLLOW_61_in_rule__FormControlFactory__Group_3__0__Impl11899); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlFactoryAccess().getControlKeyword_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__FormControlFactory__Group_3__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5694:1: rule__FormControlFactory__Group_3__1 : rule__FormControlFactory__Group_3__1__Impl rule__FormControlFactory__Group_3__2 ;
+ public final void rule__FormControlFactory__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5698:1: ( rule__FormControlFactory__Group_3__1__Impl rule__FormControlFactory__Group_3__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5699:2: rule__FormControlFactory__Group_3__1__Impl rule__FormControlFactory__Group_3__2
+ {
+ pushFollow(FOLLOW_rule__FormControlFactory__Group_3__1__Impl_in_rule__FormControlFactory__Group_3__111930);
+ rule__FormControlFactory__Group_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FormControlFactory__Group_3__2_in_rule__FormControlFactory__Group_3__111933);
+ rule__FormControlFactory__Group_3__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__Group_3__1"
+
+
+ // $ANTLR start "rule__FormControlFactory__Group_3__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5706:1: rule__FormControlFactory__Group_3__1__Impl : ( '{' ) ;
+ public final void rule__FormControlFactory__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5710:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5711:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5711:1: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5712:1: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlFactoryAccess().getLeftCurlyBracketKeyword_3_1());
+ }
+ match(input,49,FOLLOW_49_in_rule__FormControlFactory__Group_3__1__Impl11961); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlFactoryAccess().getLeftCurlyBracketKeyword_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__FormControlFactory__Group_3__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5725:1: rule__FormControlFactory__Group_3__2 : rule__FormControlFactory__Group_3__2__Impl rule__FormControlFactory__Group_3__3 ;
+ public final void rule__FormControlFactory__Group_3__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5729:1: ( rule__FormControlFactory__Group_3__2__Impl rule__FormControlFactory__Group_3__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5730:2: rule__FormControlFactory__Group_3__2__Impl rule__FormControlFactory__Group_3__3
+ {
+ pushFollow(FOLLOW_rule__FormControlFactory__Group_3__2__Impl_in_rule__FormControlFactory__Group_3__211992);
+ rule__FormControlFactory__Group_3__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FormControlFactory__Group_3__3_in_rule__FormControlFactory__Group_3__211995);
+ rule__FormControlFactory__Group_3__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__Group_3__2"
+
+
+ // $ANTLR start "rule__FormControlFactory__Group_3__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5737:1: rule__FormControlFactory__Group_3__2__Impl : ( ( rule__FormControlFactory__ControlSpecificationsAssignment_3_2 )* ) ;
+ public final void rule__FormControlFactory__Group_3__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5741:1: ( ( ( rule__FormControlFactory__ControlSpecificationsAssignment_3_2 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5742:1: ( ( rule__FormControlFactory__ControlSpecificationsAssignment_3_2 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5742:1: ( ( rule__FormControlFactory__ControlSpecificationsAssignment_3_2 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5743:1: ( rule__FormControlFactory__ControlSpecificationsAssignment_3_2 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlFactoryAccess().getControlSpecificationsAssignment_3_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5744:1: ( rule__FormControlFactory__ControlSpecificationsAssignment_3_2 )*
+ loop50:
+ do {
+ int alt50=2;
+ int LA50_0 = input.LA(1);
+
+ if ( (LA50_0==RULE_ID||LA50_0==29||LA50_0==77) ) {
+ alt50=1;
+ }
+
+
+ switch (alt50) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5744:2: rule__FormControlFactory__ControlSpecificationsAssignment_3_2
+ {
+ pushFollow(FOLLOW_rule__FormControlFactory__ControlSpecificationsAssignment_3_2_in_rule__FormControlFactory__Group_3__2__Impl12022);
+ rule__FormControlFactory__ControlSpecificationsAssignment_3_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop50;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlFactoryAccess().getControlSpecificationsAssignment_3_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__Group_3__2__Impl"
+
+
+ // $ANTLR start "rule__FormControlFactory__Group_3__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5754:1: rule__FormControlFactory__Group_3__3 : rule__FormControlFactory__Group_3__3__Impl ;
+ public final void rule__FormControlFactory__Group_3__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5758:1: ( rule__FormControlFactory__Group_3__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5759:2: rule__FormControlFactory__Group_3__3__Impl
+ {
+ pushFollow(FOLLOW_rule__FormControlFactory__Group_3__3__Impl_in_rule__FormControlFactory__Group_3__312053);
+ rule__FormControlFactory__Group_3__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__Group_3__3"
+
+
+ // $ANTLR start "rule__FormControlFactory__Group_3__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5765:1: rule__FormControlFactory__Group_3__3__Impl : ( '}' ) ;
+ public final void rule__FormControlFactory__Group_3__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5769:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5770:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5770:1: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5771:1: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlFactoryAccess().getRightCurlyBracketKeyword_3_3());
+ }
+ match(input,50,FOLLOW_50_in_rule__FormControlFactory__Group_3__3__Impl12081); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlFactoryAccess().getRightCurlyBracketKeyword_3_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__Group_3__3__Impl"
+
+
+ // $ANTLR start "rule__FormControlSpecification__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5792:1: rule__FormControlSpecification__Group__0 : rule__FormControlSpecification__Group__0__Impl rule__FormControlSpecification__Group__1 ;
+ public final void rule__FormControlSpecification__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5796:1: ( rule__FormControlSpecification__Group__0__Impl rule__FormControlSpecification__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5797:2: rule__FormControlSpecification__Group__0__Impl rule__FormControlSpecification__Group__1
+ {
+ pushFollow(FOLLOW_rule__FormControlSpecification__Group__0__Impl_in_rule__FormControlSpecification__Group__012120);
+ rule__FormControlSpecification__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FormControlSpecification__Group__1_in_rule__FormControlSpecification__Group__012123);
+ rule__FormControlSpecification__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__Group__0"
+
+
+ // $ANTLR start "rule__FormControlSpecification__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5804:1: rule__FormControlSpecification__Group__0__Impl : ( ( rule__FormControlSpecification__ParameterTypeAssignment_0 ) ) ;
+ public final void rule__FormControlSpecification__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5808:1: ( ( ( rule__FormControlSpecification__ParameterTypeAssignment_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5809:1: ( ( rule__FormControlSpecification__ParameterTypeAssignment_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5809:1: ( ( rule__FormControlSpecification__ParameterTypeAssignment_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5810:1: ( rule__FormControlSpecification__ParameterTypeAssignment_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlSpecificationAccess().getParameterTypeAssignment_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5811:1: ( rule__FormControlSpecification__ParameterTypeAssignment_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5811:2: rule__FormControlSpecification__ParameterTypeAssignment_0
+ {
+ pushFollow(FOLLOW_rule__FormControlSpecification__ParameterTypeAssignment_0_in_rule__FormControlSpecification__Group__0__Impl12150);
+ rule__FormControlSpecification__ParameterTypeAssignment_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlSpecificationAccess().getParameterTypeAssignment_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__Group__0__Impl"
+
+
+ // $ANTLR start "rule__FormControlSpecification__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5821:1: rule__FormControlSpecification__Group__1 : rule__FormControlSpecification__Group__1__Impl rule__FormControlSpecification__Group__2 ;
+ public final void rule__FormControlSpecification__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5825:1: ( rule__FormControlSpecification__Group__1__Impl rule__FormControlSpecification__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5826:2: rule__FormControlSpecification__Group__1__Impl rule__FormControlSpecification__Group__2
+ {
+ pushFollow(FOLLOW_rule__FormControlSpecification__Group__1__Impl_in_rule__FormControlSpecification__Group__112180);
+ rule__FormControlSpecification__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FormControlSpecification__Group__2_in_rule__FormControlSpecification__Group__112183);
+ rule__FormControlSpecification__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__Group__1"
+
+
+ // $ANTLR start "rule__FormControlSpecification__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5833:1: rule__FormControlSpecification__Group__1__Impl : ( ':' ) ;
+ public final void rule__FormControlSpecification__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5837:1: ( ( ':' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5838:1: ( ':' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5838:1: ( ':' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5839:1: ':'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlSpecificationAccess().getColonKeyword_1());
+ }
+ match(input,56,FOLLOW_56_in_rule__FormControlSpecification__Group__1__Impl12211); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlSpecificationAccess().getColonKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__Group__1__Impl"
+
+
+ // $ANTLR start "rule__FormControlSpecification__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5852:1: rule__FormControlSpecification__Group__2 : rule__FormControlSpecification__Group__2__Impl rule__FormControlSpecification__Group__3 ;
+ public final void rule__FormControlSpecification__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5856:1: ( rule__FormControlSpecification__Group__2__Impl rule__FormControlSpecification__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5857:2: rule__FormControlSpecification__Group__2__Impl rule__FormControlSpecification__Group__3
+ {
+ pushFollow(FOLLOW_rule__FormControlSpecification__Group__2__Impl_in_rule__FormControlSpecification__Group__212242);
+ rule__FormControlSpecification__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FormControlSpecification__Group__3_in_rule__FormControlSpecification__Group__212245);
+ rule__FormControlSpecification__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__Group__2"
+
+
+ // $ANTLR start "rule__FormControlSpecification__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5864:1: rule__FormControlSpecification__Group__2__Impl : ( ( rule__FormControlSpecification__FeatureAssignment_2 ) ) ;
+ public final void rule__FormControlSpecification__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5868:1: ( ( ( rule__FormControlSpecification__FeatureAssignment_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5869:1: ( ( rule__FormControlSpecification__FeatureAssignment_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5869:1: ( ( rule__FormControlSpecification__FeatureAssignment_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5870:1: ( rule__FormControlSpecification__FeatureAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlSpecificationAccess().getFeatureAssignment_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5871:1: ( rule__FormControlSpecification__FeatureAssignment_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5871:2: rule__FormControlSpecification__FeatureAssignment_2
+ {
+ pushFollow(FOLLOW_rule__FormControlSpecification__FeatureAssignment_2_in_rule__FormControlSpecification__Group__2__Impl12272);
+ rule__FormControlSpecification__FeatureAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlSpecificationAccess().getFeatureAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__Group__2__Impl"
+
+
+ // $ANTLR start "rule__FormControlSpecification__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5881:1: rule__FormControlSpecification__Group__3 : rule__FormControlSpecification__Group__3__Impl rule__FormControlSpecification__Group__4 ;
+ public final void rule__FormControlSpecification__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5885:1: ( rule__FormControlSpecification__Group__3__Impl rule__FormControlSpecification__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5886:2: rule__FormControlSpecification__Group__3__Impl rule__FormControlSpecification__Group__4
+ {
+ pushFollow(FOLLOW_rule__FormControlSpecification__Group__3__Impl_in_rule__FormControlSpecification__Group__312302);
+ rule__FormControlSpecification__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FormControlSpecification__Group__4_in_rule__FormControlSpecification__Group__312305);
+ rule__FormControlSpecification__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__Group__3"
+
+
+ // $ANTLR start "rule__FormControlSpecification__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5893:1: rule__FormControlSpecification__Group__3__Impl : ( '->' ) ;
+ public final void rule__FormControlSpecification__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5897:1: ( ( '->' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5898:1: ( '->' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5898:1: ( '->' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5899:1: '->'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_3());
+ }
+ match(input,26,FOLLOW_26_in_rule__FormControlSpecification__Group__3__Impl12333); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__Group__3__Impl"
+
+
+ // $ANTLR start "rule__FormControlSpecification__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5912:1: rule__FormControlSpecification__Group__4 : rule__FormControlSpecification__Group__4__Impl rule__FormControlSpecification__Group__5 ;
+ public final void rule__FormControlSpecification__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5916:1: ( rule__FormControlSpecification__Group__4__Impl rule__FormControlSpecification__Group__5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5917:2: rule__FormControlSpecification__Group__4__Impl rule__FormControlSpecification__Group__5
+ {
+ pushFollow(FOLLOW_rule__FormControlSpecification__Group__4__Impl_in_rule__FormControlSpecification__Group__412364);
+ rule__FormControlSpecification__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FormControlSpecification__Group__5_in_rule__FormControlSpecification__Group__412367);
+ rule__FormControlSpecification__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__Group__4"
+
+
+ // $ANTLR start "rule__FormControlSpecification__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5924:1: rule__FormControlSpecification__Group__4__Impl : ( ( rule__FormControlSpecification__ExpressionAssignment_4 ) ) ;
+ public final void rule__FormControlSpecification__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5928:1: ( ( ( rule__FormControlSpecification__ExpressionAssignment_4 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5929:1: ( ( rule__FormControlSpecification__ExpressionAssignment_4 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5929:1: ( ( rule__FormControlSpecification__ExpressionAssignment_4 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5930:1: ( rule__FormControlSpecification__ExpressionAssignment_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlSpecificationAccess().getExpressionAssignment_4());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5931:1: ( rule__FormControlSpecification__ExpressionAssignment_4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5931:2: rule__FormControlSpecification__ExpressionAssignment_4
+ {
+ pushFollow(FOLLOW_rule__FormControlSpecification__ExpressionAssignment_4_in_rule__FormControlSpecification__Group__4__Impl12394);
+ rule__FormControlSpecification__ExpressionAssignment_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlSpecificationAccess().getExpressionAssignment_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__Group__4__Impl"
+
+
+ // $ANTLR start "rule__FormControlSpecification__Group__5"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5941:1: rule__FormControlSpecification__Group__5 : rule__FormControlSpecification__Group__5__Impl ;
+ public final void rule__FormControlSpecification__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5945:1: ( rule__FormControlSpecification__Group__5__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5946:2: rule__FormControlSpecification__Group__5__Impl
+ {
+ pushFollow(FOLLOW_rule__FormControlSpecification__Group__5__Impl_in_rule__FormControlSpecification__Group__512424);
+ rule__FormControlSpecification__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__Group__5"
+
+
+ // $ANTLR start "rule__FormControlSpecification__Group__5__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5952:1: rule__FormControlSpecification__Group__5__Impl : ( ( rule__FormControlSpecification__Group_5__0 )? ) ;
+ public final void rule__FormControlSpecification__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5956:1: ( ( ( rule__FormControlSpecification__Group_5__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5957:1: ( ( rule__FormControlSpecification__Group_5__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5957:1: ( ( rule__FormControlSpecification__Group_5__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5958:1: ( rule__FormControlSpecification__Group_5__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlSpecificationAccess().getGroup_5());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5959:1: ( rule__FormControlSpecification__Group_5__0 )?
+ int alt51=2;
+ int LA51_0 = input.LA(1);
+
+ if ( (LA51_0==62) ) {
+ alt51=1;
+ }
+ switch (alt51) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5959:2: rule__FormControlSpecification__Group_5__0
+ {
+ pushFollow(FOLLOW_rule__FormControlSpecification__Group_5__0_in_rule__FormControlSpecification__Group__5__Impl12451);
+ rule__FormControlSpecification__Group_5__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlSpecificationAccess().getGroup_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__Group__5__Impl"
+
+
+ // $ANTLR start "rule__FormControlSpecification__Group_5__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5981:1: rule__FormControlSpecification__Group_5__0 : rule__FormControlSpecification__Group_5__0__Impl rule__FormControlSpecification__Group_5__1 ;
+ public final void rule__FormControlSpecification__Group_5__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5985:1: ( rule__FormControlSpecification__Group_5__0__Impl rule__FormControlSpecification__Group_5__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5986:2: rule__FormControlSpecification__Group_5__0__Impl rule__FormControlSpecification__Group_5__1
+ {
+ pushFollow(FOLLOW_rule__FormControlSpecification__Group_5__0__Impl_in_rule__FormControlSpecification__Group_5__012494);
+ rule__FormControlSpecification__Group_5__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FormControlSpecification__Group_5__1_in_rule__FormControlSpecification__Group_5__012497);
+ rule__FormControlSpecification__Group_5__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__Group_5__0"
+
+
+ // $ANTLR start "rule__FormControlSpecification__Group_5__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5993:1: rule__FormControlSpecification__Group_5__0__Impl : ( 'target' ) ;
+ public final void rule__FormControlSpecification__Group_5__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5997:1: ( ( 'target' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5998:1: ( 'target' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5998:1: ( 'target' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:5999:1: 'target'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlSpecificationAccess().getTargetKeyword_5_0());
+ }
+ match(input,62,FOLLOW_62_in_rule__FormControlSpecification__Group_5__0__Impl12525); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlSpecificationAccess().getTargetKeyword_5_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__Group_5__0__Impl"
+
+
+ // $ANTLR start "rule__FormControlSpecification__Group_5__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6012:1: rule__FormControlSpecification__Group_5__1 : rule__FormControlSpecification__Group_5__1__Impl ;
+ public final void rule__FormControlSpecification__Group_5__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6016:1: ( rule__FormControlSpecification__Group_5__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6017:2: rule__FormControlSpecification__Group_5__1__Impl
+ {
+ pushFollow(FOLLOW_rule__FormControlSpecification__Group_5__1__Impl_in_rule__FormControlSpecification__Group_5__112556);
+ rule__FormControlSpecification__Group_5__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__Group_5__1"
+
+
+ // $ANTLR start "rule__FormControlSpecification__Group_5__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6023:1: rule__FormControlSpecification__Group_5__1__Impl : ( ( rule__FormControlSpecification__TargetAssignment_5_1 ) ) ;
+ public final void rule__FormControlSpecification__Group_5__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6027:1: ( ( ( rule__FormControlSpecification__TargetAssignment_5_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6028:1: ( ( rule__FormControlSpecification__TargetAssignment_5_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6028:1: ( ( rule__FormControlSpecification__TargetAssignment_5_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6029:1: ( rule__FormControlSpecification__TargetAssignment_5_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlSpecificationAccess().getTargetAssignment_5_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6030:1: ( rule__FormControlSpecification__TargetAssignment_5_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6030:2: rule__FormControlSpecification__TargetAssignment_5_1
+ {
+ pushFollow(FOLLOW_rule__FormControlSpecification__TargetAssignment_5_1_in_rule__FormControlSpecification__Group_5__1__Impl12583);
+ rule__FormControlSpecification__TargetAssignment_5_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlSpecificationAccess().getTargetAssignment_5_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__Group_5__1__Impl"
+
+
+ // $ANTLR start "rule__ProposalCreator__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6044:1: rule__ProposalCreator__Group__0 : rule__ProposalCreator__Group__0__Impl rule__ProposalCreator__Group__1 ;
+ public final void rule__ProposalCreator__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6048:1: ( rule__ProposalCreator__Group__0__Impl rule__ProposalCreator__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6049:2: rule__ProposalCreator__Group__0__Impl rule__ProposalCreator__Group__1
+ {
+ pushFollow(FOLLOW_rule__ProposalCreator__Group__0__Impl_in_rule__ProposalCreator__Group__012617);
+ rule__ProposalCreator__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ProposalCreator__Group__1_in_rule__ProposalCreator__Group__012620);
+ rule__ProposalCreator__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalCreator__Group__0"
+
+
+ // $ANTLR start "rule__ProposalCreator__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6056:1: rule__ProposalCreator__Group__0__Impl : ( () ) ;
+ public final void rule__ProposalCreator__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6060:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6061:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6061:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6062:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalCreatorAccess().getProposalCreatorAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6063:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6065:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalCreatorAccess().getProposalCreatorAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalCreator__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ProposalCreator__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6075:1: rule__ProposalCreator__Group__1 : rule__ProposalCreator__Group__1__Impl rule__ProposalCreator__Group__2 ;
+ public final void rule__ProposalCreator__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6079:1: ( rule__ProposalCreator__Group__1__Impl rule__ProposalCreator__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6080:2: rule__ProposalCreator__Group__1__Impl rule__ProposalCreator__Group__2
+ {
+ pushFollow(FOLLOW_rule__ProposalCreator__Group__1__Impl_in_rule__ProposalCreator__Group__112678);
+ rule__ProposalCreator__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ProposalCreator__Group__2_in_rule__ProposalCreator__Group__112681);
+ rule__ProposalCreator__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalCreator__Group__1"
+
+
+ // $ANTLR start "rule__ProposalCreator__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6087:1: rule__ProposalCreator__Group__1__Impl : ( 'proposals' ) ;
+ public final void rule__ProposalCreator__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6091:1: ( ( 'proposals' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6092:1: ( 'proposals' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6092:1: ( 'proposals' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6093:1: 'proposals'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalCreatorAccess().getProposalsKeyword_1());
+ }
+ match(input,63,FOLLOW_63_in_rule__ProposalCreator__Group__1__Impl12709); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalCreatorAccess().getProposalsKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalCreator__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ProposalCreator__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6106:1: rule__ProposalCreator__Group__2 : rule__ProposalCreator__Group__2__Impl rule__ProposalCreator__Group__3 ;
+ public final void rule__ProposalCreator__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6110:1: ( rule__ProposalCreator__Group__2__Impl rule__ProposalCreator__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6111:2: rule__ProposalCreator__Group__2__Impl rule__ProposalCreator__Group__3
+ {
+ pushFollow(FOLLOW_rule__ProposalCreator__Group__2__Impl_in_rule__ProposalCreator__Group__212740);
+ rule__ProposalCreator__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ProposalCreator__Group__3_in_rule__ProposalCreator__Group__212743);
+ rule__ProposalCreator__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalCreator__Group__2"
+
+
+ // $ANTLR start "rule__ProposalCreator__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6118:1: rule__ProposalCreator__Group__2__Impl : ( '{' ) ;
+ public final void rule__ProposalCreator__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6122:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6123:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6123:1: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6124:1: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalCreatorAccess().getLeftCurlyBracketKeyword_2());
+ }
+ match(input,49,FOLLOW_49_in_rule__ProposalCreator__Group__2__Impl12771); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalCreatorAccess().getLeftCurlyBracketKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalCreator__Group__2__Impl"
+
+
+ // $ANTLR start "rule__ProposalCreator__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6137:1: rule__ProposalCreator__Group__3 : rule__ProposalCreator__Group__3__Impl rule__ProposalCreator__Group__4 ;
+ public final void rule__ProposalCreator__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6141:1: ( rule__ProposalCreator__Group__3__Impl rule__ProposalCreator__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6142:2: rule__ProposalCreator__Group__3__Impl rule__ProposalCreator__Group__4
+ {
+ pushFollow(FOLLOW_rule__ProposalCreator__Group__3__Impl_in_rule__ProposalCreator__Group__312802);
+ rule__ProposalCreator__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ProposalCreator__Group__4_in_rule__ProposalCreator__Group__312805);
+ rule__ProposalCreator__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalCreator__Group__3"
+
+
+ // $ANTLR start "rule__ProposalCreator__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6149:1: rule__ProposalCreator__Group__3__Impl : ( ( rule__ProposalCreator__ProposalsSpecificationsAssignment_3 )* ) ;
+ public final void rule__ProposalCreator__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6153:1: ( ( ( rule__ProposalCreator__ProposalsSpecificationsAssignment_3 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6154:1: ( ( rule__ProposalCreator__ProposalsSpecificationsAssignment_3 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6154:1: ( ( rule__ProposalCreator__ProposalsSpecificationsAssignment_3 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6155:1: ( rule__ProposalCreator__ProposalsSpecificationsAssignment_3 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalCreatorAccess().getProposalsSpecificationsAssignment_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6156:1: ( rule__ProposalCreator__ProposalsSpecificationsAssignment_3 )*
+ loop52:
+ do {
+ int alt52=2;
+ int LA52_0 = input.LA(1);
+
+ if ( (LA52_0==RULE_ID||LA52_0==29||LA52_0==77) ) {
+ alt52=1;
+ }
+
+
+ switch (alt52) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6156:2: rule__ProposalCreator__ProposalsSpecificationsAssignment_3
+ {
+ pushFollow(FOLLOW_rule__ProposalCreator__ProposalsSpecificationsAssignment_3_in_rule__ProposalCreator__Group__3__Impl12832);
+ rule__ProposalCreator__ProposalsSpecificationsAssignment_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop52;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalCreatorAccess().getProposalsSpecificationsAssignment_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalCreator__Group__3__Impl"
+
+
+ // $ANTLR start "rule__ProposalCreator__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6166:1: rule__ProposalCreator__Group__4 : rule__ProposalCreator__Group__4__Impl ;
+ public final void rule__ProposalCreator__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6170:1: ( rule__ProposalCreator__Group__4__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6171:2: rule__ProposalCreator__Group__4__Impl
+ {
+ pushFollow(FOLLOW_rule__ProposalCreator__Group__4__Impl_in_rule__ProposalCreator__Group__412863);
+ rule__ProposalCreator__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalCreator__Group__4"
+
+
+ // $ANTLR start "rule__ProposalCreator__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6177:1: rule__ProposalCreator__Group__4__Impl : ( '}' ) ;
+ public final void rule__ProposalCreator__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6181:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6182:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6182:1: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6183:1: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalCreatorAccess().getRightCurlyBracketKeyword_4());
+ }
+ match(input,50,FOLLOW_50_in_rule__ProposalCreator__Group__4__Impl12891); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalCreatorAccess().getRightCurlyBracketKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalCreator__Group__4__Impl"
+
+
+ // $ANTLR start "rule__ProposalSpecification__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6206:1: rule__ProposalSpecification__Group__0 : rule__ProposalSpecification__Group__0__Impl rule__ProposalSpecification__Group__1 ;
+ public final void rule__ProposalSpecification__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6210:1: ( rule__ProposalSpecification__Group__0__Impl rule__ProposalSpecification__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6211:2: rule__ProposalSpecification__Group__0__Impl rule__ProposalSpecification__Group__1
+ {
+ pushFollow(FOLLOW_rule__ProposalSpecification__Group__0__Impl_in_rule__ProposalSpecification__Group__012932);
+ rule__ProposalSpecification__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ProposalSpecification__Group__1_in_rule__ProposalSpecification__Group__012935);
+ rule__ProposalSpecification__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalSpecification__Group__0"
+
+
+ // $ANTLR start "rule__ProposalSpecification__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6218:1: rule__ProposalSpecification__Group__0__Impl : ( ( rule__ProposalSpecification__ParameterTypeAssignment_0 ) ) ;
+ public final void rule__ProposalSpecification__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6222:1: ( ( ( rule__ProposalSpecification__ParameterTypeAssignment_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6223:1: ( ( rule__ProposalSpecification__ParameterTypeAssignment_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6223:1: ( ( rule__ProposalSpecification__ParameterTypeAssignment_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6224:1: ( rule__ProposalSpecification__ParameterTypeAssignment_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalSpecificationAccess().getParameterTypeAssignment_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6225:1: ( rule__ProposalSpecification__ParameterTypeAssignment_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6225:2: rule__ProposalSpecification__ParameterTypeAssignment_0
+ {
+ pushFollow(FOLLOW_rule__ProposalSpecification__ParameterTypeAssignment_0_in_rule__ProposalSpecification__Group__0__Impl12962);
+ rule__ProposalSpecification__ParameterTypeAssignment_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalSpecificationAccess().getParameterTypeAssignment_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalSpecification__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ProposalSpecification__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6235:1: rule__ProposalSpecification__Group__1 : rule__ProposalSpecification__Group__1__Impl rule__ProposalSpecification__Group__2 ;
+ public final void rule__ProposalSpecification__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6239:1: ( rule__ProposalSpecification__Group__1__Impl rule__ProposalSpecification__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6240:2: rule__ProposalSpecification__Group__1__Impl rule__ProposalSpecification__Group__2
+ {
+ pushFollow(FOLLOW_rule__ProposalSpecification__Group__1__Impl_in_rule__ProposalSpecification__Group__112992);
+ rule__ProposalSpecification__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ProposalSpecification__Group__2_in_rule__ProposalSpecification__Group__112995);
+ rule__ProposalSpecification__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalSpecification__Group__1"
+
+
+ // $ANTLR start "rule__ProposalSpecification__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6247:1: rule__ProposalSpecification__Group__1__Impl : ( ':' ) ;
+ public final void rule__ProposalSpecification__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6251:1: ( ( ':' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6252:1: ( ':' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6252:1: ( ':' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6253:1: ':'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalSpecificationAccess().getColonKeyword_1());
+ }
+ match(input,56,FOLLOW_56_in_rule__ProposalSpecification__Group__1__Impl13023); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalSpecificationAccess().getColonKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalSpecification__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ProposalSpecification__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6266:1: rule__ProposalSpecification__Group__2 : rule__ProposalSpecification__Group__2__Impl rule__ProposalSpecification__Group__3 ;
+ public final void rule__ProposalSpecification__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6270:1: ( rule__ProposalSpecification__Group__2__Impl rule__ProposalSpecification__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6271:2: rule__ProposalSpecification__Group__2__Impl rule__ProposalSpecification__Group__3
+ {
+ pushFollow(FOLLOW_rule__ProposalSpecification__Group__2__Impl_in_rule__ProposalSpecification__Group__213054);
+ rule__ProposalSpecification__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ProposalSpecification__Group__3_in_rule__ProposalSpecification__Group__213057);
+ rule__ProposalSpecification__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalSpecification__Group__2"
+
+
+ // $ANTLR start "rule__ProposalSpecification__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6278:1: rule__ProposalSpecification__Group__2__Impl : ( ( rule__ProposalSpecification__FeatureAssignment_2 ) ) ;
+ public final void rule__ProposalSpecification__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6282:1: ( ( ( rule__ProposalSpecification__FeatureAssignment_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6283:1: ( ( rule__ProposalSpecification__FeatureAssignment_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6283:1: ( ( rule__ProposalSpecification__FeatureAssignment_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6284:1: ( rule__ProposalSpecification__FeatureAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalSpecificationAccess().getFeatureAssignment_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6285:1: ( rule__ProposalSpecification__FeatureAssignment_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6285:2: rule__ProposalSpecification__FeatureAssignment_2
+ {
+ pushFollow(FOLLOW_rule__ProposalSpecification__FeatureAssignment_2_in_rule__ProposalSpecification__Group__2__Impl13084);
+ rule__ProposalSpecification__FeatureAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalSpecificationAccess().getFeatureAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalSpecification__Group__2__Impl"
+
+
+ // $ANTLR start "rule__ProposalSpecification__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6295:1: rule__ProposalSpecification__Group__3 : rule__ProposalSpecification__Group__3__Impl rule__ProposalSpecification__Group__4 ;
+ public final void rule__ProposalSpecification__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6299:1: ( rule__ProposalSpecification__Group__3__Impl rule__ProposalSpecification__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6300:2: rule__ProposalSpecification__Group__3__Impl rule__ProposalSpecification__Group__4
+ {
+ pushFollow(FOLLOW_rule__ProposalSpecification__Group__3__Impl_in_rule__ProposalSpecification__Group__313114);
+ rule__ProposalSpecification__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ProposalSpecification__Group__4_in_rule__ProposalSpecification__Group__313117);
+ rule__ProposalSpecification__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalSpecification__Group__3"
+
+
+ // $ANTLR start "rule__ProposalSpecification__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6307:1: rule__ProposalSpecification__Group__3__Impl : ( '->' ) ;
+ public final void rule__ProposalSpecification__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6311:1: ( ( '->' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6312:1: ( '->' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6312:1: ( '->' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6313:1: '->'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_3());
+ }
+ match(input,26,FOLLOW_26_in_rule__ProposalSpecification__Group__3__Impl13145); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalSpecification__Group__3__Impl"
+
+
+ // $ANTLR start "rule__ProposalSpecification__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6326:1: rule__ProposalSpecification__Group__4 : rule__ProposalSpecification__Group__4__Impl ;
+ public final void rule__ProposalSpecification__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6330:1: ( rule__ProposalSpecification__Group__4__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6331:2: rule__ProposalSpecification__Group__4__Impl
+ {
+ pushFollow(FOLLOW_rule__ProposalSpecification__Group__4__Impl_in_rule__ProposalSpecification__Group__413176);
+ rule__ProposalSpecification__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalSpecification__Group__4"
+
+
+ // $ANTLR start "rule__ProposalSpecification__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6337:1: rule__ProposalSpecification__Group__4__Impl : ( ( rule__ProposalSpecification__ExpressionAssignment_4 ) ) ;
+ public final void rule__ProposalSpecification__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6341:1: ( ( ( rule__ProposalSpecification__ExpressionAssignment_4 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6342:1: ( ( rule__ProposalSpecification__ExpressionAssignment_4 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6342:1: ( ( rule__ProposalSpecification__ExpressionAssignment_4 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6343:1: ( rule__ProposalSpecification__ExpressionAssignment_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalSpecificationAccess().getExpressionAssignment_4());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6344:1: ( rule__ProposalSpecification__ExpressionAssignment_4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6344:2: rule__ProposalSpecification__ExpressionAssignment_4
+ {
+ pushFollow(FOLLOW_rule__ProposalSpecification__ExpressionAssignment_4_in_rule__ProposalSpecification__Group__4__Impl13203);
+ rule__ProposalSpecification__ExpressionAssignment_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalSpecificationAccess().getExpressionAssignment_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalSpecification__Group__4__Impl"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6364:1: rule__ViewerContentProvider__Group__0 : rule__ViewerContentProvider__Group__0__Impl rule__ViewerContentProvider__Group__1 ;
+ public final void rule__ViewerContentProvider__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6368:1: ( rule__ViewerContentProvider__Group__0__Impl rule__ViewerContentProvider__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6369:2: rule__ViewerContentProvider__Group__0__Impl rule__ViewerContentProvider__Group__1
+ {
+ pushFollow(FOLLOW_rule__ViewerContentProvider__Group__0__Impl_in_rule__ViewerContentProvider__Group__013243);
+ rule__ViewerContentProvider__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ViewerContentProvider__Group__1_in_rule__ViewerContentProvider__Group__013246);
+ rule__ViewerContentProvider__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__Group__0"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6376:1: rule__ViewerContentProvider__Group__0__Impl : ( () ) ;
+ public final void rule__ViewerContentProvider__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6380:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6381:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6381:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6382:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewerContentProviderAccess().getViewerContentProviderAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6383:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6385:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewerContentProviderAccess().getViewerContentProviderAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6395:1: rule__ViewerContentProvider__Group__1 : rule__ViewerContentProvider__Group__1__Impl rule__ViewerContentProvider__Group__2 ;
+ public final void rule__ViewerContentProvider__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6399:1: ( rule__ViewerContentProvider__Group__1__Impl rule__ViewerContentProvider__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6400:2: rule__ViewerContentProvider__Group__1__Impl rule__ViewerContentProvider__Group__2
+ {
+ pushFollow(FOLLOW_rule__ViewerContentProvider__Group__1__Impl_in_rule__ViewerContentProvider__Group__113304);
+ rule__ViewerContentProvider__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ViewerContentProvider__Group__2_in_rule__ViewerContentProvider__Group__113307);
+ rule__ViewerContentProvider__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__Group__1"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6407:1: rule__ViewerContentProvider__Group__1__Impl : ( 'viewerContentProvider' ) ;
+ public final void rule__ViewerContentProvider__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6411:1: ( ( 'viewerContentProvider' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6412:1: ( 'viewerContentProvider' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6412:1: ( 'viewerContentProvider' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6413:1: 'viewerContentProvider'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewerContentProviderAccess().getViewerContentProviderKeyword_1());
+ }
+ match(input,64,FOLLOW_64_in_rule__ViewerContentProvider__Group__1__Impl13335); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewerContentProviderAccess().getViewerContentProviderKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6426:1: rule__ViewerContentProvider__Group__2 : rule__ViewerContentProvider__Group__2__Impl rule__ViewerContentProvider__Group__3 ;
+ public final void rule__ViewerContentProvider__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6430:1: ( rule__ViewerContentProvider__Group__2__Impl rule__ViewerContentProvider__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6431:2: rule__ViewerContentProvider__Group__2__Impl rule__ViewerContentProvider__Group__3
+ {
+ pushFollow(FOLLOW_rule__ViewerContentProvider__Group__2__Impl_in_rule__ViewerContentProvider__Group__213366);
+ rule__ViewerContentProvider__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ViewerContentProvider__Group__3_in_rule__ViewerContentProvider__Group__213369);
+ rule__ViewerContentProvider__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__Group__2"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6438:1: rule__ViewerContentProvider__Group__2__Impl : ( '{' ) ;
+ public final void rule__ViewerContentProvider__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6442:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6443:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6443:1: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6444:1: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewerContentProviderAccess().getLeftCurlyBracketKeyword_2());
+ }
+ match(input,49,FOLLOW_49_in_rule__ViewerContentProvider__Group__2__Impl13397); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewerContentProviderAccess().getLeftCurlyBracketKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__Group__2__Impl"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6457:1: rule__ViewerContentProvider__Group__3 : rule__ViewerContentProvider__Group__3__Impl rule__ViewerContentProvider__Group__4 ;
+ public final void rule__ViewerContentProvider__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6461:1: ( rule__ViewerContentProvider__Group__3__Impl rule__ViewerContentProvider__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6462:2: rule__ViewerContentProvider__Group__3__Impl rule__ViewerContentProvider__Group__4
+ {
+ pushFollow(FOLLOW_rule__ViewerContentProvider__Group__3__Impl_in_rule__ViewerContentProvider__Group__313428);
+ rule__ViewerContentProvider__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ViewerContentProvider__Group__4_in_rule__ViewerContentProvider__Group__313431);
+ rule__ViewerContentProvider__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__Group__3"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6469:1: rule__ViewerContentProvider__Group__3__Impl : ( ( rule__ViewerContentProvider__Group_3__0 )? ) ;
+ public final void rule__ViewerContentProvider__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6473:1: ( ( ( rule__ViewerContentProvider__Group_3__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6474:1: ( ( rule__ViewerContentProvider__Group_3__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6474:1: ( ( rule__ViewerContentProvider__Group_3__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6475:1: ( rule__ViewerContentProvider__Group_3__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewerContentProviderAccess().getGroup_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6476:1: ( rule__ViewerContentProvider__Group_3__0 )?
+ int alt53=2;
+ int LA53_0 = input.LA(1);
+
+ if ( (LA53_0==65) ) {
+ alt53=1;
+ }
+ switch (alt53) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6476:2: rule__ViewerContentProvider__Group_3__0
+ {
+ pushFollow(FOLLOW_rule__ViewerContentProvider__Group_3__0_in_rule__ViewerContentProvider__Group__3__Impl13458);
+ rule__ViewerContentProvider__Group_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewerContentProviderAccess().getGroup_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__Group__3__Impl"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6486:1: rule__ViewerContentProvider__Group__4 : rule__ViewerContentProvider__Group__4__Impl ;
+ public final void rule__ViewerContentProvider__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6490:1: ( rule__ViewerContentProvider__Group__4__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6491:2: rule__ViewerContentProvider__Group__4__Impl
+ {
+ pushFollow(FOLLOW_rule__ViewerContentProvider__Group__4__Impl_in_rule__ViewerContentProvider__Group__413489);
+ rule__ViewerContentProvider__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__Group__4"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6497:1: rule__ViewerContentProvider__Group__4__Impl : ( '}' ) ;
+ public final void rule__ViewerContentProvider__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6501:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6502:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6502:1: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6503:1: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewerContentProviderAccess().getRightCurlyBracketKeyword_4());
+ }
+ match(input,50,FOLLOW_50_in_rule__ViewerContentProvider__Group__4__Impl13517); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewerContentProviderAccess().getRightCurlyBracketKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__Group__4__Impl"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__Group_3__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6526:1: rule__ViewerContentProvider__Group_3__0 : rule__ViewerContentProvider__Group_3__0__Impl rule__ViewerContentProvider__Group_3__1 ;
+ public final void rule__ViewerContentProvider__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6530:1: ( rule__ViewerContentProvider__Group_3__0__Impl rule__ViewerContentProvider__Group_3__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6531:2: rule__ViewerContentProvider__Group_3__0__Impl rule__ViewerContentProvider__Group_3__1
+ {
+ pushFollow(FOLLOW_rule__ViewerContentProvider__Group_3__0__Impl_in_rule__ViewerContentProvider__Group_3__013558);
+ rule__ViewerContentProvider__Group_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ViewerContentProvider__Group_3__1_in_rule__ViewerContentProvider__Group_3__013561);
+ rule__ViewerContentProvider__Group_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__Group_3__0"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__Group_3__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6538:1: rule__ViewerContentProvider__Group_3__0__Impl : ( 'children' ) ;
+ public final void rule__ViewerContentProvider__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6542:1: ( ( 'children' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6543:1: ( 'children' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6543:1: ( 'children' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6544:1: 'children'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewerContentProviderAccess().getChildrenKeyword_3_0());
+ }
+ match(input,65,FOLLOW_65_in_rule__ViewerContentProvider__Group_3__0__Impl13589); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewerContentProviderAccess().getChildrenKeyword_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__Group_3__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6557:1: rule__ViewerContentProvider__Group_3__1 : rule__ViewerContentProvider__Group_3__1__Impl rule__ViewerContentProvider__Group_3__2 ;
+ public final void rule__ViewerContentProvider__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6561:1: ( rule__ViewerContentProvider__Group_3__1__Impl rule__ViewerContentProvider__Group_3__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6562:2: rule__ViewerContentProvider__Group_3__1__Impl rule__ViewerContentProvider__Group_3__2
+ {
+ pushFollow(FOLLOW_rule__ViewerContentProvider__Group_3__1__Impl_in_rule__ViewerContentProvider__Group_3__113620);
+ rule__ViewerContentProvider__Group_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ViewerContentProvider__Group_3__2_in_rule__ViewerContentProvider__Group_3__113623);
+ rule__ViewerContentProvider__Group_3__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__Group_3__1"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__Group_3__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6569:1: rule__ViewerContentProvider__Group_3__1__Impl : ( '{' ) ;
+ public final void rule__ViewerContentProvider__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6573:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6574:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6574:1: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6575:1: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewerContentProviderAccess().getLeftCurlyBracketKeyword_3_1());
+ }
+ match(input,49,FOLLOW_49_in_rule__ViewerContentProvider__Group_3__1__Impl13651); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewerContentProviderAccess().getLeftCurlyBracketKeyword_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__Group_3__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6588:1: rule__ViewerContentProvider__Group_3__2 : rule__ViewerContentProvider__Group_3__2__Impl rule__ViewerContentProvider__Group_3__3 ;
+ public final void rule__ViewerContentProvider__Group_3__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6592:1: ( rule__ViewerContentProvider__Group_3__2__Impl rule__ViewerContentProvider__Group_3__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6593:2: rule__ViewerContentProvider__Group_3__2__Impl rule__ViewerContentProvider__Group_3__3
+ {
+ pushFollow(FOLLOW_rule__ViewerContentProvider__Group_3__2__Impl_in_rule__ViewerContentProvider__Group_3__213682);
+ rule__ViewerContentProvider__Group_3__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ViewerContentProvider__Group_3__3_in_rule__ViewerContentProvider__Group_3__213685);
+ rule__ViewerContentProvider__Group_3__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__Group_3__2"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__Group_3__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6600:1: rule__ViewerContentProvider__Group_3__2__Impl : ( ( rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_2 )* ) ;
+ public final void rule__ViewerContentProvider__Group_3__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6604:1: ( ( ( rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_2 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6605:1: ( ( rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_2 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6605:1: ( ( rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_2 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6606:1: ( rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_2 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewerContentProviderAccess().getChildrenSpecificationsAssignment_3_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6607:1: ( rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_2 )*
+ loop54:
+ do {
+ int alt54=2;
+ int LA54_0 = input.LA(1);
+
+ if ( (LA54_0==RULE_ID||LA54_0==29||LA54_0==77) ) {
+ alt54=1;
+ }
+
+
+ switch (alt54) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6607:2: rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_2
+ {
+ pushFollow(FOLLOW_rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_2_in_rule__ViewerContentProvider__Group_3__2__Impl13712);
+ rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop54;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewerContentProviderAccess().getChildrenSpecificationsAssignment_3_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__Group_3__2__Impl"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__Group_3__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6617:1: rule__ViewerContentProvider__Group_3__3 : rule__ViewerContentProvider__Group_3__3__Impl ;
+ public final void rule__ViewerContentProvider__Group_3__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6621:1: ( rule__ViewerContentProvider__Group_3__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6622:2: rule__ViewerContentProvider__Group_3__3__Impl
+ {
+ pushFollow(FOLLOW_rule__ViewerContentProvider__Group_3__3__Impl_in_rule__ViewerContentProvider__Group_3__313743);
+ rule__ViewerContentProvider__Group_3__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__Group_3__3"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__Group_3__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6628:1: rule__ViewerContentProvider__Group_3__3__Impl : ( '}' ) ;
+ public final void rule__ViewerContentProvider__Group_3__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6632:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6633:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6633:1: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6634:1: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewerContentProviderAccess().getRightCurlyBracketKeyword_3_3());
+ }
+ match(input,50,FOLLOW_50_in_rule__ViewerContentProvider__Group_3__3__Impl13771); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewerContentProviderAccess().getRightCurlyBracketKeyword_3_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__Group_3__3__Impl"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6655:1: rule__ViewSpecification__Group__0 : rule__ViewSpecification__Group__0__Impl rule__ViewSpecification__Group__1 ;
+ public final void rule__ViewSpecification__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6659:1: ( rule__ViewSpecification__Group__0__Impl rule__ViewSpecification__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6660:2: rule__ViewSpecification__Group__0__Impl rule__ViewSpecification__Group__1
+ {
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__0__Impl_in_rule__ViewSpecification__Group__013810);
+ rule__ViewSpecification__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__1_in_rule__ViewSpecification__Group__013813);
+ rule__ViewSpecification__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__0"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6667:1: rule__ViewSpecification__Group__0__Impl : ( () ) ;
+ public final void rule__ViewSpecification__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6671:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6672:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6672:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6673:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewSpecificationAccess().getViewSpecificationAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6674:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6676:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewSpecificationAccess().getViewSpecificationAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6686:1: rule__ViewSpecification__Group__1 : rule__ViewSpecification__Group__1__Impl rule__ViewSpecification__Group__2 ;
+ public final void rule__ViewSpecification__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6690:1: ( rule__ViewSpecification__Group__1__Impl rule__ViewSpecification__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6691:2: rule__ViewSpecification__Group__1__Impl rule__ViewSpecification__Group__2
+ {
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__1__Impl_in_rule__ViewSpecification__Group__113871);
+ rule__ViewSpecification__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__2_in_rule__ViewSpecification__Group__113874);
+ rule__ViewSpecification__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__1"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6698:1: rule__ViewSpecification__Group__1__Impl : ( 'viewpart' ) ;
+ public final void rule__ViewSpecification__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6702:1: ( ( 'viewpart' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6703:1: ( 'viewpart' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6703:1: ( 'viewpart' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6704:1: 'viewpart'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewSpecificationAccess().getViewpartKeyword_1());
+ }
+ match(input,66,FOLLOW_66_in_rule__ViewSpecification__Group__1__Impl13902); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewSpecificationAccess().getViewpartKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__1__Impl"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6717:1: rule__ViewSpecification__Group__2 : rule__ViewSpecification__Group__2__Impl rule__ViewSpecification__Group__3 ;
+ public final void rule__ViewSpecification__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6721:1: ( rule__ViewSpecification__Group__2__Impl rule__ViewSpecification__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6722:2: rule__ViewSpecification__Group__2__Impl rule__ViewSpecification__Group__3
+ {
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__2__Impl_in_rule__ViewSpecification__Group__213933);
+ rule__ViewSpecification__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__3_in_rule__ViewSpecification__Group__213936);
+ rule__ViewSpecification__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__2"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6729:1: rule__ViewSpecification__Group__2__Impl : ( ( rule__ViewSpecification__IdAssignment_2 ) ) ;
+ public final void rule__ViewSpecification__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6733:1: ( ( ( rule__ViewSpecification__IdAssignment_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6734:1: ( ( rule__ViewSpecification__IdAssignment_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6734:1: ( ( rule__ViewSpecification__IdAssignment_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6735:1: ( rule__ViewSpecification__IdAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewSpecificationAccess().getIdAssignment_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6736:1: ( rule__ViewSpecification__IdAssignment_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6736:2: rule__ViewSpecification__IdAssignment_2
+ {
+ pushFollow(FOLLOW_rule__ViewSpecification__IdAssignment_2_in_rule__ViewSpecification__Group__2__Impl13963);
+ rule__ViewSpecification__IdAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewSpecificationAccess().getIdAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__2__Impl"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6746:1: rule__ViewSpecification__Group__3 : rule__ViewSpecification__Group__3__Impl rule__ViewSpecification__Group__4 ;
+ public final void rule__ViewSpecification__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6750:1: ( rule__ViewSpecification__Group__3__Impl rule__ViewSpecification__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6751:2: rule__ViewSpecification__Group__3__Impl rule__ViewSpecification__Group__4
+ {
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__3__Impl_in_rule__ViewSpecification__Group__313993);
+ rule__ViewSpecification__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__4_in_rule__ViewSpecification__Group__313996);
+ rule__ViewSpecification__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__3"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6758:1: rule__ViewSpecification__Group__3__Impl : ( '{' ) ;
+ public final void rule__ViewSpecification__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6762:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6763:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6763:1: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6764:1: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewSpecificationAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,49,FOLLOW_49_in_rule__ViewSpecification__Group__3__Impl14024); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewSpecificationAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__3__Impl"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6777:1: rule__ViewSpecification__Group__4 : rule__ViewSpecification__Group__4__Impl rule__ViewSpecification__Group__5 ;
+ public final void rule__ViewSpecification__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6781:1: ( rule__ViewSpecification__Group__4__Impl rule__ViewSpecification__Group__5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6782:2: rule__ViewSpecification__Group__4__Impl rule__ViewSpecification__Group__5
+ {
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__4__Impl_in_rule__ViewSpecification__Group__414055);
+ rule__ViewSpecification__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__5_in_rule__ViewSpecification__Group__414058);
+ rule__ViewSpecification__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__4"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6789:1: rule__ViewSpecification__Group__4__Impl : ( 'viewname' ) ;
+ public final void rule__ViewSpecification__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6793:1: ( ( 'viewname' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6794:1: ( 'viewname' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6794:1: ( 'viewname' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6795:1: 'viewname'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewSpecificationAccess().getViewnameKeyword_4());
+ }
+ match(input,67,FOLLOW_67_in_rule__ViewSpecification__Group__4__Impl14086); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewSpecificationAccess().getViewnameKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__4__Impl"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__5"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6808:1: rule__ViewSpecification__Group__5 : rule__ViewSpecification__Group__5__Impl rule__ViewSpecification__Group__6 ;
+ public final void rule__ViewSpecification__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6812:1: ( rule__ViewSpecification__Group__5__Impl rule__ViewSpecification__Group__6 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6813:2: rule__ViewSpecification__Group__5__Impl rule__ViewSpecification__Group__6
+ {
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__5__Impl_in_rule__ViewSpecification__Group__514117);
+ rule__ViewSpecification__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__6_in_rule__ViewSpecification__Group__514120);
+ rule__ViewSpecification__Group__6();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__5"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__5__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6820:1: rule__ViewSpecification__Group__5__Impl : ( ( rule__ViewSpecification__ViewNameAssignment_5 ) ) ;
+ public final void rule__ViewSpecification__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6824:1: ( ( ( rule__ViewSpecification__ViewNameAssignment_5 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6825:1: ( ( rule__ViewSpecification__ViewNameAssignment_5 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6825:1: ( ( rule__ViewSpecification__ViewNameAssignment_5 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6826:1: ( rule__ViewSpecification__ViewNameAssignment_5 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewSpecificationAccess().getViewNameAssignment_5());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6827:1: ( rule__ViewSpecification__ViewNameAssignment_5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6827:2: rule__ViewSpecification__ViewNameAssignment_5
+ {
+ pushFollow(FOLLOW_rule__ViewSpecification__ViewNameAssignment_5_in_rule__ViewSpecification__Group__5__Impl14147);
+ rule__ViewSpecification__ViewNameAssignment_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewSpecificationAccess().getViewNameAssignment_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__5__Impl"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__6"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6837:1: rule__ViewSpecification__Group__6 : rule__ViewSpecification__Group__6__Impl rule__ViewSpecification__Group__7 ;
+ public final void rule__ViewSpecification__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6841:1: ( rule__ViewSpecification__Group__6__Impl rule__ViewSpecification__Group__7 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6842:2: rule__ViewSpecification__Group__6__Impl rule__ViewSpecification__Group__7
+ {
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__6__Impl_in_rule__ViewSpecification__Group__614177);
+ rule__ViewSpecification__Group__6__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__7_in_rule__ViewSpecification__Group__614180);
+ rule__ViewSpecification__Group__7();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__6"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__6__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6849:1: rule__ViewSpecification__Group__6__Impl : ( 'viewclass' ) ;
+ public final void rule__ViewSpecification__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6853:1: ( ( 'viewclass' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6854:1: ( 'viewclass' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6854:1: ( 'viewclass' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6855:1: 'viewclass'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewSpecificationAccess().getViewclassKeyword_6());
+ }
+ match(input,68,FOLLOW_68_in_rule__ViewSpecification__Group__6__Impl14208); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewSpecificationAccess().getViewclassKeyword_6());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__6__Impl"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__7"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6868:1: rule__ViewSpecification__Group__7 : rule__ViewSpecification__Group__7__Impl rule__ViewSpecification__Group__8 ;
+ public final void rule__ViewSpecification__Group__7() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6872:1: ( rule__ViewSpecification__Group__7__Impl rule__ViewSpecification__Group__8 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6873:2: rule__ViewSpecification__Group__7__Impl rule__ViewSpecification__Group__8
+ {
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__7__Impl_in_rule__ViewSpecification__Group__714239);
+ rule__ViewSpecification__Group__7__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__8_in_rule__ViewSpecification__Group__714242);
+ rule__ViewSpecification__Group__8();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__7"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__7__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6880:1: rule__ViewSpecification__Group__7__Impl : ( ( rule__ViewSpecification__TypeAssignment_7 ) ) ;
+ public final void rule__ViewSpecification__Group__7__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6884:1: ( ( ( rule__ViewSpecification__TypeAssignment_7 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6885:1: ( ( rule__ViewSpecification__TypeAssignment_7 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6885:1: ( ( rule__ViewSpecification__TypeAssignment_7 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6886:1: ( rule__ViewSpecification__TypeAssignment_7 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewSpecificationAccess().getTypeAssignment_7());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6887:1: ( rule__ViewSpecification__TypeAssignment_7 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6887:2: rule__ViewSpecification__TypeAssignment_7
+ {
+ pushFollow(FOLLOW_rule__ViewSpecification__TypeAssignment_7_in_rule__ViewSpecification__Group__7__Impl14269);
+ rule__ViewSpecification__TypeAssignment_7();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewSpecificationAccess().getTypeAssignment_7());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__7__Impl"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__8"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6897:1: rule__ViewSpecification__Group__8 : rule__ViewSpecification__Group__8__Impl rule__ViewSpecification__Group__9 ;
+ public final void rule__ViewSpecification__Group__8() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6901:1: ( rule__ViewSpecification__Group__8__Impl rule__ViewSpecification__Group__9 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6902:2: rule__ViewSpecification__Group__8__Impl rule__ViewSpecification__Group__9
+ {
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__8__Impl_in_rule__ViewSpecification__Group__814299);
+ rule__ViewSpecification__Group__8__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__9_in_rule__ViewSpecification__Group__814302);
+ rule__ViewSpecification__Group__9();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__8"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__8__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6909:1: rule__ViewSpecification__Group__8__Impl : ( ( rule__ViewSpecification__Group_8__0 )? ) ;
+ public final void rule__ViewSpecification__Group__8__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6913:1: ( ( ( rule__ViewSpecification__Group_8__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6914:1: ( ( rule__ViewSpecification__Group_8__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6914:1: ( ( rule__ViewSpecification__Group_8__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6915:1: ( rule__ViewSpecification__Group_8__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewSpecificationAccess().getGroup_8());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6916:1: ( rule__ViewSpecification__Group_8__0 )?
+ int alt55=2;
+ int LA55_0 = input.LA(1);
+
+ if ( (LA55_0==69) ) {
+ alt55=1;
+ }
+ switch (alt55) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6916:2: rule__ViewSpecification__Group_8__0
+ {
+ pushFollow(FOLLOW_rule__ViewSpecification__Group_8__0_in_rule__ViewSpecification__Group__8__Impl14329);
+ rule__ViewSpecification__Group_8__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewSpecificationAccess().getGroup_8());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__8__Impl"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__9"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6926:1: rule__ViewSpecification__Group__9 : rule__ViewSpecification__Group__9__Impl ;
+ public final void rule__ViewSpecification__Group__9() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6930:1: ( rule__ViewSpecification__Group__9__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6931:2: rule__ViewSpecification__Group__9__Impl
+ {
+ pushFollow(FOLLOW_rule__ViewSpecification__Group__9__Impl_in_rule__ViewSpecification__Group__914360);
+ rule__ViewSpecification__Group__9__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__9"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group__9__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6937:1: rule__ViewSpecification__Group__9__Impl : ( '}' ) ;
+ public final void rule__ViewSpecification__Group__9__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6941:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6942:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6942:1: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6943:1: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewSpecificationAccess().getRightCurlyBracketKeyword_9());
+ }
+ match(input,50,FOLLOW_50_in_rule__ViewSpecification__Group__9__Impl14388); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewSpecificationAccess().getRightCurlyBracketKeyword_9());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group__9__Impl"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group_8__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6976:1: rule__ViewSpecification__Group_8__0 : rule__ViewSpecification__Group_8__0__Impl rule__ViewSpecification__Group_8__1 ;
+ public final void rule__ViewSpecification__Group_8__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6980:1: ( rule__ViewSpecification__Group_8__0__Impl rule__ViewSpecification__Group_8__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6981:2: rule__ViewSpecification__Group_8__0__Impl rule__ViewSpecification__Group_8__1
+ {
+ pushFollow(FOLLOW_rule__ViewSpecification__Group_8__0__Impl_in_rule__ViewSpecification__Group_8__014439);
+ rule__ViewSpecification__Group_8__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ViewSpecification__Group_8__1_in_rule__ViewSpecification__Group_8__014442);
+ rule__ViewSpecification__Group_8__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group_8__0"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group_8__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6988:1: rule__ViewSpecification__Group_8__0__Impl : ( 'viewcategory' ) ;
+ public final void rule__ViewSpecification__Group_8__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6992:1: ( ( 'viewcategory' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6993:1: ( 'viewcategory' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6993:1: ( 'viewcategory' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:6994:1: 'viewcategory'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewSpecificationAccess().getViewcategoryKeyword_8_0());
+ }
+ match(input,69,FOLLOW_69_in_rule__ViewSpecification__Group_8__0__Impl14470); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewSpecificationAccess().getViewcategoryKeyword_8_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group_8__0__Impl"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group_8__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7007:1: rule__ViewSpecification__Group_8__1 : rule__ViewSpecification__Group_8__1__Impl ;
+ public final void rule__ViewSpecification__Group_8__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7011:1: ( rule__ViewSpecification__Group_8__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7012:2: rule__ViewSpecification__Group_8__1__Impl
+ {
+ pushFollow(FOLLOW_rule__ViewSpecification__Group_8__1__Impl_in_rule__ViewSpecification__Group_8__114501);
+ rule__ViewSpecification__Group_8__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group_8__1"
+
+
+ // $ANTLR start "rule__ViewSpecification__Group_8__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7018:1: rule__ViewSpecification__Group_8__1__Impl : ( ( rule__ViewSpecification__CategoryAssignment_8_1 ) ) ;
+ public final void rule__ViewSpecification__Group_8__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7022:1: ( ( ( rule__ViewSpecification__CategoryAssignment_8_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7023:1: ( ( rule__ViewSpecification__CategoryAssignment_8_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7023:1: ( ( rule__ViewSpecification__CategoryAssignment_8_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7024:1: ( rule__ViewSpecification__CategoryAssignment_8_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewSpecificationAccess().getCategoryAssignment_8_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7025:1: ( rule__ViewSpecification__CategoryAssignment_8_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7025:2: rule__ViewSpecification__CategoryAssignment_8_1
+ {
+ pushFollow(FOLLOW_rule__ViewSpecification__CategoryAssignment_8_1_in_rule__ViewSpecification__Group_8__1__Impl14528);
+ rule__ViewSpecification__CategoryAssignment_8_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewSpecificationAccess().getCategoryAssignment_8_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__Group_8__1__Impl"
+
+
+ // $ANTLR start "rule__XAssignment__Group_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7039:1: rule__XAssignment__Group_0__0 : rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 ;
+ public final void rule__XAssignment__Group_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7043:1: ( rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7044:2: rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1
+ {
+ pushFollow(FOLLOW_rule__XAssignment__Group_0__0__Impl_in_rule__XAssignment__Group_0__014562);
+ rule__XAssignment__Group_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XAssignment__Group_0__1_in_rule__XAssignment__Group_0__014565);
+ rule__XAssignment__Group_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_0__0"
+
+
+ // $ANTLR start "rule__XAssignment__Group_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7051:1: rule__XAssignment__Group_0__0__Impl : ( () ) ;
+ public final void rule__XAssignment__Group_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7055:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7056:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7056:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7057:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7058:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7060:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_0__0__Impl"
+
+
+ // $ANTLR start "rule__XAssignment__Group_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7070:1: rule__XAssignment__Group_0__1 : rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 ;
+ public final void rule__XAssignment__Group_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7074:1: ( rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7075:2: rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2
+ {
+ pushFollow(FOLLOW_rule__XAssignment__Group_0__1__Impl_in_rule__XAssignment__Group_0__114623);
+ rule__XAssignment__Group_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XAssignment__Group_0__2_in_rule__XAssignment__Group_0__114626);
+ rule__XAssignment__Group_0__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_0__1"
+
+
+ // $ANTLR start "rule__XAssignment__Group_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7082:1: rule__XAssignment__Group_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) ;
+ public final void rule__XAssignment__Group_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7086:1: ( ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7087:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7087:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7088:1: ( rule__XAssignment__FeatureAssignment_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7089:1: ( rule__XAssignment__FeatureAssignment_0_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7089:2: rule__XAssignment__FeatureAssignment_0_1
+ {
+ pushFollow(FOLLOW_rule__XAssignment__FeatureAssignment_0_1_in_rule__XAssignment__Group_0__1__Impl14653);
+ rule__XAssignment__FeatureAssignment_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_0__1__Impl"
+
+
+ // $ANTLR start "rule__XAssignment__Group_0__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7099:1: rule__XAssignment__Group_0__2 : rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 ;
+ public final void rule__XAssignment__Group_0__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7103:1: ( rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7104:2: rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3
+ {
+ pushFollow(FOLLOW_rule__XAssignment__Group_0__2__Impl_in_rule__XAssignment__Group_0__214683);
+ rule__XAssignment__Group_0__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XAssignment__Group_0__3_in_rule__XAssignment__Group_0__214686);
+ rule__XAssignment__Group_0__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_0__2"
+
+
+ // $ANTLR start "rule__XAssignment__Group_0__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7111:1: rule__XAssignment__Group_0__2__Impl : ( ruleOpSingleAssign ) ;
+ public final void rule__XAssignment__Group_0__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7115:1: ( ( ruleOpSingleAssign ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7116:1: ( ruleOpSingleAssign )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7116:1: ( ruleOpSingleAssign )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7117:1: ruleOpSingleAssign
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2());
+ }
+ pushFollow(FOLLOW_ruleOpSingleAssign_in_rule__XAssignment__Group_0__2__Impl14713);
+ ruleOpSingleAssign();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_0__2__Impl"
+
+
+ // $ANTLR start "rule__XAssignment__Group_0__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7128:1: rule__XAssignment__Group_0__3 : rule__XAssignment__Group_0__3__Impl ;
+ public final void rule__XAssignment__Group_0__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7132:1: ( rule__XAssignment__Group_0__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7133:2: rule__XAssignment__Group_0__3__Impl
+ {
+ pushFollow(FOLLOW_rule__XAssignment__Group_0__3__Impl_in_rule__XAssignment__Group_0__314742);
+ rule__XAssignment__Group_0__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_0__3"
+
+
+ // $ANTLR start "rule__XAssignment__Group_0__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7139:1: rule__XAssignment__Group_0__3__Impl : ( ( rule__XAssignment__ValueAssignment_0_3 ) ) ;
+ public final void rule__XAssignment__Group_0__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7143:1: ( ( ( rule__XAssignment__ValueAssignment_0_3 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7144:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7144:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7145:1: ( rule__XAssignment__ValueAssignment_0_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7146:1: ( rule__XAssignment__ValueAssignment_0_3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7146:2: rule__XAssignment__ValueAssignment_0_3
+ {
+ pushFollow(FOLLOW_rule__XAssignment__ValueAssignment_0_3_in_rule__XAssignment__Group_0__3__Impl14769);
+ rule__XAssignment__ValueAssignment_0_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_0__3__Impl"
+
+
+ // $ANTLR start "rule__XAssignment__Group_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7164:1: rule__XAssignment__Group_1__0 : rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 ;
+ public final void rule__XAssignment__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7168:1: ( rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7169:2: rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1
+ {
+ pushFollow(FOLLOW_rule__XAssignment__Group_1__0__Impl_in_rule__XAssignment__Group_1__014807);
+ rule__XAssignment__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XAssignment__Group_1__1_in_rule__XAssignment__Group_1__014810);
+ rule__XAssignment__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_1__0"
+
+
+ // $ANTLR start "rule__XAssignment__Group_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7176:1: rule__XAssignment__Group_1__0__Impl : ( ruleXOrExpression ) ;
+ public final void rule__XAssignment__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7180:1: ( ( ruleXOrExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7181:1: ( ruleXOrExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7181:1: ( ruleXOrExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7182:1: ruleXOrExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_ruleXOrExpression_in_rule__XAssignment__Group_1__0__Impl14837);
+ ruleXOrExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__XAssignment__Group_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7193:1: rule__XAssignment__Group_1__1 : rule__XAssignment__Group_1__1__Impl ;
+ public final void rule__XAssignment__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7197:1: ( rule__XAssignment__Group_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7198:2: rule__XAssignment__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XAssignment__Group_1__1__Impl_in_rule__XAssignment__Group_1__114866);
+ rule__XAssignment__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_1__1"
+
+
+ // $ANTLR start "rule__XAssignment__Group_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7204:1: rule__XAssignment__Group_1__1__Impl : ( ( rule__XAssignment__Group_1_1__0 )? ) ;
+ public final void rule__XAssignment__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7208:1: ( ( ( rule__XAssignment__Group_1_1__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7209:1: ( ( rule__XAssignment__Group_1_1__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7209:1: ( ( rule__XAssignment__Group_1_1__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7210:1: ( rule__XAssignment__Group_1_1__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getGroup_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7211:1: ( rule__XAssignment__Group_1_1__0 )?
+ int alt56=2;
+ int LA56_0 = input.LA(1);
+
+ if ( (LA56_0==16) ) {
+ int LA56_1 = input.LA(2);
+
+ if ( (synpred92_InternalEmfParsleyDsl()) ) {
+ alt56=1;
+ }
+ }
+ else if ( (LA56_0==17) ) {
+ int LA56_2 = input.LA(2);
+
+ if ( (synpred92_InternalEmfParsleyDsl()) ) {
+ alt56=1;
+ }
+ }
+ switch (alt56) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7211:2: rule__XAssignment__Group_1_1__0
+ {
+ pushFollow(FOLLOW_rule__XAssignment__Group_1_1__0_in_rule__XAssignment__Group_1__1__Impl14893);
+ rule__XAssignment__Group_1_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getGroup_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__XAssignment__Group_1_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7225:1: rule__XAssignment__Group_1_1__0 : rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 ;
+ public final void rule__XAssignment__Group_1_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7229:1: ( rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7230:2: rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1
+ {
+ pushFollow(FOLLOW_rule__XAssignment__Group_1_1__0__Impl_in_rule__XAssignment__Group_1_1__014928);
+ rule__XAssignment__Group_1_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XAssignment__Group_1_1__1_in_rule__XAssignment__Group_1_1__014931);
+ rule__XAssignment__Group_1_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_1_1__0"
+
+
+ // $ANTLR start "rule__XAssignment__Group_1_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7237:1: rule__XAssignment__Group_1_1__0__Impl : ( ( rule__XAssignment__Group_1_1_0__0 ) ) ;
+ public final void rule__XAssignment__Group_1_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7241:1: ( ( ( rule__XAssignment__Group_1_1_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7242:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7242:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7243:1: ( rule__XAssignment__Group_1_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7244:1: ( rule__XAssignment__Group_1_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7244:2: rule__XAssignment__Group_1_1_0__0
+ {
+ pushFollow(FOLLOW_rule__XAssignment__Group_1_1_0__0_in_rule__XAssignment__Group_1_1__0__Impl14958);
+ rule__XAssignment__Group_1_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getGroup_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_1_1__0__Impl"
+
+
+ // $ANTLR start "rule__XAssignment__Group_1_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7254:1: rule__XAssignment__Group_1_1__1 : rule__XAssignment__Group_1_1__1__Impl ;
+ public final void rule__XAssignment__Group_1_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7258:1: ( rule__XAssignment__Group_1_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7259:2: rule__XAssignment__Group_1_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XAssignment__Group_1_1__1__Impl_in_rule__XAssignment__Group_1_1__114988);
+ rule__XAssignment__Group_1_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_1_1__1"
+
+
+ // $ANTLR start "rule__XAssignment__Group_1_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7265:1: rule__XAssignment__Group_1_1__1__Impl : ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) ;
+ public final void rule__XAssignment__Group_1_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7269:1: ( ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7270:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7270:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7271:1: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7272:1: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7272:2: rule__XAssignment__RightOperandAssignment_1_1_1
+ {
+ pushFollow(FOLLOW_rule__XAssignment__RightOperandAssignment_1_1_1_in_rule__XAssignment__Group_1_1__1__Impl15015);
+ rule__XAssignment__RightOperandAssignment_1_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_1_1__1__Impl"
+
+
+ // $ANTLR start "rule__XAssignment__Group_1_1_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7286:1: rule__XAssignment__Group_1_1_0__0 : rule__XAssignment__Group_1_1_0__0__Impl ;
+ public final void rule__XAssignment__Group_1_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7290:1: ( rule__XAssignment__Group_1_1_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7291:2: rule__XAssignment__Group_1_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__XAssignment__Group_1_1_0__0__Impl_in_rule__XAssignment__Group_1_1_0__015049);
+ rule__XAssignment__Group_1_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_1_1_0__0"
+
+
+ // $ANTLR start "rule__XAssignment__Group_1_1_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7297:1: rule__XAssignment__Group_1_1_0__0__Impl : ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) ;
+ public final void rule__XAssignment__Group_1_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7301:1: ( ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7302:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7302:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7303:1: ( rule__XAssignment__Group_1_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7304:1: ( rule__XAssignment__Group_1_1_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7304:2: rule__XAssignment__Group_1_1_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XAssignment__Group_1_1_0_0__0_in_rule__XAssignment__Group_1_1_0__0__Impl15076);
+ rule__XAssignment__Group_1_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_1_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7316:1: rule__XAssignment__Group_1_1_0_0__0 : rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 ;
+ public final void rule__XAssignment__Group_1_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7320:1: ( rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7321:2: rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1
+ {
+ pushFollow(FOLLOW_rule__XAssignment__Group_1_1_0_0__0__Impl_in_rule__XAssignment__Group_1_1_0_0__015108);
+ rule__XAssignment__Group_1_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XAssignment__Group_1_1_0_0__1_in_rule__XAssignment__Group_1_1_0_0__015111);
+ rule__XAssignment__Group_1_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_1_1_0_0__0"
+
+
+ // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7328:1: rule__XAssignment__Group_1_1_0_0__0__Impl : ( () ) ;
+ public final void rule__XAssignment__Group_1_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7332:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7333:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7333:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7334:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7335:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7337:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_1_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7347:1: rule__XAssignment__Group_1_1_0_0__1 : rule__XAssignment__Group_1_1_0_0__1__Impl ;
+ public final void rule__XAssignment__Group_1_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7351:1: ( rule__XAssignment__Group_1_1_0_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7352:2: rule__XAssignment__Group_1_1_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XAssignment__Group_1_1_0_0__1__Impl_in_rule__XAssignment__Group_1_1_0_0__115169);
+ rule__XAssignment__Group_1_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_1_1_0_0__1"
+
+
+ // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7358:1: rule__XAssignment__Group_1_1_0_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) ;
+ public final void rule__XAssignment__Group_1_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7362:1: ( ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7363:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7363:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7364:1: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7365:1: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7365:2: rule__XAssignment__FeatureAssignment_1_1_0_0_1
+ {
+ pushFollow(FOLLOW_rule__XAssignment__FeatureAssignment_1_1_0_0_1_in_rule__XAssignment__Group_1_1_0_0__1__Impl15196);
+ rule__XAssignment__FeatureAssignment_1_1_0_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__Group_1_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__XOrExpression__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7379:1: rule__XOrExpression__Group__0 : rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 ;
+ public final void rule__XOrExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7383:1: ( rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7384:2: rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1
+ {
+ pushFollow(FOLLOW_rule__XOrExpression__Group__0__Impl_in_rule__XOrExpression__Group__015230);
+ rule__XOrExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XOrExpression__Group__1_in_rule__XOrExpression__Group__015233);
+ rule__XOrExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOrExpression__Group__0"
+
+
+ // $ANTLR start "rule__XOrExpression__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7391:1: rule__XOrExpression__Group__0__Impl : ( ruleXAndExpression ) ;
+ public final void rule__XOrExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7395:1: ( ( ruleXAndExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7396:1: ( ruleXAndExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7396:1: ( ruleXAndExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7397:1: ruleXAndExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleXAndExpression_in_rule__XOrExpression__Group__0__Impl15260);
+ ruleXAndExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOrExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XOrExpression__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7408:1: rule__XOrExpression__Group__1 : rule__XOrExpression__Group__1__Impl ;
+ public final void rule__XOrExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7412:1: ( rule__XOrExpression__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7413:2: rule__XOrExpression__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XOrExpression__Group__1__Impl_in_rule__XOrExpression__Group__115289);
+ rule__XOrExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOrExpression__Group__1"
+
+
+ // $ANTLR start "rule__XOrExpression__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7419:1: rule__XOrExpression__Group__1__Impl : ( ( rule__XOrExpression__Group_1__0 )* ) ;
+ public final void rule__XOrExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7423:1: ( ( ( rule__XOrExpression__Group_1__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7424:1: ( ( rule__XOrExpression__Group_1__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7424:1: ( ( rule__XOrExpression__Group_1__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7425:1: ( rule__XOrExpression__Group_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOrExpressionAccess().getGroup_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7426:1: ( rule__XOrExpression__Group_1__0 )*
+ loop57:
+ do {
+ int alt57=2;
+ int LA57_0 = input.LA(1);
+
+ if ( (LA57_0==14) ) {
+ int LA57_2 = input.LA(2);
+
+ if ( (synpred93_InternalEmfParsleyDsl()) ) {
+ alt57=1;
+ }
+
+
+ }
+
+
+ switch (alt57) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7426:2: rule__XOrExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XOrExpression__Group_1__0_in_rule__XOrExpression__Group__1__Impl15316);
+ rule__XOrExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop57;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOrExpressionAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOrExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XOrExpression__Group_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7440:1: rule__XOrExpression__Group_1__0 : rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 ;
+ public final void rule__XOrExpression__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7444:1: ( rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7445:2: rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1
+ {
+ pushFollow(FOLLOW_rule__XOrExpression__Group_1__0__Impl_in_rule__XOrExpression__Group_1__015351);
+ rule__XOrExpression__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XOrExpression__Group_1__1_in_rule__XOrExpression__Group_1__015354);
+ rule__XOrExpression__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOrExpression__Group_1__0"
+
+
+ // $ANTLR start "rule__XOrExpression__Group_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7452:1: rule__XOrExpression__Group_1__0__Impl : ( ( rule__XOrExpression__Group_1_0__0 ) ) ;
+ public final void rule__XOrExpression__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7456:1: ( ( ( rule__XOrExpression__Group_1_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7457:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7457:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7458:1: ( rule__XOrExpression__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOrExpressionAccess().getGroup_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7459:1: ( rule__XOrExpression__Group_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7459:2: rule__XOrExpression__Group_1_0__0
+ {
+ pushFollow(FOLLOW_rule__XOrExpression__Group_1_0__0_in_rule__XOrExpression__Group_1__0__Impl15381);
+ rule__XOrExpression__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOrExpressionAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOrExpression__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__XOrExpression__Group_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7469:1: rule__XOrExpression__Group_1__1 : rule__XOrExpression__Group_1__1__Impl ;
+ public final void rule__XOrExpression__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7473:1: ( rule__XOrExpression__Group_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7474:2: rule__XOrExpression__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XOrExpression__Group_1__1__Impl_in_rule__XOrExpression__Group_1__115411);
+ rule__XOrExpression__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOrExpression__Group_1__1"
+
+
+ // $ANTLR start "rule__XOrExpression__Group_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7480:1: rule__XOrExpression__Group_1__1__Impl : ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) ;
+ public final void rule__XOrExpression__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7484:1: ( ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7485:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7485:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7486:1: ( rule__XOrExpression__RightOperandAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7487:1: ( rule__XOrExpression__RightOperandAssignment_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7487:2: rule__XOrExpression__RightOperandAssignment_1_1
+ {
+ pushFollow(FOLLOW_rule__XOrExpression__RightOperandAssignment_1_1_in_rule__XOrExpression__Group_1__1__Impl15438);
+ rule__XOrExpression__RightOperandAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOrExpression__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__XOrExpression__Group_1_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7501:1: rule__XOrExpression__Group_1_0__0 : rule__XOrExpression__Group_1_0__0__Impl ;
+ public final void rule__XOrExpression__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7505:1: ( rule__XOrExpression__Group_1_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7506:2: rule__XOrExpression__Group_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__XOrExpression__Group_1_0__0__Impl_in_rule__XOrExpression__Group_1_0__015472);
+ rule__XOrExpression__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOrExpression__Group_1_0__0"
+
+
+ // $ANTLR start "rule__XOrExpression__Group_1_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7512:1: rule__XOrExpression__Group_1_0__0__Impl : ( ( rule__XOrExpression__Group_1_0_0__0 ) ) ;
+ public final void rule__XOrExpression__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7516:1: ( ( ( rule__XOrExpression__Group_1_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7517:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7517:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7518:1: ( rule__XOrExpression__Group_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7519:1: ( rule__XOrExpression__Group_1_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7519:2: rule__XOrExpression__Group_1_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XOrExpression__Group_1_0_0__0_in_rule__XOrExpression__Group_1_0__0__Impl15499);
+ rule__XOrExpression__Group_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOrExpression__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__XOrExpression__Group_1_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7531:1: rule__XOrExpression__Group_1_0_0__0 : rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 ;
+ public final void rule__XOrExpression__Group_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7535:1: ( rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7536:2: rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1
+ {
+ pushFollow(FOLLOW_rule__XOrExpression__Group_1_0_0__0__Impl_in_rule__XOrExpression__Group_1_0_0__015531);
+ rule__XOrExpression__Group_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XOrExpression__Group_1_0_0__1_in_rule__XOrExpression__Group_1_0_0__015534);
+ rule__XOrExpression__Group_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOrExpression__Group_1_0_0__0"
+
+
+ // $ANTLR start "rule__XOrExpression__Group_1_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7543:1: rule__XOrExpression__Group_1_0_0__0__Impl : ( () ) ;
+ public final void rule__XOrExpression__Group_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7547:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7548:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7548:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7549:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7550:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7552:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOrExpression__Group_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XOrExpression__Group_1_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7562:1: rule__XOrExpression__Group_1_0_0__1 : rule__XOrExpression__Group_1_0_0__1__Impl ;
+ public final void rule__XOrExpression__Group_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7566:1: ( rule__XOrExpression__Group_1_0_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7567:2: rule__XOrExpression__Group_1_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XOrExpression__Group_1_0_0__1__Impl_in_rule__XOrExpression__Group_1_0_0__115592);
+ rule__XOrExpression__Group_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOrExpression__Group_1_0_0__1"
+
+
+ // $ANTLR start "rule__XOrExpression__Group_1_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7573:1: rule__XOrExpression__Group_1_0_0__1__Impl : ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) ;
+ public final void rule__XOrExpression__Group_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7577:1: ( ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7578:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7578:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7579:1: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7580:1: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7580:2: rule__XOrExpression__FeatureAssignment_1_0_0_1
+ {
+ pushFollow(FOLLOW_rule__XOrExpression__FeatureAssignment_1_0_0_1_in_rule__XOrExpression__Group_1_0_0__1__Impl15619);
+ rule__XOrExpression__FeatureAssignment_1_0_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOrExpression__Group_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__XAndExpression__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7594:1: rule__XAndExpression__Group__0 : rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 ;
+ public final void rule__XAndExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7598:1: ( rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7599:2: rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1
+ {
+ pushFollow(FOLLOW_rule__XAndExpression__Group__0__Impl_in_rule__XAndExpression__Group__015653);
+ rule__XAndExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XAndExpression__Group__1_in_rule__XAndExpression__Group__015656);
+ rule__XAndExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAndExpression__Group__0"
+
+
+ // $ANTLR start "rule__XAndExpression__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7606:1: rule__XAndExpression__Group__0__Impl : ( ruleXEqualityExpression ) ;
+ public final void rule__XAndExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7610:1: ( ( ruleXEqualityExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7611:1: ( ruleXEqualityExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7611:1: ( ruleXEqualityExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7612:1: ruleXEqualityExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleXEqualityExpression_in_rule__XAndExpression__Group__0__Impl15683);
+ ruleXEqualityExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAndExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XAndExpression__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7623:1: rule__XAndExpression__Group__1 : rule__XAndExpression__Group__1__Impl ;
+ public final void rule__XAndExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7627:1: ( rule__XAndExpression__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7628:2: rule__XAndExpression__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XAndExpression__Group__1__Impl_in_rule__XAndExpression__Group__115712);
+ rule__XAndExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAndExpression__Group__1"
+
+
+ // $ANTLR start "rule__XAndExpression__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7634:1: rule__XAndExpression__Group__1__Impl : ( ( rule__XAndExpression__Group_1__0 )* ) ;
+ public final void rule__XAndExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7638:1: ( ( ( rule__XAndExpression__Group_1__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7639:1: ( ( rule__XAndExpression__Group_1__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7639:1: ( ( rule__XAndExpression__Group_1__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7640:1: ( rule__XAndExpression__Group_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAndExpressionAccess().getGroup_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7641:1: ( rule__XAndExpression__Group_1__0 )*
+ loop58:
+ do {
+ int alt58=2;
+ int LA58_0 = input.LA(1);
+
+ if ( (LA58_0==15) ) {
+ int LA58_2 = input.LA(2);
+
+ if ( (synpred94_InternalEmfParsleyDsl()) ) {
+ alt58=1;
+ }
+
+
+ }
+
+
+ switch (alt58) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7641:2: rule__XAndExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XAndExpression__Group_1__0_in_rule__XAndExpression__Group__1__Impl15739);
+ rule__XAndExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop58;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAndExpressionAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAndExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XAndExpression__Group_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7655:1: rule__XAndExpression__Group_1__0 : rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 ;
+ public final void rule__XAndExpression__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7659:1: ( rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7660:2: rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1
+ {
+ pushFollow(FOLLOW_rule__XAndExpression__Group_1__0__Impl_in_rule__XAndExpression__Group_1__015774);
+ rule__XAndExpression__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XAndExpression__Group_1__1_in_rule__XAndExpression__Group_1__015777);
+ rule__XAndExpression__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAndExpression__Group_1__0"
+
+
+ // $ANTLR start "rule__XAndExpression__Group_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7667:1: rule__XAndExpression__Group_1__0__Impl : ( ( rule__XAndExpression__Group_1_0__0 ) ) ;
+ public final void rule__XAndExpression__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7671:1: ( ( ( rule__XAndExpression__Group_1_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7672:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7672:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7673:1: ( rule__XAndExpression__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAndExpressionAccess().getGroup_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7674:1: ( rule__XAndExpression__Group_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7674:2: rule__XAndExpression__Group_1_0__0
+ {
+ pushFollow(FOLLOW_rule__XAndExpression__Group_1_0__0_in_rule__XAndExpression__Group_1__0__Impl15804);
+ rule__XAndExpression__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAndExpressionAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAndExpression__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__XAndExpression__Group_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7684:1: rule__XAndExpression__Group_1__1 : rule__XAndExpression__Group_1__1__Impl ;
+ public final void rule__XAndExpression__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7688:1: ( rule__XAndExpression__Group_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7689:2: rule__XAndExpression__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XAndExpression__Group_1__1__Impl_in_rule__XAndExpression__Group_1__115834);
+ rule__XAndExpression__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAndExpression__Group_1__1"
+
+
+ // $ANTLR start "rule__XAndExpression__Group_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7695:1: rule__XAndExpression__Group_1__1__Impl : ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) ;
+ public final void rule__XAndExpression__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7699:1: ( ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7700:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7700:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7701:1: ( rule__XAndExpression__RightOperandAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7702:1: ( rule__XAndExpression__RightOperandAssignment_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7702:2: rule__XAndExpression__RightOperandAssignment_1_1
+ {
+ pushFollow(FOLLOW_rule__XAndExpression__RightOperandAssignment_1_1_in_rule__XAndExpression__Group_1__1__Impl15861);
+ rule__XAndExpression__RightOperandAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAndExpression__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__XAndExpression__Group_1_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7716:1: rule__XAndExpression__Group_1_0__0 : rule__XAndExpression__Group_1_0__0__Impl ;
+ public final void rule__XAndExpression__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7720:1: ( rule__XAndExpression__Group_1_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7721:2: rule__XAndExpression__Group_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__XAndExpression__Group_1_0__0__Impl_in_rule__XAndExpression__Group_1_0__015895);
+ rule__XAndExpression__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAndExpression__Group_1_0__0"
+
+
+ // $ANTLR start "rule__XAndExpression__Group_1_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7727:1: rule__XAndExpression__Group_1_0__0__Impl : ( ( rule__XAndExpression__Group_1_0_0__0 ) ) ;
+ public final void rule__XAndExpression__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7731:1: ( ( ( rule__XAndExpression__Group_1_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7732:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7732:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7733:1: ( rule__XAndExpression__Group_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7734:1: ( rule__XAndExpression__Group_1_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7734:2: rule__XAndExpression__Group_1_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XAndExpression__Group_1_0_0__0_in_rule__XAndExpression__Group_1_0__0__Impl15922);
+ rule__XAndExpression__Group_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAndExpression__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__XAndExpression__Group_1_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7746:1: rule__XAndExpression__Group_1_0_0__0 : rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 ;
+ public final void rule__XAndExpression__Group_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7750:1: ( rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7751:2: rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1
+ {
+ pushFollow(FOLLOW_rule__XAndExpression__Group_1_0_0__0__Impl_in_rule__XAndExpression__Group_1_0_0__015954);
+ rule__XAndExpression__Group_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XAndExpression__Group_1_0_0__1_in_rule__XAndExpression__Group_1_0_0__015957);
+ rule__XAndExpression__Group_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAndExpression__Group_1_0_0__0"
+
+
+ // $ANTLR start "rule__XAndExpression__Group_1_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7758:1: rule__XAndExpression__Group_1_0_0__0__Impl : ( () ) ;
+ public final void rule__XAndExpression__Group_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7762:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7763:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7763:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7764:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7765:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7767:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAndExpression__Group_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XAndExpression__Group_1_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7777:1: rule__XAndExpression__Group_1_0_0__1 : rule__XAndExpression__Group_1_0_0__1__Impl ;
+ public final void rule__XAndExpression__Group_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7781:1: ( rule__XAndExpression__Group_1_0_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7782:2: rule__XAndExpression__Group_1_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XAndExpression__Group_1_0_0__1__Impl_in_rule__XAndExpression__Group_1_0_0__116015);
+ rule__XAndExpression__Group_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAndExpression__Group_1_0_0__1"
+
+
+ // $ANTLR start "rule__XAndExpression__Group_1_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7788:1: rule__XAndExpression__Group_1_0_0__1__Impl : ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) ;
+ public final void rule__XAndExpression__Group_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7792:1: ( ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7793:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7793:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7794:1: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7795:1: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7795:2: rule__XAndExpression__FeatureAssignment_1_0_0_1
+ {
+ pushFollow(FOLLOW_rule__XAndExpression__FeatureAssignment_1_0_0_1_in_rule__XAndExpression__Group_1_0_0__1__Impl16042);
+ rule__XAndExpression__FeatureAssignment_1_0_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAndExpression__Group_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__XEqualityExpression__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7809:1: rule__XEqualityExpression__Group__0 : rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 ;
+ public final void rule__XEqualityExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7813:1: ( rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7814:2: rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1
+ {
+ pushFollow(FOLLOW_rule__XEqualityExpression__Group__0__Impl_in_rule__XEqualityExpression__Group__016076);
+ rule__XEqualityExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XEqualityExpression__Group__1_in_rule__XEqualityExpression__Group__016079);
+ rule__XEqualityExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XEqualityExpression__Group__0"
+
+
+ // $ANTLR start "rule__XEqualityExpression__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7821:1: rule__XEqualityExpression__Group__0__Impl : ( ruleXRelationalExpression ) ;
+ public final void rule__XEqualityExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7825:1: ( ( ruleXRelationalExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7826:1: ( ruleXRelationalExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7826:1: ( ruleXRelationalExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7827:1: ruleXRelationalExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleXRelationalExpression_in_rule__XEqualityExpression__Group__0__Impl16106);
+ ruleXRelationalExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XEqualityExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XEqualityExpression__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7838:1: rule__XEqualityExpression__Group__1 : rule__XEqualityExpression__Group__1__Impl ;
+ public final void rule__XEqualityExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7842:1: ( rule__XEqualityExpression__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7843:2: rule__XEqualityExpression__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XEqualityExpression__Group__1__Impl_in_rule__XEqualityExpression__Group__116135);
+ rule__XEqualityExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XEqualityExpression__Group__1"
+
+
+ // $ANTLR start "rule__XEqualityExpression__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7849:1: rule__XEqualityExpression__Group__1__Impl : ( ( rule__XEqualityExpression__Group_1__0 )* ) ;
+ public final void rule__XEqualityExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7853:1: ( ( ( rule__XEqualityExpression__Group_1__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7854:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7854:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7855:1: ( rule__XEqualityExpression__Group_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXEqualityExpressionAccess().getGroup_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7856:1: ( rule__XEqualityExpression__Group_1__0 )*
+ loop59:
+ do {
+ int alt59=2;
+ switch ( input.LA(1) ) {
+ case 18:
+ {
+ int LA59_2 = input.LA(2);
+
+ if ( (synpred95_InternalEmfParsleyDsl()) ) {
+ alt59=1;
+ }
+
+
+ }
+ break;
+ case 19:
+ {
+ int LA59_3 = input.LA(2);
+
+ if ( (synpred95_InternalEmfParsleyDsl()) ) {
+ alt59=1;
+ }
+
+
+ }
+ break;
+ case 20:
+ {
+ int LA59_4 = input.LA(2);
+
+ if ( (synpred95_InternalEmfParsleyDsl()) ) {
+ alt59=1;
+ }
+
+
+ }
+ break;
+ case 21:
+ {
+ int LA59_5 = input.LA(2);
+
+ if ( (synpred95_InternalEmfParsleyDsl()) ) {
+ alt59=1;
+ }
+
+
+ }
+ break;
+
+ }
+
+ switch (alt59) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7856:2: rule__XEqualityExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XEqualityExpression__Group_1__0_in_rule__XEqualityExpression__Group__1__Impl16162);
+ rule__XEqualityExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop59;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXEqualityExpressionAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XEqualityExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XEqualityExpression__Group_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7870:1: rule__XEqualityExpression__Group_1__0 : rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 ;
+ public final void rule__XEqualityExpression__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7874:1: ( rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7875:2: rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1
+ {
+ pushFollow(FOLLOW_rule__XEqualityExpression__Group_1__0__Impl_in_rule__XEqualityExpression__Group_1__016197);
+ rule__XEqualityExpression__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XEqualityExpression__Group_1__1_in_rule__XEqualityExpression__Group_1__016200);
+ rule__XEqualityExpression__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XEqualityExpression__Group_1__0"
+
+
+ // $ANTLR start "rule__XEqualityExpression__Group_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7882:1: rule__XEqualityExpression__Group_1__0__Impl : ( ( rule__XEqualityExpression__Group_1_0__0 ) ) ;
+ public final void rule__XEqualityExpression__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7886:1: ( ( ( rule__XEqualityExpression__Group_1_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7887:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7887:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7888:1: ( rule__XEqualityExpression__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7889:1: ( rule__XEqualityExpression__Group_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7889:2: rule__XEqualityExpression__Group_1_0__0
+ {
+ pushFollow(FOLLOW_rule__XEqualityExpression__Group_1_0__0_in_rule__XEqualityExpression__Group_1__0__Impl16227);
+ rule__XEqualityExpression__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XEqualityExpression__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__XEqualityExpression__Group_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7899:1: rule__XEqualityExpression__Group_1__1 : rule__XEqualityExpression__Group_1__1__Impl ;
+ public final void rule__XEqualityExpression__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7903:1: ( rule__XEqualityExpression__Group_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7904:2: rule__XEqualityExpression__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XEqualityExpression__Group_1__1__Impl_in_rule__XEqualityExpression__Group_1__116257);
+ rule__XEqualityExpression__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XEqualityExpression__Group_1__1"
+
+
+ // $ANTLR start "rule__XEqualityExpression__Group_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7910:1: rule__XEqualityExpression__Group_1__1__Impl : ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) ;
+ public final void rule__XEqualityExpression__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7914:1: ( ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7915:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7915:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7916:1: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7917:1: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7917:2: rule__XEqualityExpression__RightOperandAssignment_1_1
+ {
+ pushFollow(FOLLOW_rule__XEqualityExpression__RightOperandAssignment_1_1_in_rule__XEqualityExpression__Group_1__1__Impl16284);
+ rule__XEqualityExpression__RightOperandAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XEqualityExpression__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__XEqualityExpression__Group_1_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7931:1: rule__XEqualityExpression__Group_1_0__0 : rule__XEqualityExpression__Group_1_0__0__Impl ;
+ public final void rule__XEqualityExpression__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7935:1: ( rule__XEqualityExpression__Group_1_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7936:2: rule__XEqualityExpression__Group_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__XEqualityExpression__Group_1_0__0__Impl_in_rule__XEqualityExpression__Group_1_0__016318);
+ rule__XEqualityExpression__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XEqualityExpression__Group_1_0__0"
+
+
+ // $ANTLR start "rule__XEqualityExpression__Group_1_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7942:1: rule__XEqualityExpression__Group_1_0__0__Impl : ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) ;
+ public final void rule__XEqualityExpression__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7946:1: ( ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7947:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7947:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7948:1: ( rule__XEqualityExpression__Group_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7949:1: ( rule__XEqualityExpression__Group_1_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7949:2: rule__XEqualityExpression__Group_1_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XEqualityExpression__Group_1_0_0__0_in_rule__XEqualityExpression__Group_1_0__0__Impl16345);
+ rule__XEqualityExpression__Group_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XEqualityExpression__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7961:1: rule__XEqualityExpression__Group_1_0_0__0 : rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 ;
+ public final void rule__XEqualityExpression__Group_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7965:1: ( rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7966:2: rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1
+ {
+ pushFollow(FOLLOW_rule__XEqualityExpression__Group_1_0_0__0__Impl_in_rule__XEqualityExpression__Group_1_0_0__016377);
+ rule__XEqualityExpression__Group_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XEqualityExpression__Group_1_0_0__1_in_rule__XEqualityExpression__Group_1_0_0__016380);
+ rule__XEqualityExpression__Group_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XEqualityExpression__Group_1_0_0__0"
+
+
+ // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7973:1: rule__XEqualityExpression__Group_1_0_0__0__Impl : ( () ) ;
+ public final void rule__XEqualityExpression__Group_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7977:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7978:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7978:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7979:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7980:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7982:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XEqualityExpression__Group_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7992:1: rule__XEqualityExpression__Group_1_0_0__1 : rule__XEqualityExpression__Group_1_0_0__1__Impl ;
+ public final void rule__XEqualityExpression__Group_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7996:1: ( rule__XEqualityExpression__Group_1_0_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7997:2: rule__XEqualityExpression__Group_1_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XEqualityExpression__Group_1_0_0__1__Impl_in_rule__XEqualityExpression__Group_1_0_0__116438);
+ rule__XEqualityExpression__Group_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XEqualityExpression__Group_1_0_0__1"
+
+
+ // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8003:1: rule__XEqualityExpression__Group_1_0_0__1__Impl : ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) ;
+ public final void rule__XEqualityExpression__Group_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8007:1: ( ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8008:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8008:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8009:1: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8010:1: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8010:2: rule__XEqualityExpression__FeatureAssignment_1_0_0_1
+ {
+ pushFollow(FOLLOW_rule__XEqualityExpression__FeatureAssignment_1_0_0_1_in_rule__XEqualityExpression__Group_1_0_0__1__Impl16465);
+ rule__XEqualityExpression__FeatureAssignment_1_0_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XEqualityExpression__Group_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8024:1: rule__XRelationalExpression__Group__0 : rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 ;
+ public final void rule__XRelationalExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8028:1: ( rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8029:2: rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group__0__Impl_in_rule__XRelationalExpression__Group__016499);
+ rule__XRelationalExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group__1_in_rule__XRelationalExpression__Group__016502);
+ rule__XRelationalExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group__0"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8036:1: rule__XRelationalExpression__Group__0__Impl : ( ruleXOtherOperatorExpression ) ;
+ public final void rule__XRelationalExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8040:1: ( ( ruleXOtherOperatorExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8041:1: ( ruleXOtherOperatorExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8041:1: ( ruleXOtherOperatorExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8042:1: ruleXOtherOperatorExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleXOtherOperatorExpression_in_rule__XRelationalExpression__Group__0__Impl16529);
+ ruleXOtherOperatorExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8053:1: rule__XRelationalExpression__Group__1 : rule__XRelationalExpression__Group__1__Impl ;
+ public final void rule__XRelationalExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8057:1: ( rule__XRelationalExpression__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8058:2: rule__XRelationalExpression__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group__1__Impl_in_rule__XRelationalExpression__Group__116558);
+ rule__XRelationalExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group__1"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8064:1: rule__XRelationalExpression__Group__1__Impl : ( ( rule__XRelationalExpression__Alternatives_1 )* ) ;
+ public final void rule__XRelationalExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8068:1: ( ( ( rule__XRelationalExpression__Alternatives_1 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8069:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8069:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8070:1: ( rule__XRelationalExpression__Alternatives_1 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8071:1: ( rule__XRelationalExpression__Alternatives_1 )*
+ loop60:
+ do {
+ int alt60=2;
+ switch ( input.LA(1) ) {
+ case 25:
+ {
+ int LA60_2 = input.LA(2);
+
+ if ( (synpred96_InternalEmfParsleyDsl()) ) {
+ alt60=1;
+ }
+
+
+ }
+ break;
+ case 24:
+ {
+ int LA60_3 = input.LA(2);
+
+ if ( (synpred96_InternalEmfParsleyDsl()) ) {
+ alt60=1;
+ }
+
+
+ }
+ break;
+ case 70:
+ {
+ int LA60_4 = input.LA(2);
+
+ if ( (synpred96_InternalEmfParsleyDsl()) ) {
+ alt60=1;
+ }
+
+
+ }
+ break;
+ case 22:
+ {
+ int LA60_5 = input.LA(2);
+
+ if ( (synpred96_InternalEmfParsleyDsl()) ) {
+ alt60=1;
+ }
+
+
+ }
+ break;
+ case 23:
+ {
+ int LA60_6 = input.LA(2);
+
+ if ( (synpred96_InternalEmfParsleyDsl()) ) {
+ alt60=1;
+ }
+
+
+ }
+ break;
+
+ }
+
+ switch (alt60) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8071:2: rule__XRelationalExpression__Alternatives_1
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Alternatives_1_in_rule__XRelationalExpression__Group__1__Impl16585);
+ rule__XRelationalExpression__Alternatives_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop60;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8085:1: rule__XRelationalExpression__Group_1_0__0 : rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 ;
+ public final void rule__XRelationalExpression__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8089:1: ( rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8090:2: rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_0__0__Impl_in_rule__XRelationalExpression__Group_1_0__016620);
+ rule__XRelationalExpression__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_0__1_in_rule__XRelationalExpression__Group_1_0__016623);
+ rule__XRelationalExpression__Group_1_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_0__0"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8097:1: rule__XRelationalExpression__Group_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) ;
+ public final void rule__XRelationalExpression__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8101:1: ( ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8102:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8102:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8103:1: ( rule__XRelationalExpression__Group_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8104:1: ( rule__XRelationalExpression__Group_1_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8104:2: rule__XRelationalExpression__Group_1_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_0_0__0_in_rule__XRelationalExpression__Group_1_0__0__Impl16650);
+ rule__XRelationalExpression__Group_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8114:1: rule__XRelationalExpression__Group_1_0__1 : rule__XRelationalExpression__Group_1_0__1__Impl ;
+ public final void rule__XRelationalExpression__Group_1_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8118:1: ( rule__XRelationalExpression__Group_1_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8119:2: rule__XRelationalExpression__Group_1_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_0__1__Impl_in_rule__XRelationalExpression__Group_1_0__116680);
+ rule__XRelationalExpression__Group_1_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_0__1"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8125:1: rule__XRelationalExpression__Group_1_0__1__Impl : ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) ;
+ public final void rule__XRelationalExpression__Group_1_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8129:1: ( ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8130:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8130:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8131:1: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8132:1: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8132:2: rule__XRelationalExpression__TypeAssignment_1_0_1
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__TypeAssignment_1_0_1_in_rule__XRelationalExpression__Group_1_0__1__Impl16707);
+ rule__XRelationalExpression__TypeAssignment_1_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_0__1__Impl"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8146:1: rule__XRelationalExpression__Group_1_0_0__0 : rule__XRelationalExpression__Group_1_0_0__0__Impl ;
+ public final void rule__XRelationalExpression__Group_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8150:1: ( rule__XRelationalExpression__Group_1_0_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8151:2: rule__XRelationalExpression__Group_1_0_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_0_0__0__Impl_in_rule__XRelationalExpression__Group_1_0_0__016741);
+ rule__XRelationalExpression__Group_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_0_0__0"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8157:1: rule__XRelationalExpression__Group_1_0_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) ;
+ public final void rule__XRelationalExpression__Group_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8161:1: ( ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8162:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8162:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8163:1: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8164:1: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8164:2: rule__XRelationalExpression__Group_1_0_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_0_0_0__0_in_rule__XRelationalExpression__Group_1_0_0__0__Impl16768);
+ rule__XRelationalExpression__Group_1_0_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8176:1: rule__XRelationalExpression__Group_1_0_0_0__0 : rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 ;
+ public final void rule__XRelationalExpression__Group_1_0_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8180:1: ( rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8181:2: rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_0_0_0__0__Impl_in_rule__XRelationalExpression__Group_1_0_0_0__016800);
+ rule__XRelationalExpression__Group_1_0_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_0_0_0__1_in_rule__XRelationalExpression__Group_1_0_0_0__016803);
+ rule__XRelationalExpression__Group_1_0_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_0_0_0__0"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8188:1: rule__XRelationalExpression__Group_1_0_0_0__0__Impl : ( () ) ;
+ public final void rule__XRelationalExpression__Group_1_0_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8192:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8193:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8193:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8194:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8195:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8197:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_0_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8207:1: rule__XRelationalExpression__Group_1_0_0_0__1 : rule__XRelationalExpression__Group_1_0_0_0__1__Impl ;
+ public final void rule__XRelationalExpression__Group_1_0_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8211:1: ( rule__XRelationalExpression__Group_1_0_0_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8212:2: rule__XRelationalExpression__Group_1_0_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_0_0_0__1__Impl_in_rule__XRelationalExpression__Group_1_0_0_0__116861);
+ rule__XRelationalExpression__Group_1_0_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_0_0_0__1"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8218:1: rule__XRelationalExpression__Group_1_0_0_0__1__Impl : ( 'instanceof' ) ;
+ public final void rule__XRelationalExpression__Group_1_0_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8222:1: ( ( 'instanceof' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8223:1: ( 'instanceof' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8223:1: ( 'instanceof' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8224:1: 'instanceof'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
+ }
+ match(input,70,FOLLOW_70_in_rule__XRelationalExpression__Group_1_0_0_0__1__Impl16889); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_0_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8241:1: rule__XRelationalExpression__Group_1_1__0 : rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 ;
+ public final void rule__XRelationalExpression__Group_1_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8245:1: ( rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8246:2: rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_1__0__Impl_in_rule__XRelationalExpression__Group_1_1__016924);
+ rule__XRelationalExpression__Group_1_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_1__1_in_rule__XRelationalExpression__Group_1_1__016927);
+ rule__XRelationalExpression__Group_1_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_1__0"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8253:1: rule__XRelationalExpression__Group_1_1__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) ;
+ public final void rule__XRelationalExpression__Group_1_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8257:1: ( ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8258:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8258:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8259:1: ( rule__XRelationalExpression__Group_1_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8260:1: ( rule__XRelationalExpression__Group_1_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8260:2: rule__XRelationalExpression__Group_1_1_0__0
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_1_0__0_in_rule__XRelationalExpression__Group_1_1__0__Impl16954);
+ rule__XRelationalExpression__Group_1_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_1__0__Impl"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8270:1: rule__XRelationalExpression__Group_1_1__1 : rule__XRelationalExpression__Group_1_1__1__Impl ;
+ public final void rule__XRelationalExpression__Group_1_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8274:1: ( rule__XRelationalExpression__Group_1_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8275:2: rule__XRelationalExpression__Group_1_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_1__1__Impl_in_rule__XRelationalExpression__Group_1_1__116984);
+ rule__XRelationalExpression__Group_1_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_1__1"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8281:1: rule__XRelationalExpression__Group_1_1__1__Impl : ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) ;
+ public final void rule__XRelationalExpression__Group_1_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8285:1: ( ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8286:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8286:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8287:1: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8288:1: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8288:2: rule__XRelationalExpression__RightOperandAssignment_1_1_1
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__RightOperandAssignment_1_1_1_in_rule__XRelationalExpression__Group_1_1__1__Impl17011);
+ rule__XRelationalExpression__RightOperandAssignment_1_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_1__1__Impl"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_1_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8302:1: rule__XRelationalExpression__Group_1_1_0__0 : rule__XRelationalExpression__Group_1_1_0__0__Impl ;
+ public final void rule__XRelationalExpression__Group_1_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8306:1: ( rule__XRelationalExpression__Group_1_1_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8307:2: rule__XRelationalExpression__Group_1_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_1_0__0__Impl_in_rule__XRelationalExpression__Group_1_1_0__017045);
+ rule__XRelationalExpression__Group_1_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_1_0__0"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_1_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8313:1: rule__XRelationalExpression__Group_1_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) ;
+ public final void rule__XRelationalExpression__Group_1_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8317:1: ( ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8318:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8318:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8319:1: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8320:1: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8320:2: rule__XRelationalExpression__Group_1_1_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_1_0_0__0_in_rule__XRelationalExpression__Group_1_1_0__0__Impl17072);
+ rule__XRelationalExpression__Group_1_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8332:1: rule__XRelationalExpression__Group_1_1_0_0__0 : rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 ;
+ public final void rule__XRelationalExpression__Group_1_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8336:1: ( rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8337:2: rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_1_0_0__0__Impl_in_rule__XRelationalExpression__Group_1_1_0_0__017104);
+ rule__XRelationalExpression__Group_1_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_1_0_0__1_in_rule__XRelationalExpression__Group_1_1_0_0__017107);
+ rule__XRelationalExpression__Group_1_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_1_0_0__0"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8344:1: rule__XRelationalExpression__Group_1_1_0_0__0__Impl : ( () ) ;
+ public final void rule__XRelationalExpression__Group_1_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8348:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8349:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8349:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8350:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8351:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8353:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8363:1: rule__XRelationalExpression__Group_1_1_0_0__1 : rule__XRelationalExpression__Group_1_1_0_0__1__Impl ;
+ public final void rule__XRelationalExpression__Group_1_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8367:1: ( rule__XRelationalExpression__Group_1_1_0_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8368:2: rule__XRelationalExpression__Group_1_1_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Group_1_1_0_0__1__Impl_in_rule__XRelationalExpression__Group_1_1_0_0__117165);
+ rule__XRelationalExpression__Group_1_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_1_0_0__1"
+
+
+ // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8374:1: rule__XRelationalExpression__Group_1_1_0_0__1__Impl : ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) ;
+ public final void rule__XRelationalExpression__Group_1_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8378:1: ( ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8379:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8379:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8380:1: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8381:1: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8381:2: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1_in_rule__XRelationalExpression__Group_1_1_0_0__1__Impl17192);
+ rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__Group_1_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__XOtherOperatorExpression__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8395:1: rule__XOtherOperatorExpression__Group__0 : rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 ;
+ public final void rule__XOtherOperatorExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8399:1: ( rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8400:2: rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1
+ {
+ pushFollow(FOLLOW_rule__XOtherOperatorExpression__Group__0__Impl_in_rule__XOtherOperatorExpression__Group__017226);
+ rule__XOtherOperatorExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XOtherOperatorExpression__Group__1_in_rule__XOtherOperatorExpression__Group__017229);
+ rule__XOtherOperatorExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOtherOperatorExpression__Group__0"
+
+
+ // $ANTLR start "rule__XOtherOperatorExpression__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8407:1: rule__XOtherOperatorExpression__Group__0__Impl : ( ruleXAdditiveExpression ) ;
+ public final void rule__XOtherOperatorExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8411:1: ( ( ruleXAdditiveExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8412:1: ( ruleXAdditiveExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8412:1: ( ruleXAdditiveExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8413:1: ruleXAdditiveExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleXAdditiveExpression_in_rule__XOtherOperatorExpression__Group__0__Impl17256);
+ ruleXAdditiveExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOtherOperatorExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XOtherOperatorExpression__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8424:1: rule__XOtherOperatorExpression__Group__1 : rule__XOtherOperatorExpression__Group__1__Impl ;
+ public final void rule__XOtherOperatorExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8428:1: ( rule__XOtherOperatorExpression__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8429:2: rule__XOtherOperatorExpression__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XOtherOperatorExpression__Group__1__Impl_in_rule__XOtherOperatorExpression__Group__117285);
+ rule__XOtherOperatorExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOtherOperatorExpression__Group__1"
+
+
+ // $ANTLR start "rule__XOtherOperatorExpression__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8435:1: rule__XOtherOperatorExpression__Group__1__Impl : ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) ;
+ public final void rule__XOtherOperatorExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8439:1: ( ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8440:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8440:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8441:1: ( rule__XOtherOperatorExpression__Group_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8442:1: ( rule__XOtherOperatorExpression__Group_1__0 )*
+ loop61:
+ do {
+ int alt61=2;
+ alt61 = dfa61.predict(input);
+ switch (alt61) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8442:2: rule__XOtherOperatorExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XOtherOperatorExpression__Group_1__0_in_rule__XOtherOperatorExpression__Group__1__Impl17312);
+ rule__XOtherOperatorExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop61;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOtherOperatorExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XOtherOperatorExpression__Group_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8456:1: rule__XOtherOperatorExpression__Group_1__0 : rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 ;
+ public final void rule__XOtherOperatorExpression__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8460:1: ( rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8461:2: rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1
+ {
+ pushFollow(FOLLOW_rule__XOtherOperatorExpression__Group_1__0__Impl_in_rule__XOtherOperatorExpression__Group_1__017347);
+ rule__XOtherOperatorExpression__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XOtherOperatorExpression__Group_1__1_in_rule__XOtherOperatorExpression__Group_1__017350);
+ rule__XOtherOperatorExpression__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOtherOperatorExpression__Group_1__0"
+
+
+ // $ANTLR start "rule__XOtherOperatorExpression__Group_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8468:1: rule__XOtherOperatorExpression__Group_1__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) ;
+ public final void rule__XOtherOperatorExpression__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8472:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8473:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8473:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8474:1: ( rule__XOtherOperatorExpression__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8475:1: ( rule__XOtherOperatorExpression__Group_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8475:2: rule__XOtherOperatorExpression__Group_1_0__0
+ {
+ pushFollow(FOLLOW_rule__XOtherOperatorExpression__Group_1_0__0_in_rule__XOtherOperatorExpression__Group_1__0__Impl17377);
+ rule__XOtherOperatorExpression__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOtherOperatorExpression__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__XOtherOperatorExpression__Group_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8485:1: rule__XOtherOperatorExpression__Group_1__1 : rule__XOtherOperatorExpression__Group_1__1__Impl ;
+ public final void rule__XOtherOperatorExpression__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8489:1: ( rule__XOtherOperatorExpression__Group_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8490:2: rule__XOtherOperatorExpression__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XOtherOperatorExpression__Group_1__1__Impl_in_rule__XOtherOperatorExpression__Group_1__117407);
+ rule__XOtherOperatorExpression__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOtherOperatorExpression__Group_1__1"
+
+
+ // $ANTLR start "rule__XOtherOperatorExpression__Group_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8496:1: rule__XOtherOperatorExpression__Group_1__1__Impl : ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) ;
+ public final void rule__XOtherOperatorExpression__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8500:1: ( ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8501:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8501:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8502:1: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8503:1: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8503:2: rule__XOtherOperatorExpression__RightOperandAssignment_1_1
+ {
+ pushFollow(FOLLOW_rule__XOtherOperatorExpression__RightOperandAssignment_1_1_in_rule__XOtherOperatorExpression__Group_1__1__Impl17434);
+ rule__XOtherOperatorExpression__RightOperandAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOtherOperatorExpression__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8517:1: rule__XOtherOperatorExpression__Group_1_0__0 : rule__XOtherOperatorExpression__Group_1_0__0__Impl ;
+ public final void rule__XOtherOperatorExpression__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8521:1: ( rule__XOtherOperatorExpression__Group_1_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8522:2: rule__XOtherOperatorExpression__Group_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__XOtherOperatorExpression__Group_1_0__0__Impl_in_rule__XOtherOperatorExpression__Group_1_0__017468);
+ rule__XOtherOperatorExpression__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOtherOperatorExpression__Group_1_0__0"
+
+
+ // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8528:1: rule__XOtherOperatorExpression__Group_1_0__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) ;
+ public final void rule__XOtherOperatorExpression__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8532:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8533:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8533:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8534:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8535:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8535:2: rule__XOtherOperatorExpression__Group_1_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XOtherOperatorExpression__Group_1_0_0__0_in_rule__XOtherOperatorExpression__Group_1_0__0__Impl17495);
+ rule__XOtherOperatorExpression__Group_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOtherOperatorExpression__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8547:1: rule__XOtherOperatorExpression__Group_1_0_0__0 : rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 ;
+ public final void rule__XOtherOperatorExpression__Group_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8551:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8552:2: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1
+ {
+ pushFollow(FOLLOW_rule__XOtherOperatorExpression__Group_1_0_0__0__Impl_in_rule__XOtherOperatorExpression__Group_1_0_0__017527);
+ rule__XOtherOperatorExpression__Group_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XOtherOperatorExpression__Group_1_0_0__1_in_rule__XOtherOperatorExpression__Group_1_0_0__017530);
+ rule__XOtherOperatorExpression__Group_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOtherOperatorExpression__Group_1_0_0__0"
+
+
+ // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8559:1: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl : ( () ) ;
+ public final void rule__XOtherOperatorExpression__Group_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8563:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8564:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8564:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8565:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8566:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8568:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOtherOperatorExpression__Group_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8578:1: rule__XOtherOperatorExpression__Group_1_0_0__1 : rule__XOtherOperatorExpression__Group_1_0_0__1__Impl ;
+ public final void rule__XOtherOperatorExpression__Group_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8582:1: ( rule__XOtherOperatorExpression__Group_1_0_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8583:2: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XOtherOperatorExpression__Group_1_0_0__1__Impl_in_rule__XOtherOperatorExpression__Group_1_0_0__117588);
+ rule__XOtherOperatorExpression__Group_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOtherOperatorExpression__Group_1_0_0__1"
+
+
+ // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8589:1: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl : ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) ;
+ public final void rule__XOtherOperatorExpression__Group_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8593:1: ( ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8594:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8594:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8595:1: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8596:1: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8596:2: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
+ {
+ pushFollow(FOLLOW_rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1_in_rule__XOtherOperatorExpression__Group_1_0_0__1__Impl17615);
+ rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOtherOperatorExpression__Group_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__OpOther__Group_2__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8610:1: rule__OpOther__Group_2__0 : rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 ;
+ public final void rule__OpOther__Group_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8614:1: ( rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8615:2: rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_2__0__Impl_in_rule__OpOther__Group_2__017649);
+ rule__OpOther__Group_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__OpOther__Group_2__1_in_rule__OpOther__Group_2__017652);
+ rule__OpOther__Group_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_2__0"
+
+
+ // $ANTLR start "rule__OpOther__Group_2__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8622:1: rule__OpOther__Group_2__0__Impl : ( '>' ) ;
+ public final void rule__OpOther__Group_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8626:1: ( ( '>' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8627:1: ( '>' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8627:1: ( '>' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8628:1: '>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0());
+ }
+ match(input,24,FOLLOW_24_in_rule__OpOther__Group_2__0__Impl17680); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_2__0__Impl"
+
+
+ // $ANTLR start "rule__OpOther__Group_2__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8641:1: rule__OpOther__Group_2__1 : rule__OpOther__Group_2__1__Impl ;
+ public final void rule__OpOther__Group_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8645:1: ( rule__OpOther__Group_2__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8646:2: rule__OpOther__Group_2__1__Impl
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_2__1__Impl_in_rule__OpOther__Group_2__117711);
+ rule__OpOther__Group_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_2__1"
+
+
+ // $ANTLR start "rule__OpOther__Group_2__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8652:1: rule__OpOther__Group_2__1__Impl : ( '..' ) ;
+ public final void rule__OpOther__Group_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8656:1: ( ( '..' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8657:1: ( '..' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8657:1: ( '..' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8658:1: '..'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1());
+ }
+ match(input,28,FOLLOW_28_in_rule__OpOther__Group_2__1__Impl17739); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_2__1__Impl"
+
+
+ // $ANTLR start "rule__OpOther__Group_5__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8675:1: rule__OpOther__Group_5__0 : rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 ;
+ public final void rule__OpOther__Group_5__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8679:1: ( rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8680:2: rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_5__0__Impl_in_rule__OpOther__Group_5__017774);
+ rule__OpOther__Group_5__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__OpOther__Group_5__1_in_rule__OpOther__Group_5__017777);
+ rule__OpOther__Group_5__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_5__0"
+
+
+ // $ANTLR start "rule__OpOther__Group_5__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8687:1: rule__OpOther__Group_5__0__Impl : ( '>' ) ;
+ public final void rule__OpOther__Group_5__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8691:1: ( ( '>' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8692:1: ( '>' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8692:1: ( '>' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8693:1: '>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0());
+ }
+ match(input,24,FOLLOW_24_in_rule__OpOther__Group_5__0__Impl17805); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_5__0__Impl"
+
+
+ // $ANTLR start "rule__OpOther__Group_5__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8706:1: rule__OpOther__Group_5__1 : rule__OpOther__Group_5__1__Impl ;
+ public final void rule__OpOther__Group_5__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8710:1: ( rule__OpOther__Group_5__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8711:2: rule__OpOther__Group_5__1__Impl
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_5__1__Impl_in_rule__OpOther__Group_5__117836);
+ rule__OpOther__Group_5__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_5__1"
+
+
+ // $ANTLR start "rule__OpOther__Group_5__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8717:1: rule__OpOther__Group_5__1__Impl : ( ( rule__OpOther__Alternatives_5_1 ) ) ;
+ public final void rule__OpOther__Group_5__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8721:1: ( ( ( rule__OpOther__Alternatives_5_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8722:1: ( ( rule__OpOther__Alternatives_5_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8722:1: ( ( rule__OpOther__Alternatives_5_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8723:1: ( rule__OpOther__Alternatives_5_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getAlternatives_5_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8724:1: ( rule__OpOther__Alternatives_5_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8724:2: rule__OpOther__Alternatives_5_1
+ {
+ pushFollow(FOLLOW_rule__OpOther__Alternatives_5_1_in_rule__OpOther__Group_5__1__Impl17863);
+ rule__OpOther__Alternatives_5_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getAlternatives_5_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_5__1__Impl"
+
+
+ // $ANTLR start "rule__OpOther__Group_5_1_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8738:1: rule__OpOther__Group_5_1_0__0 : rule__OpOther__Group_5_1_0__0__Impl ;
+ public final void rule__OpOther__Group_5_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8742:1: ( rule__OpOther__Group_5_1_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8743:2: rule__OpOther__Group_5_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_5_1_0__0__Impl_in_rule__OpOther__Group_5_1_0__017897);
+ rule__OpOther__Group_5_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_5_1_0__0"
+
+
+ // $ANTLR start "rule__OpOther__Group_5_1_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8749:1: rule__OpOther__Group_5_1_0__0__Impl : ( ( rule__OpOther__Group_5_1_0_0__0 ) ) ;
+ public final void rule__OpOther__Group_5_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8753:1: ( ( ( rule__OpOther__Group_5_1_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8754:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8754:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8755:1: ( rule__OpOther__Group_5_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8756:1: ( rule__OpOther__Group_5_1_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8756:2: rule__OpOther__Group_5_1_0_0__0
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_5_1_0_0__0_in_rule__OpOther__Group_5_1_0__0__Impl17924);
+ rule__OpOther__Group_5_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_5_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__OpOther__Group_5_1_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8768:1: rule__OpOther__Group_5_1_0_0__0 : rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 ;
+ public final void rule__OpOther__Group_5_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8772:1: ( rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8773:2: rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_5_1_0_0__0__Impl_in_rule__OpOther__Group_5_1_0_0__017956);
+ rule__OpOther__Group_5_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__OpOther__Group_5_1_0_0__1_in_rule__OpOther__Group_5_1_0_0__017959);
+ rule__OpOther__Group_5_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_5_1_0_0__0"
+
+
+ // $ANTLR start "rule__OpOther__Group_5_1_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8780:1: rule__OpOther__Group_5_1_0_0__0__Impl : ( '>' ) ;
+ public final void rule__OpOther__Group_5_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8784:1: ( ( '>' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8785:1: ( '>' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8785:1: ( '>' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8786:1: '>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0());
+ }
+ match(input,24,FOLLOW_24_in_rule__OpOther__Group_5_1_0_0__0__Impl17987); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_5_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__OpOther__Group_5_1_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8799:1: rule__OpOther__Group_5_1_0_0__1 : rule__OpOther__Group_5_1_0_0__1__Impl ;
+ public final void rule__OpOther__Group_5_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8803:1: ( rule__OpOther__Group_5_1_0_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8804:2: rule__OpOther__Group_5_1_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_5_1_0_0__1__Impl_in_rule__OpOther__Group_5_1_0_0__118018);
+ rule__OpOther__Group_5_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_5_1_0_0__1"
+
+
+ // $ANTLR start "rule__OpOther__Group_5_1_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8810:1: rule__OpOther__Group_5_1_0_0__1__Impl : ( '>' ) ;
+ public final void rule__OpOther__Group_5_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8814:1: ( ( '>' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8815:1: ( '>' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8815:1: ( '>' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8816:1: '>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1());
+ }
+ match(input,24,FOLLOW_24_in_rule__OpOther__Group_5_1_0_0__1__Impl18046); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_5_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__OpOther__Group_6__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8833:1: rule__OpOther__Group_6__0 : rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 ;
+ public final void rule__OpOther__Group_6__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8837:1: ( rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8838:2: rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_6__0__Impl_in_rule__OpOther__Group_6__018081);
+ rule__OpOther__Group_6__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__OpOther__Group_6__1_in_rule__OpOther__Group_6__018084);
+ rule__OpOther__Group_6__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_6__0"
+
+
+ // $ANTLR start "rule__OpOther__Group_6__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8845:1: rule__OpOther__Group_6__0__Impl : ( '<' ) ;
+ public final void rule__OpOther__Group_6__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8849:1: ( ( '<' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8850:1: ( '<' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8850:1: ( '<' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8851:1: '<'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0());
+ }
+ match(input,25,FOLLOW_25_in_rule__OpOther__Group_6__0__Impl18112); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_6__0__Impl"
+
+
+ // $ANTLR start "rule__OpOther__Group_6__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8864:1: rule__OpOther__Group_6__1 : rule__OpOther__Group_6__1__Impl ;
+ public final void rule__OpOther__Group_6__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8868:1: ( rule__OpOther__Group_6__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8869:2: rule__OpOther__Group_6__1__Impl
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_6__1__Impl_in_rule__OpOther__Group_6__118143);
+ rule__OpOther__Group_6__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_6__1"
+
+
+ // $ANTLR start "rule__OpOther__Group_6__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8875:1: rule__OpOther__Group_6__1__Impl : ( ( rule__OpOther__Alternatives_6_1 ) ) ;
+ public final void rule__OpOther__Group_6__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8879:1: ( ( ( rule__OpOther__Alternatives_6_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8880:1: ( ( rule__OpOther__Alternatives_6_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8880:1: ( ( rule__OpOther__Alternatives_6_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8881:1: ( rule__OpOther__Alternatives_6_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getAlternatives_6_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8882:1: ( rule__OpOther__Alternatives_6_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8882:2: rule__OpOther__Alternatives_6_1
+ {
+ pushFollow(FOLLOW_rule__OpOther__Alternatives_6_1_in_rule__OpOther__Group_6__1__Impl18170);
+ rule__OpOther__Alternatives_6_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getAlternatives_6_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_6__1__Impl"
+
+
+ // $ANTLR start "rule__OpOther__Group_6_1_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8896:1: rule__OpOther__Group_6_1_0__0 : rule__OpOther__Group_6_1_0__0__Impl ;
+ public final void rule__OpOther__Group_6_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8900:1: ( rule__OpOther__Group_6_1_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8901:2: rule__OpOther__Group_6_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_6_1_0__0__Impl_in_rule__OpOther__Group_6_1_0__018204);
+ rule__OpOther__Group_6_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_6_1_0__0"
+
+
+ // $ANTLR start "rule__OpOther__Group_6_1_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8907:1: rule__OpOther__Group_6_1_0__0__Impl : ( ( rule__OpOther__Group_6_1_0_0__0 ) ) ;
+ public final void rule__OpOther__Group_6_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8911:1: ( ( ( rule__OpOther__Group_6_1_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8912:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8912:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8913:1: ( rule__OpOther__Group_6_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8914:1: ( rule__OpOther__Group_6_1_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8914:2: rule__OpOther__Group_6_1_0_0__0
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_6_1_0_0__0_in_rule__OpOther__Group_6_1_0__0__Impl18231);
+ rule__OpOther__Group_6_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_6_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__OpOther__Group_6_1_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8926:1: rule__OpOther__Group_6_1_0_0__0 : rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 ;
+ public final void rule__OpOther__Group_6_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8930:1: ( rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8931:2: rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_6_1_0_0__0__Impl_in_rule__OpOther__Group_6_1_0_0__018263);
+ rule__OpOther__Group_6_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__OpOther__Group_6_1_0_0__1_in_rule__OpOther__Group_6_1_0_0__018266);
+ rule__OpOther__Group_6_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_6_1_0_0__0"
+
+
+ // $ANTLR start "rule__OpOther__Group_6_1_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8938:1: rule__OpOther__Group_6_1_0_0__0__Impl : ( '<' ) ;
+ public final void rule__OpOther__Group_6_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8942:1: ( ( '<' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8943:1: ( '<' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8943:1: ( '<' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8944:1: '<'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0());
+ }
+ match(input,25,FOLLOW_25_in_rule__OpOther__Group_6_1_0_0__0__Impl18294); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_6_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__OpOther__Group_6_1_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8957:1: rule__OpOther__Group_6_1_0_0__1 : rule__OpOther__Group_6_1_0_0__1__Impl ;
+ public final void rule__OpOther__Group_6_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8961:1: ( rule__OpOther__Group_6_1_0_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8962:2: rule__OpOther__Group_6_1_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_6_1_0_0__1__Impl_in_rule__OpOther__Group_6_1_0_0__118325);
+ rule__OpOther__Group_6_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_6_1_0_0__1"
+
+
+ // $ANTLR start "rule__OpOther__Group_6_1_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8968:1: rule__OpOther__Group_6_1_0_0__1__Impl : ( '<' ) ;
+ public final void rule__OpOther__Group_6_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8972:1: ( ( '<' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8973:1: ( '<' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8973:1: ( '<' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8974:1: '<'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1());
+ }
+ match(input,25,FOLLOW_25_in_rule__OpOther__Group_6_1_0_0__1__Impl18353); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__OpOther__Group_6_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__XAdditiveExpression__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8991:1: rule__XAdditiveExpression__Group__0 : rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 ;
+ public final void rule__XAdditiveExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8995:1: ( rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8996:2: rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1
+ {
+ pushFollow(FOLLOW_rule__XAdditiveExpression__Group__0__Impl_in_rule__XAdditiveExpression__Group__018388);
+ rule__XAdditiveExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XAdditiveExpression__Group__1_in_rule__XAdditiveExpression__Group__018391);
+ rule__XAdditiveExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAdditiveExpression__Group__0"
+
+
+ // $ANTLR start "rule__XAdditiveExpression__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9003:1: rule__XAdditiveExpression__Group__0__Impl : ( ruleXMultiplicativeExpression ) ;
+ public final void rule__XAdditiveExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9007:1: ( ( ruleXMultiplicativeExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9008:1: ( ruleXMultiplicativeExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9008:1: ( ruleXMultiplicativeExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9009:1: ruleXMultiplicativeExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleXMultiplicativeExpression_in_rule__XAdditiveExpression__Group__0__Impl18418);
+ ruleXMultiplicativeExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAdditiveExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XAdditiveExpression__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9020:1: rule__XAdditiveExpression__Group__1 : rule__XAdditiveExpression__Group__1__Impl ;
+ public final void rule__XAdditiveExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9024:1: ( rule__XAdditiveExpression__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9025:2: rule__XAdditiveExpression__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XAdditiveExpression__Group__1__Impl_in_rule__XAdditiveExpression__Group__118447);
+ rule__XAdditiveExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAdditiveExpression__Group__1"
+
+
+ // $ANTLR start "rule__XAdditiveExpression__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9031:1: rule__XAdditiveExpression__Group__1__Impl : ( ( rule__XAdditiveExpression__Group_1__0 )* ) ;
+ public final void rule__XAdditiveExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9035:1: ( ( ( rule__XAdditiveExpression__Group_1__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9036:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9036:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9037:1: ( rule__XAdditiveExpression__Group_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9038:1: ( rule__XAdditiveExpression__Group_1__0 )*
+ loop62:
+ do {
+ int alt62=2;
+ int LA62_0 = input.LA(1);
+
+ if ( (LA62_0==34) ) {
+ int LA62_2 = input.LA(2);
+
+ if ( (synpred98_InternalEmfParsleyDsl()) ) {
+ alt62=1;
+ }
+
+
+ }
+ else if ( (LA62_0==33) ) {
+ int LA62_3 = input.LA(2);
+
+ if ( (synpred98_InternalEmfParsleyDsl()) ) {
+ alt62=1;
+ }
+
+
+ }
+
+
+ switch (alt62) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9038:2: rule__XAdditiveExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XAdditiveExpression__Group_1__0_in_rule__XAdditiveExpression__Group__1__Impl18474);
+ rule__XAdditiveExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop62;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAdditiveExpressionAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAdditiveExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XAdditiveExpression__Group_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9052:1: rule__XAdditiveExpression__Group_1__0 : rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 ;
+ public final void rule__XAdditiveExpression__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9056:1: ( rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9057:2: rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1
+ {
+ pushFollow(FOLLOW_rule__XAdditiveExpression__Group_1__0__Impl_in_rule__XAdditiveExpression__Group_1__018509);
+ rule__XAdditiveExpression__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XAdditiveExpression__Group_1__1_in_rule__XAdditiveExpression__Group_1__018512);
+ rule__XAdditiveExpression__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAdditiveExpression__Group_1__0"
+
+
+ // $ANTLR start "rule__XAdditiveExpression__Group_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9064:1: rule__XAdditiveExpression__Group_1__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) ;
+ public final void rule__XAdditiveExpression__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9068:1: ( ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9069:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9069:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9070:1: ( rule__XAdditiveExpression__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9071:1: ( rule__XAdditiveExpression__Group_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9071:2: rule__XAdditiveExpression__Group_1_0__0
+ {
+ pushFollow(FOLLOW_rule__XAdditiveExpression__Group_1_0__0_in_rule__XAdditiveExpression__Group_1__0__Impl18539);
+ rule__XAdditiveExpression__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAdditiveExpression__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__XAdditiveExpression__Group_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9081:1: rule__XAdditiveExpression__Group_1__1 : rule__XAdditiveExpression__Group_1__1__Impl ;
+ public final void rule__XAdditiveExpression__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9085:1: ( rule__XAdditiveExpression__Group_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9086:2: rule__XAdditiveExpression__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XAdditiveExpression__Group_1__1__Impl_in_rule__XAdditiveExpression__Group_1__118569);
+ rule__XAdditiveExpression__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAdditiveExpression__Group_1__1"
+
+
+ // $ANTLR start "rule__XAdditiveExpression__Group_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9092:1: rule__XAdditiveExpression__Group_1__1__Impl : ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) ;
+ public final void rule__XAdditiveExpression__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9096:1: ( ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9097:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9097:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9098:1: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9099:1: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9099:2: rule__XAdditiveExpression__RightOperandAssignment_1_1
+ {
+ pushFollow(FOLLOW_rule__XAdditiveExpression__RightOperandAssignment_1_1_in_rule__XAdditiveExpression__Group_1__1__Impl18596);
+ rule__XAdditiveExpression__RightOperandAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAdditiveExpression__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__XAdditiveExpression__Group_1_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9113:1: rule__XAdditiveExpression__Group_1_0__0 : rule__XAdditiveExpression__Group_1_0__0__Impl ;
+ public final void rule__XAdditiveExpression__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9117:1: ( rule__XAdditiveExpression__Group_1_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9118:2: rule__XAdditiveExpression__Group_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__XAdditiveExpression__Group_1_0__0__Impl_in_rule__XAdditiveExpression__Group_1_0__018630);
+ rule__XAdditiveExpression__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAdditiveExpression__Group_1_0__0"
+
+
+ // $ANTLR start "rule__XAdditiveExpression__Group_1_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9124:1: rule__XAdditiveExpression__Group_1_0__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) ;
+ public final void rule__XAdditiveExpression__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9128:1: ( ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9129:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9129:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9130:1: ( rule__XAdditiveExpression__Group_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9131:1: ( rule__XAdditiveExpression__Group_1_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9131:2: rule__XAdditiveExpression__Group_1_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XAdditiveExpression__Group_1_0_0__0_in_rule__XAdditiveExpression__Group_1_0__0__Impl18657);
+ rule__XAdditiveExpression__Group_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAdditiveExpression__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9143:1: rule__XAdditiveExpression__Group_1_0_0__0 : rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 ;
+ public final void rule__XAdditiveExpression__Group_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9147:1: ( rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9148:2: rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1
+ {
+ pushFollow(FOLLOW_rule__XAdditiveExpression__Group_1_0_0__0__Impl_in_rule__XAdditiveExpression__Group_1_0_0__018689);
+ rule__XAdditiveExpression__Group_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XAdditiveExpression__Group_1_0_0__1_in_rule__XAdditiveExpression__Group_1_0_0__018692);
+ rule__XAdditiveExpression__Group_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAdditiveExpression__Group_1_0_0__0"
+
+
+ // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9155:1: rule__XAdditiveExpression__Group_1_0_0__0__Impl : ( () ) ;
+ public final void rule__XAdditiveExpression__Group_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9159:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9160:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9160:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9161:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9162:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9164:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAdditiveExpression__Group_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9174:1: rule__XAdditiveExpression__Group_1_0_0__1 : rule__XAdditiveExpression__Group_1_0_0__1__Impl ;
+ public final void rule__XAdditiveExpression__Group_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9178:1: ( rule__XAdditiveExpression__Group_1_0_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9179:2: rule__XAdditiveExpression__Group_1_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XAdditiveExpression__Group_1_0_0__1__Impl_in_rule__XAdditiveExpression__Group_1_0_0__118750);
+ rule__XAdditiveExpression__Group_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAdditiveExpression__Group_1_0_0__1"
+
+
+ // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9185:1: rule__XAdditiveExpression__Group_1_0_0__1__Impl : ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) ;
+ public final void rule__XAdditiveExpression__Group_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9189:1: ( ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9190:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9190:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9191:1: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9192:1: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9192:2: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
+ {
+ pushFollow(FOLLOW_rule__XAdditiveExpression__FeatureAssignment_1_0_0_1_in_rule__XAdditiveExpression__Group_1_0_0__1__Impl18777);
+ rule__XAdditiveExpression__FeatureAssignment_1_0_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAdditiveExpression__Group_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__XMultiplicativeExpression__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9206:1: rule__XMultiplicativeExpression__Group__0 : rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 ;
+ public final void rule__XMultiplicativeExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9210:1: ( rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9211:2: rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1
+ {
+ pushFollow(FOLLOW_rule__XMultiplicativeExpression__Group__0__Impl_in_rule__XMultiplicativeExpression__Group__018811);
+ rule__XMultiplicativeExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMultiplicativeExpression__Group__1_in_rule__XMultiplicativeExpression__Group__018814);
+ rule__XMultiplicativeExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMultiplicativeExpression__Group__0"
+
+
+ // $ANTLR start "rule__XMultiplicativeExpression__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9218:1: rule__XMultiplicativeExpression__Group__0__Impl : ( ruleXUnaryOperation ) ;
+ public final void rule__XMultiplicativeExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9222:1: ( ( ruleXUnaryOperation ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9223:1: ( ruleXUnaryOperation )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9223:1: ( ruleXUnaryOperation )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9224:1: ruleXUnaryOperation
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleXUnaryOperation_in_rule__XMultiplicativeExpression__Group__0__Impl18841);
+ ruleXUnaryOperation();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMultiplicativeExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XMultiplicativeExpression__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9235:1: rule__XMultiplicativeExpression__Group__1 : rule__XMultiplicativeExpression__Group__1__Impl ;
+ public final void rule__XMultiplicativeExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9239:1: ( rule__XMultiplicativeExpression__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9240:2: rule__XMultiplicativeExpression__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XMultiplicativeExpression__Group__1__Impl_in_rule__XMultiplicativeExpression__Group__118870);
+ rule__XMultiplicativeExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMultiplicativeExpression__Group__1"
+
+
+ // $ANTLR start "rule__XMultiplicativeExpression__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9246:1: rule__XMultiplicativeExpression__Group__1__Impl : ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) ;
+ public final void rule__XMultiplicativeExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9250:1: ( ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9251:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9251:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9252:1: ( rule__XMultiplicativeExpression__Group_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9253:1: ( rule__XMultiplicativeExpression__Group_1__0 )*
+ loop63:
+ do {
+ int alt63=2;
+ switch ( input.LA(1) ) {
+ case 35:
+ {
+ int LA63_2 = input.LA(2);
+
+ if ( (synpred99_InternalEmfParsleyDsl()) ) {
+ alt63=1;
+ }
+
+
+ }
+ break;
+ case 36:
+ {
+ int LA63_3 = input.LA(2);
+
+ if ( (synpred99_InternalEmfParsleyDsl()) ) {
+ alt63=1;
+ }
+
+
+ }
+ break;
+ case 37:
+ {
+ int LA63_4 = input.LA(2);
+
+ if ( (synpred99_InternalEmfParsleyDsl()) ) {
+ alt63=1;
+ }
+
+
+ }
+ break;
+ case 38:
+ {
+ int LA63_5 = input.LA(2);
+
+ if ( (synpred99_InternalEmfParsleyDsl()) ) {
+ alt63=1;
+ }
+
+
+ }
+ break;
+
+ }
+
+ switch (alt63) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9253:2: rule__XMultiplicativeExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XMultiplicativeExpression__Group_1__0_in_rule__XMultiplicativeExpression__Group__1__Impl18897);
+ rule__XMultiplicativeExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop63;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMultiplicativeExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XMultiplicativeExpression__Group_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9267:1: rule__XMultiplicativeExpression__Group_1__0 : rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 ;
+ public final void rule__XMultiplicativeExpression__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9271:1: ( rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9272:2: rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1
+ {
+ pushFollow(FOLLOW_rule__XMultiplicativeExpression__Group_1__0__Impl_in_rule__XMultiplicativeExpression__Group_1__018932);
+ rule__XMultiplicativeExpression__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMultiplicativeExpression__Group_1__1_in_rule__XMultiplicativeExpression__Group_1__018935);
+ rule__XMultiplicativeExpression__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMultiplicativeExpression__Group_1__0"
+
+
+ // $ANTLR start "rule__XMultiplicativeExpression__Group_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9279:1: rule__XMultiplicativeExpression__Group_1__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) ;
+ public final void rule__XMultiplicativeExpression__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9283:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9284:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9284:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9285:1: ( rule__XMultiplicativeExpression__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9286:1: ( rule__XMultiplicativeExpression__Group_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9286:2: rule__XMultiplicativeExpression__Group_1_0__0
+ {
+ pushFollow(FOLLOW_rule__XMultiplicativeExpression__Group_1_0__0_in_rule__XMultiplicativeExpression__Group_1__0__Impl18962);
+ rule__XMultiplicativeExpression__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMultiplicativeExpression__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__XMultiplicativeExpression__Group_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9296:1: rule__XMultiplicativeExpression__Group_1__1 : rule__XMultiplicativeExpression__Group_1__1__Impl ;
+ public final void rule__XMultiplicativeExpression__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9300:1: ( rule__XMultiplicativeExpression__Group_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9301:2: rule__XMultiplicativeExpression__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XMultiplicativeExpression__Group_1__1__Impl_in_rule__XMultiplicativeExpression__Group_1__118992);
+ rule__XMultiplicativeExpression__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMultiplicativeExpression__Group_1__1"
+
+
+ // $ANTLR start "rule__XMultiplicativeExpression__Group_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9307:1: rule__XMultiplicativeExpression__Group_1__1__Impl : ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) ;
+ public final void rule__XMultiplicativeExpression__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9311:1: ( ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9312:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9312:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9313:1: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9314:1: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9314:2: rule__XMultiplicativeExpression__RightOperandAssignment_1_1
+ {
+ pushFollow(FOLLOW_rule__XMultiplicativeExpression__RightOperandAssignment_1_1_in_rule__XMultiplicativeExpression__Group_1__1__Impl19019);
+ rule__XMultiplicativeExpression__RightOperandAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMultiplicativeExpression__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9328:1: rule__XMultiplicativeExpression__Group_1_0__0 : rule__XMultiplicativeExpression__Group_1_0__0__Impl ;
+ public final void rule__XMultiplicativeExpression__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9332:1: ( rule__XMultiplicativeExpression__Group_1_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9333:2: rule__XMultiplicativeExpression__Group_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__XMultiplicativeExpression__Group_1_0__0__Impl_in_rule__XMultiplicativeExpression__Group_1_0__019053);
+ rule__XMultiplicativeExpression__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMultiplicativeExpression__Group_1_0__0"
+
+
+ // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9339:1: rule__XMultiplicativeExpression__Group_1_0__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) ;
+ public final void rule__XMultiplicativeExpression__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9343:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9344:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9344:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9345:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9346:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9346:2: rule__XMultiplicativeExpression__Group_1_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XMultiplicativeExpression__Group_1_0_0__0_in_rule__XMultiplicativeExpression__Group_1_0__0__Impl19080);
+ rule__XMultiplicativeExpression__Group_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMultiplicativeExpression__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9358:1: rule__XMultiplicativeExpression__Group_1_0_0__0 : rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 ;
+ public final void rule__XMultiplicativeExpression__Group_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9362:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9363:2: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1
+ {
+ pushFollow(FOLLOW_rule__XMultiplicativeExpression__Group_1_0_0__0__Impl_in_rule__XMultiplicativeExpression__Group_1_0_0__019112);
+ rule__XMultiplicativeExpression__Group_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMultiplicativeExpression__Group_1_0_0__1_in_rule__XMultiplicativeExpression__Group_1_0_0__019115);
+ rule__XMultiplicativeExpression__Group_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMultiplicativeExpression__Group_1_0_0__0"
+
+
+ // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9370:1: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl : ( () ) ;
+ public final void rule__XMultiplicativeExpression__Group_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9374:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9375:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9375:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9376:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9377:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9379:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMultiplicativeExpression__Group_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9389:1: rule__XMultiplicativeExpression__Group_1_0_0__1 : rule__XMultiplicativeExpression__Group_1_0_0__1__Impl ;
+ public final void rule__XMultiplicativeExpression__Group_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9393:1: ( rule__XMultiplicativeExpression__Group_1_0_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9394:2: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XMultiplicativeExpression__Group_1_0_0__1__Impl_in_rule__XMultiplicativeExpression__Group_1_0_0__119173);
+ rule__XMultiplicativeExpression__Group_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMultiplicativeExpression__Group_1_0_0__1"
+
+
+ // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9400:1: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl : ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) ;
+ public final void rule__XMultiplicativeExpression__Group_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9404:1: ( ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9405:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9405:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9406:1: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9407:1: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9407:2: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
+ {
+ pushFollow(FOLLOW_rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1_in_rule__XMultiplicativeExpression__Group_1_0_0__1__Impl19200);
+ rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMultiplicativeExpression__Group_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__XUnaryOperation__Group_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9421:1: rule__XUnaryOperation__Group_0__0 : rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 ;
+ public final void rule__XUnaryOperation__Group_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9425:1: ( rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9426:2: rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1
+ {
+ pushFollow(FOLLOW_rule__XUnaryOperation__Group_0__0__Impl_in_rule__XUnaryOperation__Group_0__019234);
+ rule__XUnaryOperation__Group_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XUnaryOperation__Group_0__1_in_rule__XUnaryOperation__Group_0__019237);
+ rule__XUnaryOperation__Group_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XUnaryOperation__Group_0__0"
+
+
+ // $ANTLR start "rule__XUnaryOperation__Group_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9433:1: rule__XUnaryOperation__Group_0__0__Impl : ( () ) ;
+ public final void rule__XUnaryOperation__Group_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9437:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9438:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9438:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9439:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9440:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9442:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XUnaryOperation__Group_0__0__Impl"
+
+
+ // $ANTLR start "rule__XUnaryOperation__Group_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9452:1: rule__XUnaryOperation__Group_0__1 : rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 ;
+ public final void rule__XUnaryOperation__Group_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9456:1: ( rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9457:2: rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2
+ {
+ pushFollow(FOLLOW_rule__XUnaryOperation__Group_0__1__Impl_in_rule__XUnaryOperation__Group_0__119295);
+ rule__XUnaryOperation__Group_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XUnaryOperation__Group_0__2_in_rule__XUnaryOperation__Group_0__119298);
+ rule__XUnaryOperation__Group_0__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XUnaryOperation__Group_0__1"
+
+
+ // $ANTLR start "rule__XUnaryOperation__Group_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9464:1: rule__XUnaryOperation__Group_0__1__Impl : ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) ;
+ public final void rule__XUnaryOperation__Group_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9468:1: ( ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9469:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9469:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9470:1: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9471:1: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9471:2: rule__XUnaryOperation__FeatureAssignment_0_1
+ {
+ pushFollow(FOLLOW_rule__XUnaryOperation__FeatureAssignment_0_1_in_rule__XUnaryOperation__Group_0__1__Impl19325);
+ rule__XUnaryOperation__FeatureAssignment_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XUnaryOperation__Group_0__1__Impl"
+
+
+ // $ANTLR start "rule__XUnaryOperation__Group_0__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9481:1: rule__XUnaryOperation__Group_0__2 : rule__XUnaryOperation__Group_0__2__Impl ;
+ public final void rule__XUnaryOperation__Group_0__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9485:1: ( rule__XUnaryOperation__Group_0__2__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9486:2: rule__XUnaryOperation__Group_0__2__Impl
+ {
+ pushFollow(FOLLOW_rule__XUnaryOperation__Group_0__2__Impl_in_rule__XUnaryOperation__Group_0__219355);
+ rule__XUnaryOperation__Group_0__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XUnaryOperation__Group_0__2"
+
+
+ // $ANTLR start "rule__XUnaryOperation__Group_0__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9492:1: rule__XUnaryOperation__Group_0__2__Impl : ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) ;
+ public final void rule__XUnaryOperation__Group_0__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9496:1: ( ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9497:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9497:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9498:1: ( rule__XUnaryOperation__OperandAssignment_0_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9499:1: ( rule__XUnaryOperation__OperandAssignment_0_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9499:2: rule__XUnaryOperation__OperandAssignment_0_2
+ {
+ pushFollow(FOLLOW_rule__XUnaryOperation__OperandAssignment_0_2_in_rule__XUnaryOperation__Group_0__2__Impl19382);
+ rule__XUnaryOperation__OperandAssignment_0_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XUnaryOperation__Group_0__2__Impl"
+
+
+ // $ANTLR start "rule__XCastedExpression__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9515:1: rule__XCastedExpression__Group__0 : rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 ;
+ public final void rule__XCastedExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9519:1: ( rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9520:2: rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1
+ {
+ pushFollow(FOLLOW_rule__XCastedExpression__Group__0__Impl_in_rule__XCastedExpression__Group__019418);
+ rule__XCastedExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XCastedExpression__Group__1_in_rule__XCastedExpression__Group__019421);
+ rule__XCastedExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCastedExpression__Group__0"
+
+
+ // $ANTLR start "rule__XCastedExpression__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9527:1: rule__XCastedExpression__Group__0__Impl : ( ruleXMemberFeatureCall ) ;
+ public final void rule__XCastedExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9531:1: ( ( ruleXMemberFeatureCall ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9532:1: ( ruleXMemberFeatureCall )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9532:1: ( ruleXMemberFeatureCall )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9533:1: ruleXMemberFeatureCall
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCastedExpressionAccess().getXMemberFeatureCallParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleXMemberFeatureCall_in_rule__XCastedExpression__Group__0__Impl19448);
+ ruleXMemberFeatureCall();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCastedExpressionAccess().getXMemberFeatureCallParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCastedExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XCastedExpression__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9544:1: rule__XCastedExpression__Group__1 : rule__XCastedExpression__Group__1__Impl ;
+ public final void rule__XCastedExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9548:1: ( rule__XCastedExpression__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9549:2: rule__XCastedExpression__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XCastedExpression__Group__1__Impl_in_rule__XCastedExpression__Group__119477);
+ rule__XCastedExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCastedExpression__Group__1"
+
+
+ // $ANTLR start "rule__XCastedExpression__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9555:1: rule__XCastedExpression__Group__1__Impl : ( ( rule__XCastedExpression__Group_1__0 )* ) ;
+ public final void rule__XCastedExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9559:1: ( ( ( rule__XCastedExpression__Group_1__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9560:1: ( ( rule__XCastedExpression__Group_1__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9560:1: ( ( rule__XCastedExpression__Group_1__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9561:1: ( rule__XCastedExpression__Group_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCastedExpressionAccess().getGroup_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9562:1: ( rule__XCastedExpression__Group_1__0 )*
+ loop64:
+ do {
+ int alt64=2;
+ int LA64_0 = input.LA(1);
+
+ if ( (LA64_0==71) ) {
+ int LA64_2 = input.LA(2);
+
+ if ( (synpred100_InternalEmfParsleyDsl()) ) {
+ alt64=1;
+ }
+
+
+ }
+
+
+ switch (alt64) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9562:2: rule__XCastedExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XCastedExpression__Group_1__0_in_rule__XCastedExpression__Group__1__Impl19504);
+ rule__XCastedExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop64;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCastedExpressionAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCastedExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XCastedExpression__Group_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9576:1: rule__XCastedExpression__Group_1__0 : rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 ;
+ public final void rule__XCastedExpression__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9580:1: ( rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9581:2: rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1
+ {
+ pushFollow(FOLLOW_rule__XCastedExpression__Group_1__0__Impl_in_rule__XCastedExpression__Group_1__019539);
+ rule__XCastedExpression__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XCastedExpression__Group_1__1_in_rule__XCastedExpression__Group_1__019542);
+ rule__XCastedExpression__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCastedExpression__Group_1__0"
+
+
+ // $ANTLR start "rule__XCastedExpression__Group_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9588:1: rule__XCastedExpression__Group_1__0__Impl : ( ( rule__XCastedExpression__Group_1_0__0 ) ) ;
+ public final void rule__XCastedExpression__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9592:1: ( ( ( rule__XCastedExpression__Group_1_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9593:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9593:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9594:1: ( rule__XCastedExpression__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9595:1: ( rule__XCastedExpression__Group_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9595:2: rule__XCastedExpression__Group_1_0__0
+ {
+ pushFollow(FOLLOW_rule__XCastedExpression__Group_1_0__0_in_rule__XCastedExpression__Group_1__0__Impl19569);
+ rule__XCastedExpression__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCastedExpressionAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCastedExpression__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__XCastedExpression__Group_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9605:1: rule__XCastedExpression__Group_1__1 : rule__XCastedExpression__Group_1__1__Impl ;
+ public final void rule__XCastedExpression__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9609:1: ( rule__XCastedExpression__Group_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9610:2: rule__XCastedExpression__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XCastedExpression__Group_1__1__Impl_in_rule__XCastedExpression__Group_1__119599);
+ rule__XCastedExpression__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCastedExpression__Group_1__1"
+
+
+ // $ANTLR start "rule__XCastedExpression__Group_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9616:1: rule__XCastedExpression__Group_1__1__Impl : ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) ;
+ public final void rule__XCastedExpression__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9620:1: ( ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9621:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9621:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9622:1: ( rule__XCastedExpression__TypeAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9623:1: ( rule__XCastedExpression__TypeAssignment_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9623:2: rule__XCastedExpression__TypeAssignment_1_1
+ {
+ pushFollow(FOLLOW_rule__XCastedExpression__TypeAssignment_1_1_in_rule__XCastedExpression__Group_1__1__Impl19626);
+ rule__XCastedExpression__TypeAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCastedExpression__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__XCastedExpression__Group_1_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9637:1: rule__XCastedExpression__Group_1_0__0 : rule__XCastedExpression__Group_1_0__0__Impl ;
+ public final void rule__XCastedExpression__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9641:1: ( rule__XCastedExpression__Group_1_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9642:2: rule__XCastedExpression__Group_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__XCastedExpression__Group_1_0__0__Impl_in_rule__XCastedExpression__Group_1_0__019660);
+ rule__XCastedExpression__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCastedExpression__Group_1_0__0"
+
+
+ // $ANTLR start "rule__XCastedExpression__Group_1_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9648:1: rule__XCastedExpression__Group_1_0__0__Impl : ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) ;
+ public final void rule__XCastedExpression__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9652:1: ( ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9653:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9653:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9654:1: ( rule__XCastedExpression__Group_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9655:1: ( rule__XCastedExpression__Group_1_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9655:2: rule__XCastedExpression__Group_1_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XCastedExpression__Group_1_0_0__0_in_rule__XCastedExpression__Group_1_0__0__Impl19687);
+ rule__XCastedExpression__Group_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCastedExpression__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__XCastedExpression__Group_1_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9667:1: rule__XCastedExpression__Group_1_0_0__0 : rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 ;
+ public final void rule__XCastedExpression__Group_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9671:1: ( rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9672:2: rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1
+ {
+ pushFollow(FOLLOW_rule__XCastedExpression__Group_1_0_0__0__Impl_in_rule__XCastedExpression__Group_1_0_0__019719);
+ rule__XCastedExpression__Group_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XCastedExpression__Group_1_0_0__1_in_rule__XCastedExpression__Group_1_0_0__019722);
+ rule__XCastedExpression__Group_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCastedExpression__Group_1_0_0__0"
+
+
+ // $ANTLR start "rule__XCastedExpression__Group_1_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9679:1: rule__XCastedExpression__Group_1_0_0__0__Impl : ( () ) ;
+ public final void rule__XCastedExpression__Group_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9683:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9684:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9684:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9685:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9686:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9688:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCastedExpression__Group_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XCastedExpression__Group_1_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9698:1: rule__XCastedExpression__Group_1_0_0__1 : rule__XCastedExpression__Group_1_0_0__1__Impl ;
+ public final void rule__XCastedExpression__Group_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9702:1: ( rule__XCastedExpression__Group_1_0_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9703:2: rule__XCastedExpression__Group_1_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XCastedExpression__Group_1_0_0__1__Impl_in_rule__XCastedExpression__Group_1_0_0__119780);
+ rule__XCastedExpression__Group_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCastedExpression__Group_1_0_0__1"
+
+
+ // $ANTLR start "rule__XCastedExpression__Group_1_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9709:1: rule__XCastedExpression__Group_1_0_0__1__Impl : ( 'as' ) ;
+ public final void rule__XCastedExpression__Group_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9713:1: ( ( 'as' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9714:1: ( 'as' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9714:1: ( 'as' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9715:1: 'as'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1());
+ }
+ match(input,71,FOLLOW_71_in_rule__XCastedExpression__Group_1_0_0__1__Impl19808); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCastedExpression__Group_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9732:1: rule__XMemberFeatureCall__Group__0 : rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 ;
+ public final void rule__XMemberFeatureCall__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9736:1: ( rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9737:2: rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group__0__Impl_in_rule__XMemberFeatureCall__Group__019843);
+ rule__XMemberFeatureCall__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group__1_in_rule__XMemberFeatureCall__Group__019846);
+ rule__XMemberFeatureCall__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group__0"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9744:1: rule__XMemberFeatureCall__Group__0__Impl : ( ruleXPrimaryExpression ) ;
+ public final void rule__XMemberFeatureCall__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9748:1: ( ( ruleXPrimaryExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9749:1: ( ruleXPrimaryExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9749:1: ( ruleXPrimaryExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9750:1: ruleXPrimaryExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleXPrimaryExpression_in_rule__XMemberFeatureCall__Group__0__Impl19873);
+ ruleXPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9761:1: rule__XMemberFeatureCall__Group__1 : rule__XMemberFeatureCall__Group__1__Impl ;
+ public final void rule__XMemberFeatureCall__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9765:1: ( rule__XMemberFeatureCall__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9766:2: rule__XMemberFeatureCall__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group__1__Impl_in_rule__XMemberFeatureCall__Group__119902);
+ rule__XMemberFeatureCall__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group__1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9772:1: rule__XMemberFeatureCall__Group__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) ;
+ public final void rule__XMemberFeatureCall__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9776:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9777:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9777:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9778:1: ( rule__XMemberFeatureCall__Alternatives_1 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9779:1: ( rule__XMemberFeatureCall__Alternatives_1 )*
+ loop65:
+ do {
+ int alt65=2;
+ switch ( input.LA(1) ) {
+ case 40:
+ {
+ int LA65_2 = input.LA(2);
+
+ if ( (synpred101_InternalEmfParsleyDsl()) ) {
+ alt65=1;
+ }
+
+
+ }
+ break;
+ case 96:
+ {
+ int LA65_3 = input.LA(2);
+
+ if ( (synpred101_InternalEmfParsleyDsl()) ) {
+ alt65=1;
+ }
+
+
+ }
+ break;
+ case 97:
+ {
+ int LA65_4 = input.LA(2);
+
+ if ( (synpred101_InternalEmfParsleyDsl()) ) {
+ alt65=1;
+ }
+
+
+ }
+ break;
+
+ }
+
+ switch (alt65) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9779:2: rule__XMemberFeatureCall__Alternatives_1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Alternatives_1_in_rule__XMemberFeatureCall__Group__1__Impl19929);
+ rule__XMemberFeatureCall__Alternatives_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop65;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9793:1: rule__XMemberFeatureCall__Group_1_0__0 : rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 ;
+ public final void rule__XMemberFeatureCall__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9797:1: ( rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9798:2: rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_0__0__Impl_in_rule__XMemberFeatureCall__Group_1_0__019964);
+ rule__XMemberFeatureCall__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_0__1_in_rule__XMemberFeatureCall__Group_1_0__019967);
+ rule__XMemberFeatureCall__Group_1_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_0__0"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9805:1: rule__XMemberFeatureCall__Group_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) ;
+ public final void rule__XMemberFeatureCall__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9809:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9810:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9810:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9811:1: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9812:1: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9812:2: rule__XMemberFeatureCall__Group_1_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_0_0__0_in_rule__XMemberFeatureCall__Group_1_0__0__Impl19994);
+ rule__XMemberFeatureCall__Group_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9822:1: rule__XMemberFeatureCall__Group_1_0__1 : rule__XMemberFeatureCall__Group_1_0__1__Impl ;
+ public final void rule__XMemberFeatureCall__Group_1_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9826:1: ( rule__XMemberFeatureCall__Group_1_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9827:2: rule__XMemberFeatureCall__Group_1_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_0__1__Impl_in_rule__XMemberFeatureCall__Group_1_0__120024);
+ rule__XMemberFeatureCall__Group_1_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_0__1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9833:1: rule__XMemberFeatureCall__Group_1_0__1__Impl : ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) ;
+ public final void rule__XMemberFeatureCall__Group_1_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9837:1: ( ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9838:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9838:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9839:1: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9840:1: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9840:2: rule__XMemberFeatureCall__ValueAssignment_1_0_1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__ValueAssignment_1_0_1_in_rule__XMemberFeatureCall__Group_1_0__1__Impl20051);
+ rule__XMemberFeatureCall__ValueAssignment_1_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_0__1__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9854:1: rule__XMemberFeatureCall__Group_1_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0__0__Impl ;
+ public final void rule__XMemberFeatureCall__Group_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9858:1: ( rule__XMemberFeatureCall__Group_1_0_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9859:2: rule__XMemberFeatureCall__Group_1_0_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_0_0__0__Impl_in_rule__XMemberFeatureCall__Group_1_0_0__020085);
+ rule__XMemberFeatureCall__Group_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0__0"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9865:1: rule__XMemberFeatureCall__Group_1_0_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) ;
+ public final void rule__XMemberFeatureCall__Group_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9869:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9870:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9870:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9871:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9872:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9872:2: rule__XMemberFeatureCall__Group_1_0_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__0_in_rule__XMemberFeatureCall__Group_1_0_0__0__Impl20112);
+ rule__XMemberFeatureCall__Group_1_0_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9884:1: rule__XMemberFeatureCall__Group_1_0_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 ;
+ public final void rule__XMemberFeatureCall__Group_1_0_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9888:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9889:2: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl_in_rule__XMemberFeatureCall__Group_1_0_0_0__020144);
+ rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__1_in_rule__XMemberFeatureCall__Group_1_0_0_0__020147);
+ rule__XMemberFeatureCall__Group_1_0_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__0"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9896:1: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl : ( () ) ;
+ public final void rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9900:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9901:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9901:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9902:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9903:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9905:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9915:1: rule__XMemberFeatureCall__Group_1_0_0_0__1 : rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 ;
+ public final void rule__XMemberFeatureCall__Group_1_0_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9919:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9920:2: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl_in_rule__XMemberFeatureCall__Group_1_0_0_0__120205);
+ rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__2_in_rule__XMemberFeatureCall__Group_1_0_0_0__120208);
+ rule__XMemberFeatureCall__Group_1_0_0_0__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9927:1: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) ;
+ public final void rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9931:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9932:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9932:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9933:1: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9934:1: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9934:2: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Alternatives_1_0_0_0_1_in_rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl20235);
+ rule__XMemberFeatureCall__Alternatives_1_0_0_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9944:1: rule__XMemberFeatureCall__Group_1_0_0_0__2 : rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 ;
+ public final void rule__XMemberFeatureCall__Group_1_0_0_0__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9948:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9949:2: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl_in_rule__XMemberFeatureCall__Group_1_0_0_0__220265);
+ rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__3_in_rule__XMemberFeatureCall__Group_1_0_0_0__220268);
+ rule__XMemberFeatureCall__Group_1_0_0_0__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__2"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9956:1: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) ;
+ public final void rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9960:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9961:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9961:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9962:1: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9963:1: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9963:2: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2_in_rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl20295);
+ rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9973:1: rule__XMemberFeatureCall__Group_1_0_0_0__3 : rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl ;
+ public final void rule__XMemberFeatureCall__Group_1_0_0_0__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9977:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9978:2: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl_in_rule__XMemberFeatureCall__Group_1_0_0_0__320325);
+ rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__3"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9984:1: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl : ( ruleOpSingleAssign ) ;
+ public final void rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9988:1: ( ( ruleOpSingleAssign ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9989:1: ( ruleOpSingleAssign )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9989:1: ( ruleOpSingleAssign )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9990:1: ruleOpSingleAssign
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3());
+ }
+ pushFollow(FOLLOW_ruleOpSingleAssign_in_rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl20352);
+ ruleOpSingleAssign();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10009:1: rule__XMemberFeatureCall__Group_1_1__0 : rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 ;
+ public final void rule__XMemberFeatureCall__Group_1_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10013:1: ( rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10014:2: rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1__0__Impl_in_rule__XMemberFeatureCall__Group_1_1__020389);
+ rule__XMemberFeatureCall__Group_1_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1__1_in_rule__XMemberFeatureCall__Group_1_1__020392);
+ rule__XMemberFeatureCall__Group_1_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__0"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10021:1: rule__XMemberFeatureCall__Group_1_1__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10025:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10026:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10026:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10027:1: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10028:1: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10028:2: rule__XMemberFeatureCall__Group_1_1_0__0
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_0__0_in_rule__XMemberFeatureCall__Group_1_1__0__Impl20419);
+ rule__XMemberFeatureCall__Group_1_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__0__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10038:1: rule__XMemberFeatureCall__Group_1_1__1 : rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 ;
+ public final void rule__XMemberFeatureCall__Group_1_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10042:1: ( rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10043:2: rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1__1__Impl_in_rule__XMemberFeatureCall__Group_1_1__120449);
+ rule__XMemberFeatureCall__Group_1_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1__2_in_rule__XMemberFeatureCall__Group_1_1__120452);
+ rule__XMemberFeatureCall__Group_1_1__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10050:1: rule__XMemberFeatureCall__Group_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10054:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10055:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10055:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10056:1: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10057:1: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
+ int alt66=2;
+ int LA66_0 = input.LA(1);
+
+ if ( (LA66_0==25) ) {
+ alt66=1;
+ }
+ switch (alt66) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10057:2: rule__XMemberFeatureCall__Group_1_1_1__0
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__0_in_rule__XMemberFeatureCall__Group_1_1__1__Impl20479);
+ rule__XMemberFeatureCall__Group_1_1_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__1__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10067:1: rule__XMemberFeatureCall__Group_1_1__2 : rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 ;
+ public final void rule__XMemberFeatureCall__Group_1_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10071:1: ( rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10072:2: rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1__2__Impl_in_rule__XMemberFeatureCall__Group_1_1__220510);
+ rule__XMemberFeatureCall__Group_1_1__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1__3_in_rule__XMemberFeatureCall__Group_1_1__220513);
+ rule__XMemberFeatureCall__Group_1_1__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__2"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10079:1: rule__XMemberFeatureCall__Group_1_1__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10083:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10084:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10084:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10085:1: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10086:1: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10086:2: rule__XMemberFeatureCall__FeatureAssignment_1_1_2
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__FeatureAssignment_1_1_2_in_rule__XMemberFeatureCall__Group_1_1__2__Impl20540);
+ rule__XMemberFeatureCall__FeatureAssignment_1_1_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__2__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10096:1: rule__XMemberFeatureCall__Group_1_1__3 : rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 ;
+ public final void rule__XMemberFeatureCall__Group_1_1__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10100:1: ( rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10101:2: rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1__3__Impl_in_rule__XMemberFeatureCall__Group_1_1__320570);
+ rule__XMemberFeatureCall__Group_1_1__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1__4_in_rule__XMemberFeatureCall__Group_1_1__320573);
+ rule__XMemberFeatureCall__Group_1_1__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__3"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10108:1: rule__XMemberFeatureCall__Group_1_1__3__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10112:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10113:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10113:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10114:1: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10115:1: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
+ int alt67=2;
+ alt67 = dfa67.predict(input);
+ switch (alt67) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10115:2: rule__XMemberFeatureCall__Group_1_1_3__0
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__0_in_rule__XMemberFeatureCall__Group_1_1__3__Impl20600);
+ rule__XMemberFeatureCall__Group_1_1_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__3__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10125:1: rule__XMemberFeatureCall__Group_1_1__4 : rule__XMemberFeatureCall__Group_1_1__4__Impl ;
+ public final void rule__XMemberFeatureCall__Group_1_1__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10129:1: ( rule__XMemberFeatureCall__Group_1_1__4__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10130:2: rule__XMemberFeatureCall__Group_1_1__4__Impl
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1__4__Impl_in_rule__XMemberFeatureCall__Group_1_1__420631);
+ rule__XMemberFeatureCall__Group_1_1__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__4"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10136:1: rule__XMemberFeatureCall__Group_1_1__4__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10140:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10141:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10141:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10142:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10143:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
+ int alt68=2;
+ alt68 = dfa68.predict(input);
+ switch (alt68) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10143:2: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4_in_rule__XMemberFeatureCall__Group_1_1__4__Impl20658);
+ rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__4__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10163:1: rule__XMemberFeatureCall__Group_1_1_0__0 : rule__XMemberFeatureCall__Group_1_1_0__0__Impl ;
+ public final void rule__XMemberFeatureCall__Group_1_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10167:1: ( rule__XMemberFeatureCall__Group_1_1_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10168:2: rule__XMemberFeatureCall__Group_1_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_0__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_0__020699);
+ rule__XMemberFeatureCall__Group_1_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_0__0"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10174:1: rule__XMemberFeatureCall__Group_1_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10178:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10179:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10179:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10180:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10181:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10181:2: rule__XMemberFeatureCall__Group_1_1_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_0_0__0_in_rule__XMemberFeatureCall__Group_1_1_0__0__Impl20726);
+ rule__XMemberFeatureCall__Group_1_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10193:1: rule__XMemberFeatureCall__Group_1_1_0_0__0 : rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 ;
+ public final void rule__XMemberFeatureCall__Group_1_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10197:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10198:2: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_0_0__020758);
+ rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_0_0__1_in_rule__XMemberFeatureCall__Group_1_1_0_0__020761);
+ rule__XMemberFeatureCall__Group_1_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_0_0__0"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10205:1: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl : ( () ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10209:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10210:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10210:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10211:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10212:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10214:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10224:1: rule__XMemberFeatureCall__Group_1_1_0_0__1 : rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl ;
+ public final void rule__XMemberFeatureCall__Group_1_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10228:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10229:2: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl_in_rule__XMemberFeatureCall__Group_1_1_0_0__120819);
+ rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_0_0__1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10235:1: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10239:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10240:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10240:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10241:1: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10242:1: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10242:2: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Alternatives_1_1_0_0_1_in_rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl20846);
+ rule__XMemberFeatureCall__Alternatives_1_1_0_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10256:1: rule__XMemberFeatureCall__Group_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 ;
+ public final void rule__XMemberFeatureCall__Group_1_1_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10260:1: ( rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10261:2: rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_1__020880);
+ rule__XMemberFeatureCall__Group_1_1_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__1_in_rule__XMemberFeatureCall__Group_1_1_1__020883);
+ rule__XMemberFeatureCall__Group_1_1_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__0"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10268:1: rule__XMemberFeatureCall__Group_1_1_1__0__Impl : ( '<' ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10272:1: ( ( '<' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10273:1: ( '<' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10273:1: ( '<' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10274:1: '<'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0());
+ }
+ match(input,25,FOLLOW_25_in_rule__XMemberFeatureCall__Group_1_1_1__0__Impl20911); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__0__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10287:1: rule__XMemberFeatureCall__Group_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 ;
+ public final void rule__XMemberFeatureCall__Group_1_1_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10291:1: ( rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10292:2: rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__1__Impl_in_rule__XMemberFeatureCall__Group_1_1_1__120942);
+ rule__XMemberFeatureCall__Group_1_1_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__2_in_rule__XMemberFeatureCall__Group_1_1_1__120945);
+ rule__XMemberFeatureCall__Group_1_1_1__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10299:1: rule__XMemberFeatureCall__Group_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10303:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10304:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10304:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10305:1: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10306:1: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10306:2: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1_in_rule__XMemberFeatureCall__Group_1_1_1__1__Impl20972);
+ rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__1__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10316:1: rule__XMemberFeatureCall__Group_1_1_1__2 : rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 ;
+ public final void rule__XMemberFeatureCall__Group_1_1_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10320:1: ( rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10321:2: rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__2__Impl_in_rule__XMemberFeatureCall__Group_1_1_1__221002);
+ rule__XMemberFeatureCall__Group_1_1_1__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__3_in_rule__XMemberFeatureCall__Group_1_1_1__221005);
+ rule__XMemberFeatureCall__Group_1_1_1__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__2"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10328:1: rule__XMemberFeatureCall__Group_1_1_1__2__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10332:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10333:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10333:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10334:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10335:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
+ loop69:
+ do {
+ int alt69=2;
+ int LA69_0 = input.LA(1);
+
+ if ( (LA69_0==59) ) {
+ alt69=1;
+ }
+
+
+ switch (alt69) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10335:2: rule__XMemberFeatureCall__Group_1_1_1_2__0
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_1_2__0_in_rule__XMemberFeatureCall__Group_1_1_1__2__Impl21032);
+ rule__XMemberFeatureCall__Group_1_1_1_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop69;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__2__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10345:1: rule__XMemberFeatureCall__Group_1_1_1__3 : rule__XMemberFeatureCall__Group_1_1_1__3__Impl ;
+ public final void rule__XMemberFeatureCall__Group_1_1_1__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10349:1: ( rule__XMemberFeatureCall__Group_1_1_1__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10350:2: rule__XMemberFeatureCall__Group_1_1_1__3__Impl
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__3__Impl_in_rule__XMemberFeatureCall__Group_1_1_1__321063);
+ rule__XMemberFeatureCall__Group_1_1_1__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__3"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10356:1: rule__XMemberFeatureCall__Group_1_1_1__3__Impl : ( '>' ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1_1__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10360:1: ( ( '>' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10361:1: ( '>' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10361:1: ( '>' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10362:1: '>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3());
+ }
+ match(input,24,FOLLOW_24_in_rule__XMemberFeatureCall__Group_1_1_1__3__Impl21091); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__3__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10383:1: rule__XMemberFeatureCall__Group_1_1_1_2__0 : rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 ;
+ public final void rule__XMemberFeatureCall__Group_1_1_1_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10387:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10388:2: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_1_2__021130);
+ rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_1_2__1_in_rule__XMemberFeatureCall__Group_1_1_1_2__021133);
+ rule__XMemberFeatureCall__Group_1_1_1_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1_2__0"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10395:1: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl : ( ',' ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10399:1: ( ( ',' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10400:1: ( ',' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10400:1: ( ',' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10401:1: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0());
+ }
+ match(input,59,FOLLOW_59_in_rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl21161); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10414:1: rule__XMemberFeatureCall__Group_1_1_1_2__1 : rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl ;
+ public final void rule__XMemberFeatureCall__Group_1_1_1_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10418:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10419:2: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl_in_rule__XMemberFeatureCall__Group_1_1_1_2__121192);
+ rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1_2__1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10425:1: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10429:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10430:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10430:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10431:1: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10432:1: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10432:2: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1_in_rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl21219);
+ rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10446:1: rule__XMemberFeatureCall__Group_1_1_3__0 : rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 ;
+ public final void rule__XMemberFeatureCall__Group_1_1_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10450:1: ( rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10451:2: rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_3__021253);
+ rule__XMemberFeatureCall__Group_1_1_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__1_in_rule__XMemberFeatureCall__Group_1_1_3__021256);
+ rule__XMemberFeatureCall__Group_1_1_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3__0"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10458:1: rule__XMemberFeatureCall__Group_1_1_3__0__Impl : ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10462:1: ( ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10463:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10463:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10464:1: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10465:1: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10465:2: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0_in_rule__XMemberFeatureCall__Group_1_1_3__0__Impl21283);
+ rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3__0__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10475:1: rule__XMemberFeatureCall__Group_1_1_3__1 : rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 ;
+ public final void rule__XMemberFeatureCall__Group_1_1_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10479:1: ( rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10480:2: rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__1__Impl_in_rule__XMemberFeatureCall__Group_1_1_3__121313);
+ rule__XMemberFeatureCall__Group_1_1_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__2_in_rule__XMemberFeatureCall__Group_1_1_3__121316);
+ rule__XMemberFeatureCall__Group_1_1_3__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3__1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10487:1: rule__XMemberFeatureCall__Group_1_1_3__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10491:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10492:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10492:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10493:1: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10494:1: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
+ int alt70=2;
+ int LA70_0 = input.LA(1);
+
+ if ( ((LA70_0>=RULE_ID && LA70_0<=RULE_STRING)||LA70_0==25||LA70_0==29||(LA70_0>=33 && LA70_0<=34)||LA70_0==39||(LA70_0>=42 && LA70_0<=47)||LA70_0==49||(LA70_0>=73 && LA70_0<=74)||(LA70_0>=77 && LA70_0<=78)||LA70_0==80||(LA70_0>=83 && LA70_0<=91)||LA70_0==98||LA70_0==100) ) {
+ alt70=1;
+ }
+ switch (alt70) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10494:2: rule__XMemberFeatureCall__Alternatives_1_1_3_1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Alternatives_1_1_3_1_in_rule__XMemberFeatureCall__Group_1_1_3__1__Impl21343);
+ rule__XMemberFeatureCall__Alternatives_1_1_3_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3__1__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10504:1: rule__XMemberFeatureCall__Group_1_1_3__2 : rule__XMemberFeatureCall__Group_1_1_3__2__Impl ;
+ public final void rule__XMemberFeatureCall__Group_1_1_3__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10508:1: ( rule__XMemberFeatureCall__Group_1_1_3__2__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10509:2: rule__XMemberFeatureCall__Group_1_1_3__2__Impl
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__2__Impl_in_rule__XMemberFeatureCall__Group_1_1_3__221374);
+ rule__XMemberFeatureCall__Group_1_1_3__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3__2"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10515:1: rule__XMemberFeatureCall__Group_1_1_3__2__Impl : ( ')' ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1_3__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10519:1: ( ( ')' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10520:1: ( ')' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10520:1: ( ')' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10521:1: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2());
+ }
+ match(input,72,FOLLOW_72_in_rule__XMemberFeatureCall__Group_1_1_3__2__Impl21402); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3__2__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10540:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 ;
+ public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10544:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10545:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_3_1_1__021439);
+ rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1__1_in_rule__XMemberFeatureCall__Group_1_1_3_1_1__021442);
+ rule__XMemberFeatureCall__Group_1_1_3_1_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1__0"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10552:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10556:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10557:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10557:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10558:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10559:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10559:2: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0_in_rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl21469);
+ rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10569:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl ;
+ public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10573:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10574:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl_in_rule__XMemberFeatureCall__Group_1_1_3_1_1__121499);
+ rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1__1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10580:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10584:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10585:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10585:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10586:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10587:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
+ loop71:
+ do {
+ int alt71=2;
+ int LA71_0 = input.LA(1);
+
+ if ( (LA71_0==59) ) {
+ alt71=1;
+ }
+
+
+ switch (alt71) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10587:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0_in_rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl21526);
+ rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop71;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10601:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 ;
+ public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10605:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10606:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__021561);
+ rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1_in_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__021564);
+ rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10613:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl : ( ',' ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10617:1: ( ( ',' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10618:1: ( ',' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10618:1: ( ',' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10619:1: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0());
+ }
+ match(input,59,FOLLOW_59_in_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl21592); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10632:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl ;
+ public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10636:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10637:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl_in_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__121623);
+ rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10643:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) ;
+ public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10647:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10648:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10648:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10649:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10650:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10650:2: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1_in_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl21650);
+ rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl"
+
+
+ // $ANTLR start "rule__XSetLiteral__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10664:1: rule__XSetLiteral__Group__0 : rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 ;
+ public final void rule__XSetLiteral__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10668:1: ( rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10669:2: rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1
+ {
+ pushFollow(FOLLOW_rule__XSetLiteral__Group__0__Impl_in_rule__XSetLiteral__Group__021684);
+ rule__XSetLiteral__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSetLiteral__Group__1_in_rule__XSetLiteral__Group__021687);
+ rule__XSetLiteral__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__Group__0"
+
+
+ // $ANTLR start "rule__XSetLiteral__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10676:1: rule__XSetLiteral__Group__0__Impl : ( () ) ;
+ public final void rule__XSetLiteral__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10680:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10681:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10681:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10682:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10683:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10685:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XSetLiteral__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10695:1: rule__XSetLiteral__Group__1 : rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 ;
+ public final void rule__XSetLiteral__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10699:1: ( rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10700:2: rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2
+ {
+ pushFollow(FOLLOW_rule__XSetLiteral__Group__1__Impl_in_rule__XSetLiteral__Group__121745);
+ rule__XSetLiteral__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSetLiteral__Group__2_in_rule__XSetLiteral__Group__121748);
+ rule__XSetLiteral__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__Group__1"
+
+
+ // $ANTLR start "rule__XSetLiteral__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10707:1: rule__XSetLiteral__Group__1__Impl : ( '#' ) ;
+ public final void rule__XSetLiteral__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10711:1: ( ( '#' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10712:1: ( '#' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10712:1: ( '#' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10713:1: '#'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1());
+ }
+ match(input,73,FOLLOW_73_in_rule__XSetLiteral__Group__1__Impl21776); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XSetLiteral__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10726:1: rule__XSetLiteral__Group__2 : rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 ;
+ public final void rule__XSetLiteral__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10730:1: ( rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10731:2: rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3
+ {
+ pushFollow(FOLLOW_rule__XSetLiteral__Group__2__Impl_in_rule__XSetLiteral__Group__221807);
+ rule__XSetLiteral__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSetLiteral__Group__3_in_rule__XSetLiteral__Group__221810);
+ rule__XSetLiteral__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__Group__2"
+
+
+ // $ANTLR start "rule__XSetLiteral__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10738:1: rule__XSetLiteral__Group__2__Impl : ( '{' ) ;
+ public final void rule__XSetLiteral__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10742:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10743:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10743:1: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10744:1: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2());
+ }
+ match(input,49,FOLLOW_49_in_rule__XSetLiteral__Group__2__Impl21838); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XSetLiteral__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10757:1: rule__XSetLiteral__Group__3 : rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 ;
+ public final void rule__XSetLiteral__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10761:1: ( rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10762:2: rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4
+ {
+ pushFollow(FOLLOW_rule__XSetLiteral__Group__3__Impl_in_rule__XSetLiteral__Group__321869);
+ rule__XSetLiteral__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSetLiteral__Group__4_in_rule__XSetLiteral__Group__321872);
+ rule__XSetLiteral__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__Group__3"
+
+
+ // $ANTLR start "rule__XSetLiteral__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10769:1: rule__XSetLiteral__Group__3__Impl : ( ( rule__XSetLiteral__Group_3__0 )? ) ;
+ public final void rule__XSetLiteral__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10773:1: ( ( ( rule__XSetLiteral__Group_3__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10774:1: ( ( rule__XSetLiteral__Group_3__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10774:1: ( ( rule__XSetLiteral__Group_3__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10775:1: ( rule__XSetLiteral__Group_3__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSetLiteralAccess().getGroup_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10776:1: ( rule__XSetLiteral__Group_3__0 )?
+ int alt72=2;
+ int LA72_0 = input.LA(1);
+
+ if ( ((LA72_0>=RULE_ID && LA72_0<=RULE_STRING)||LA72_0==25||(LA72_0>=33 && LA72_0<=34)||LA72_0==39||(LA72_0>=42 && LA72_0<=47)||LA72_0==49||(LA72_0>=73 && LA72_0<=74)||(LA72_0>=77 && LA72_0<=78)||LA72_0==80||(LA72_0>=83 && LA72_0<=91)||LA72_0==100) ) {
+ alt72=1;
+ }
+ switch (alt72) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10776:2: rule__XSetLiteral__Group_3__0
+ {
+ pushFollow(FOLLOW_rule__XSetLiteral__Group_3__0_in_rule__XSetLiteral__Group__3__Impl21899);
+ rule__XSetLiteral__Group_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSetLiteralAccess().getGroup_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__Group__3__Impl"
+
+
+ // $ANTLR start "rule__XSetLiteral__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10786:1: rule__XSetLiteral__Group__4 : rule__XSetLiteral__Group__4__Impl ;
+ public final void rule__XSetLiteral__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10790:1: ( rule__XSetLiteral__Group__4__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10791:2: rule__XSetLiteral__Group__4__Impl
+ {
+ pushFollow(FOLLOW_rule__XSetLiteral__Group__4__Impl_in_rule__XSetLiteral__Group__421930);
+ rule__XSetLiteral__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__Group__4"
+
+
+ // $ANTLR start "rule__XSetLiteral__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10797:1: rule__XSetLiteral__Group__4__Impl : ( '}' ) ;
+ public final void rule__XSetLiteral__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10801:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10802:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10802:1: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10803:1: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4());
+ }
+ match(input,50,FOLLOW_50_in_rule__XSetLiteral__Group__4__Impl21958); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__Group__4__Impl"
+
+
+ // $ANTLR start "rule__XSetLiteral__Group_3__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10826:1: rule__XSetLiteral__Group_3__0 : rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 ;
+ public final void rule__XSetLiteral__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10830:1: ( rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10831:2: rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1
+ {
+ pushFollow(FOLLOW_rule__XSetLiteral__Group_3__0__Impl_in_rule__XSetLiteral__Group_3__021999);
+ rule__XSetLiteral__Group_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSetLiteral__Group_3__1_in_rule__XSetLiteral__Group_3__022002);
+ rule__XSetLiteral__Group_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__Group_3__0"
+
+
+ // $ANTLR start "rule__XSetLiteral__Group_3__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10838:1: rule__XSetLiteral__Group_3__0__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) ;
+ public final void rule__XSetLiteral__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10842:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10843:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10843:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10844:1: ( rule__XSetLiteral__ElementsAssignment_3_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10845:1: ( rule__XSetLiteral__ElementsAssignment_3_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10845:2: rule__XSetLiteral__ElementsAssignment_3_0
+ {
+ pushFollow(FOLLOW_rule__XSetLiteral__ElementsAssignment_3_0_in_rule__XSetLiteral__Group_3__0__Impl22029);
+ rule__XSetLiteral__ElementsAssignment_3_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__XSetLiteral__Group_3__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10855:1: rule__XSetLiteral__Group_3__1 : rule__XSetLiteral__Group_3__1__Impl ;
+ public final void rule__XSetLiteral__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10859:1: ( rule__XSetLiteral__Group_3__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10860:2: rule__XSetLiteral__Group_3__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XSetLiteral__Group_3__1__Impl_in_rule__XSetLiteral__Group_3__122059);
+ rule__XSetLiteral__Group_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__Group_3__1"
+
+
+ // $ANTLR start "rule__XSetLiteral__Group_3__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10866:1: rule__XSetLiteral__Group_3__1__Impl : ( ( rule__XSetLiteral__Group_3_1__0 )* ) ;
+ public final void rule__XSetLiteral__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10870:1: ( ( ( rule__XSetLiteral__Group_3_1__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10871:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10871:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10872:1: ( rule__XSetLiteral__Group_3_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSetLiteralAccess().getGroup_3_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10873:1: ( rule__XSetLiteral__Group_3_1__0 )*
+ loop73:
+ do {
+ int alt73=2;
+ int LA73_0 = input.LA(1);
+
+ if ( (LA73_0==59) ) {
+ alt73=1;
+ }
+
+
+ switch (alt73) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10873:2: rule__XSetLiteral__Group_3_1__0
+ {
+ pushFollow(FOLLOW_rule__XSetLiteral__Group_3_1__0_in_rule__XSetLiteral__Group_3__1__Impl22086);
+ rule__XSetLiteral__Group_3_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop73;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSetLiteralAccess().getGroup_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__XSetLiteral__Group_3_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10887:1: rule__XSetLiteral__Group_3_1__0 : rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 ;
+ public final void rule__XSetLiteral__Group_3_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10891:1: ( rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10892:2: rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1
+ {
+ pushFollow(FOLLOW_rule__XSetLiteral__Group_3_1__0__Impl_in_rule__XSetLiteral__Group_3_1__022121);
+ rule__XSetLiteral__Group_3_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSetLiteral__Group_3_1__1_in_rule__XSetLiteral__Group_3_1__022124);
+ rule__XSetLiteral__Group_3_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__Group_3_1__0"
+
+
+ // $ANTLR start "rule__XSetLiteral__Group_3_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10899:1: rule__XSetLiteral__Group_3_1__0__Impl : ( ',' ) ;
+ public final void rule__XSetLiteral__Group_3_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10903:1: ( ( ',' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10904:1: ( ',' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10904:1: ( ',' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10905:1: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0());
+ }
+ match(input,59,FOLLOW_59_in_rule__XSetLiteral__Group_3_1__0__Impl22152); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__Group_3_1__0__Impl"
+
+
+ // $ANTLR start "rule__XSetLiteral__Group_3_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10918:1: rule__XSetLiteral__Group_3_1__1 : rule__XSetLiteral__Group_3_1__1__Impl ;
+ public final void rule__XSetLiteral__Group_3_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10922:1: ( rule__XSetLiteral__Group_3_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10923:2: rule__XSetLiteral__Group_3_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XSetLiteral__Group_3_1__1__Impl_in_rule__XSetLiteral__Group_3_1__122183);
+ rule__XSetLiteral__Group_3_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__Group_3_1__1"
+
+
+ // $ANTLR start "rule__XSetLiteral__Group_3_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10929:1: rule__XSetLiteral__Group_3_1__1__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) ;
+ public final void rule__XSetLiteral__Group_3_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10933:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10934:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10934:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10935:1: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10936:1: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10936:2: rule__XSetLiteral__ElementsAssignment_3_1_1
+ {
+ pushFollow(FOLLOW_rule__XSetLiteral__ElementsAssignment_3_1_1_in_rule__XSetLiteral__Group_3_1__1__Impl22210);
+ rule__XSetLiteral__ElementsAssignment_3_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__Group_3_1__1__Impl"
+
+
+ // $ANTLR start "rule__XListLiteral__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10950:1: rule__XListLiteral__Group__0 : rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 ;
+ public final void rule__XListLiteral__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10954:1: ( rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10955:2: rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1
+ {
+ pushFollow(FOLLOW_rule__XListLiteral__Group__0__Impl_in_rule__XListLiteral__Group__022244);
+ rule__XListLiteral__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XListLiteral__Group__1_in_rule__XListLiteral__Group__022247);
+ rule__XListLiteral__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__Group__0"
+
+
+ // $ANTLR start "rule__XListLiteral__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10962:1: rule__XListLiteral__Group__0__Impl : ( () ) ;
+ public final void rule__XListLiteral__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10966:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10967:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10967:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10968:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10969:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10971:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XListLiteral__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10981:1: rule__XListLiteral__Group__1 : rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 ;
+ public final void rule__XListLiteral__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10985:1: ( rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10986:2: rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2
+ {
+ pushFollow(FOLLOW_rule__XListLiteral__Group__1__Impl_in_rule__XListLiteral__Group__122305);
+ rule__XListLiteral__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XListLiteral__Group__2_in_rule__XListLiteral__Group__122308);
+ rule__XListLiteral__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__Group__1"
+
+
+ // $ANTLR start "rule__XListLiteral__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10993:1: rule__XListLiteral__Group__1__Impl : ( '#' ) ;
+ public final void rule__XListLiteral__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10997:1: ( ( '#' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10998:1: ( '#' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10998:1: ( '#' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10999:1: '#'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1());
+ }
+ match(input,73,FOLLOW_73_in_rule__XListLiteral__Group__1__Impl22336); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XListLiteral__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11012:1: rule__XListLiteral__Group__2 : rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 ;
+ public final void rule__XListLiteral__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11016:1: ( rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11017:2: rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3
+ {
+ pushFollow(FOLLOW_rule__XListLiteral__Group__2__Impl_in_rule__XListLiteral__Group__222367);
+ rule__XListLiteral__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XListLiteral__Group__3_in_rule__XListLiteral__Group__222370);
+ rule__XListLiteral__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__Group__2"
+
+
+ // $ANTLR start "rule__XListLiteral__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11024:1: rule__XListLiteral__Group__2__Impl : ( '[' ) ;
+ public final void rule__XListLiteral__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11028:1: ( ( '[' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11029:1: ( '[' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11029:1: ( '[' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11030:1: '['
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2());
+ }
+ match(input,74,FOLLOW_74_in_rule__XListLiteral__Group__2__Impl22398); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XListLiteral__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11043:1: rule__XListLiteral__Group__3 : rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 ;
+ public final void rule__XListLiteral__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11047:1: ( rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11048:2: rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4
+ {
+ pushFollow(FOLLOW_rule__XListLiteral__Group__3__Impl_in_rule__XListLiteral__Group__322429);
+ rule__XListLiteral__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XListLiteral__Group__4_in_rule__XListLiteral__Group__322432);
+ rule__XListLiteral__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__Group__3"
+
+
+ // $ANTLR start "rule__XListLiteral__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11055:1: rule__XListLiteral__Group__3__Impl : ( ( rule__XListLiteral__Group_3__0 )? ) ;
+ public final void rule__XListLiteral__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11059:1: ( ( ( rule__XListLiteral__Group_3__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11060:1: ( ( rule__XListLiteral__Group_3__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11060:1: ( ( rule__XListLiteral__Group_3__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11061:1: ( rule__XListLiteral__Group_3__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXListLiteralAccess().getGroup_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11062:1: ( rule__XListLiteral__Group_3__0 )?
+ int alt74=2;
+ int LA74_0 = input.LA(1);
+
+ if ( ((LA74_0>=RULE_ID && LA74_0<=RULE_STRING)||LA74_0==25||(LA74_0>=33 && LA74_0<=34)||LA74_0==39||(LA74_0>=42 && LA74_0<=47)||LA74_0==49||(LA74_0>=73 && LA74_0<=74)||(LA74_0>=77 && LA74_0<=78)||LA74_0==80||(LA74_0>=83 && LA74_0<=91)||LA74_0==100) ) {
+ alt74=1;
+ }
+ switch (alt74) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11062:2: rule__XListLiteral__Group_3__0
+ {
+ pushFollow(FOLLOW_rule__XListLiteral__Group_3__0_in_rule__XListLiteral__Group__3__Impl22459);
+ rule__XListLiteral__Group_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXListLiteralAccess().getGroup_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__Group__3__Impl"
+
+
+ // $ANTLR start "rule__XListLiteral__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11072:1: rule__XListLiteral__Group__4 : rule__XListLiteral__Group__4__Impl ;
+ public final void rule__XListLiteral__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11076:1: ( rule__XListLiteral__Group__4__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11077:2: rule__XListLiteral__Group__4__Impl
+ {
+ pushFollow(FOLLOW_rule__XListLiteral__Group__4__Impl_in_rule__XListLiteral__Group__422490);
+ rule__XListLiteral__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__Group__4"
+
+
+ // $ANTLR start "rule__XListLiteral__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11083:1: rule__XListLiteral__Group__4__Impl : ( ']' ) ;
+ public final void rule__XListLiteral__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11087:1: ( ( ']' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11088:1: ( ']' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11088:1: ( ']' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11089:1: ']'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4());
+ }
+ match(input,75,FOLLOW_75_in_rule__XListLiteral__Group__4__Impl22518); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__Group__4__Impl"
+
+
+ // $ANTLR start "rule__XListLiteral__Group_3__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11112:1: rule__XListLiteral__Group_3__0 : rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 ;
+ public final void rule__XListLiteral__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11116:1: ( rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11117:2: rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1
+ {
+ pushFollow(FOLLOW_rule__XListLiteral__Group_3__0__Impl_in_rule__XListLiteral__Group_3__022559);
+ rule__XListLiteral__Group_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XListLiteral__Group_3__1_in_rule__XListLiteral__Group_3__022562);
+ rule__XListLiteral__Group_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__Group_3__0"
+
+
+ // $ANTLR start "rule__XListLiteral__Group_3__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11124:1: rule__XListLiteral__Group_3__0__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) ;
+ public final void rule__XListLiteral__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11128:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11129:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11129:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11130:1: ( rule__XListLiteral__ElementsAssignment_3_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11131:1: ( rule__XListLiteral__ElementsAssignment_3_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11131:2: rule__XListLiteral__ElementsAssignment_3_0
+ {
+ pushFollow(FOLLOW_rule__XListLiteral__ElementsAssignment_3_0_in_rule__XListLiteral__Group_3__0__Impl22589);
+ rule__XListLiteral__ElementsAssignment_3_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__XListLiteral__Group_3__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11141:1: rule__XListLiteral__Group_3__1 : rule__XListLiteral__Group_3__1__Impl ;
+ public final void rule__XListLiteral__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11145:1: ( rule__XListLiteral__Group_3__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11146:2: rule__XListLiteral__Group_3__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XListLiteral__Group_3__1__Impl_in_rule__XListLiteral__Group_3__122619);
+ rule__XListLiteral__Group_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__Group_3__1"
+
+
+ // $ANTLR start "rule__XListLiteral__Group_3__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11152:1: rule__XListLiteral__Group_3__1__Impl : ( ( rule__XListLiteral__Group_3_1__0 )* ) ;
+ public final void rule__XListLiteral__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11156:1: ( ( ( rule__XListLiteral__Group_3_1__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11157:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11157:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11158:1: ( rule__XListLiteral__Group_3_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXListLiteralAccess().getGroup_3_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11159:1: ( rule__XListLiteral__Group_3_1__0 )*
+ loop75:
+ do {
+ int alt75=2;
+ int LA75_0 = input.LA(1);
+
+ if ( (LA75_0==59) ) {
+ alt75=1;
+ }
+
+
+ switch (alt75) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11159:2: rule__XListLiteral__Group_3_1__0
+ {
+ pushFollow(FOLLOW_rule__XListLiteral__Group_3_1__0_in_rule__XListLiteral__Group_3__1__Impl22646);
+ rule__XListLiteral__Group_3_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop75;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXListLiteralAccess().getGroup_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__XListLiteral__Group_3_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11173:1: rule__XListLiteral__Group_3_1__0 : rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 ;
+ public final void rule__XListLiteral__Group_3_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11177:1: ( rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11178:2: rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1
+ {
+ pushFollow(FOLLOW_rule__XListLiteral__Group_3_1__0__Impl_in_rule__XListLiteral__Group_3_1__022681);
+ rule__XListLiteral__Group_3_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XListLiteral__Group_3_1__1_in_rule__XListLiteral__Group_3_1__022684);
+ rule__XListLiteral__Group_3_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__Group_3_1__0"
+
+
+ // $ANTLR start "rule__XListLiteral__Group_3_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11185:1: rule__XListLiteral__Group_3_1__0__Impl : ( ',' ) ;
+ public final void rule__XListLiteral__Group_3_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11189:1: ( ( ',' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11190:1: ( ',' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11190:1: ( ',' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11191:1: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0());
+ }
+ match(input,59,FOLLOW_59_in_rule__XListLiteral__Group_3_1__0__Impl22712); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__Group_3_1__0__Impl"
+
+
+ // $ANTLR start "rule__XListLiteral__Group_3_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11204:1: rule__XListLiteral__Group_3_1__1 : rule__XListLiteral__Group_3_1__1__Impl ;
+ public final void rule__XListLiteral__Group_3_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11208:1: ( rule__XListLiteral__Group_3_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11209:2: rule__XListLiteral__Group_3_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XListLiteral__Group_3_1__1__Impl_in_rule__XListLiteral__Group_3_1__122743);
+ rule__XListLiteral__Group_3_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__Group_3_1__1"
+
+
+ // $ANTLR start "rule__XListLiteral__Group_3_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11215:1: rule__XListLiteral__Group_3_1__1__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) ;
+ public final void rule__XListLiteral__Group_3_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11219:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11220:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11220:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11221:1: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11222:1: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11222:2: rule__XListLiteral__ElementsAssignment_3_1_1
+ {
+ pushFollow(FOLLOW_rule__XListLiteral__ElementsAssignment_3_1_1_in_rule__XListLiteral__Group_3_1__1__Impl22770);
+ rule__XListLiteral__ElementsAssignment_3_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__Group_3_1__1__Impl"
+
+
+ // $ANTLR start "rule__XClosure__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11236:1: rule__XClosure__Group__0 : rule__XClosure__Group__0__Impl rule__XClosure__Group__1 ;
+ public final void rule__XClosure__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11240:1: ( rule__XClosure__Group__0__Impl rule__XClosure__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11241:2: rule__XClosure__Group__0__Impl rule__XClosure__Group__1
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group__0__Impl_in_rule__XClosure__Group__022804);
+ rule__XClosure__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XClosure__Group__1_in_rule__XClosure__Group__022807);
+ rule__XClosure__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group__0"
+
+
+ // $ANTLR start "rule__XClosure__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11248:1: rule__XClosure__Group__0__Impl : ( ( rule__XClosure__Group_0__0 ) ) ;
+ public final void rule__XClosure__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11252:1: ( ( ( rule__XClosure__Group_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11253:1: ( ( rule__XClosure__Group_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11253:1: ( ( rule__XClosure__Group_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11254:1: ( rule__XClosure__Group_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getGroup_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11255:1: ( rule__XClosure__Group_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11255:2: rule__XClosure__Group_0__0
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group_0__0_in_rule__XClosure__Group__0__Impl22834);
+ rule__XClosure__Group_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getGroup_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XClosure__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11265:1: rule__XClosure__Group__1 : rule__XClosure__Group__1__Impl rule__XClosure__Group__2 ;
+ public final void rule__XClosure__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11269:1: ( rule__XClosure__Group__1__Impl rule__XClosure__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11270:2: rule__XClosure__Group__1__Impl rule__XClosure__Group__2
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group__1__Impl_in_rule__XClosure__Group__122864);
+ rule__XClosure__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XClosure__Group__2_in_rule__XClosure__Group__122867);
+ rule__XClosure__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group__1"
+
+
+ // $ANTLR start "rule__XClosure__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11277:1: rule__XClosure__Group__1__Impl : ( ( rule__XClosure__Group_1__0 )? ) ;
+ public final void rule__XClosure__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11281:1: ( ( ( rule__XClosure__Group_1__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11282:1: ( ( rule__XClosure__Group_1__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11282:1: ( ( rule__XClosure__Group_1__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11283:1: ( rule__XClosure__Group_1__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getGroup_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11284:1: ( rule__XClosure__Group_1__0 )?
+ int alt76=2;
+ alt76 = dfa76.predict(input);
+ switch (alt76) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11284:2: rule__XClosure__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group_1__0_in_rule__XClosure__Group__1__Impl22894);
+ rule__XClosure__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XClosure__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11294:1: rule__XClosure__Group__2 : rule__XClosure__Group__2__Impl rule__XClosure__Group__3 ;
+ public final void rule__XClosure__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11298:1: ( rule__XClosure__Group__2__Impl rule__XClosure__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11299:2: rule__XClosure__Group__2__Impl rule__XClosure__Group__3
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group__2__Impl_in_rule__XClosure__Group__222925);
+ rule__XClosure__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XClosure__Group__3_in_rule__XClosure__Group__222928);
+ rule__XClosure__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group__2"
+
+
+ // $ANTLR start "rule__XClosure__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11306:1: rule__XClosure__Group__2__Impl : ( ( rule__XClosure__ExpressionAssignment_2 ) ) ;
+ public final void rule__XClosure__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11310:1: ( ( ( rule__XClosure__ExpressionAssignment_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11311:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11311:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11312:1: ( rule__XClosure__ExpressionAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getExpressionAssignment_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11313:1: ( rule__XClosure__ExpressionAssignment_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11313:2: rule__XClosure__ExpressionAssignment_2
+ {
+ pushFollow(FOLLOW_rule__XClosure__ExpressionAssignment_2_in_rule__XClosure__Group__2__Impl22955);
+ rule__XClosure__ExpressionAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getExpressionAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XClosure__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11323:1: rule__XClosure__Group__3 : rule__XClosure__Group__3__Impl ;
+ public final void rule__XClosure__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11327:1: ( rule__XClosure__Group__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11328:2: rule__XClosure__Group__3__Impl
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group__3__Impl_in_rule__XClosure__Group__322985);
+ rule__XClosure__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group__3"
+
+
+ // $ANTLR start "rule__XClosure__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11334:1: rule__XClosure__Group__3__Impl : ( ']' ) ;
+ public final void rule__XClosure__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11338:1: ( ( ']' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11339:1: ( ']' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11339:1: ( ']' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11340:1: ']'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3());
+ }
+ match(input,75,FOLLOW_75_in_rule__XClosure__Group__3__Impl23013); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group__3__Impl"
+
+
+ // $ANTLR start "rule__XClosure__Group_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11361:1: rule__XClosure__Group_0__0 : rule__XClosure__Group_0__0__Impl ;
+ public final void rule__XClosure__Group_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11365:1: ( rule__XClosure__Group_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11366:2: rule__XClosure__Group_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group_0__0__Impl_in_rule__XClosure__Group_0__023052);
+ rule__XClosure__Group_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_0__0"
+
+
+ // $ANTLR start "rule__XClosure__Group_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11372:1: rule__XClosure__Group_0__0__Impl : ( ( rule__XClosure__Group_0_0__0 ) ) ;
+ public final void rule__XClosure__Group_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11376:1: ( ( ( rule__XClosure__Group_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11377:1: ( ( rule__XClosure__Group_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11377:1: ( ( rule__XClosure__Group_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11378:1: ( rule__XClosure__Group_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getGroup_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11379:1: ( rule__XClosure__Group_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11379:2: rule__XClosure__Group_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group_0_0__0_in_rule__XClosure__Group_0__0__Impl23079);
+ rule__XClosure__Group_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getGroup_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_0__0__Impl"
+
+
+ // $ANTLR start "rule__XClosure__Group_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11391:1: rule__XClosure__Group_0_0__0 : rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 ;
+ public final void rule__XClosure__Group_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11395:1: ( rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11396:2: rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group_0_0__0__Impl_in_rule__XClosure__Group_0_0__023111);
+ rule__XClosure__Group_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XClosure__Group_0_0__1_in_rule__XClosure__Group_0_0__023114);
+ rule__XClosure__Group_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_0_0__0"
+
+
+ // $ANTLR start "rule__XClosure__Group_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11403:1: rule__XClosure__Group_0_0__0__Impl : ( () ) ;
+ public final void rule__XClosure__Group_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11407:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11408:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11408:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11409:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11410:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11412:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XClosure__Group_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11422:1: rule__XClosure__Group_0_0__1 : rule__XClosure__Group_0_0__1__Impl ;
+ public final void rule__XClosure__Group_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11426:1: ( rule__XClosure__Group_0_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11427:2: rule__XClosure__Group_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group_0_0__1__Impl_in_rule__XClosure__Group_0_0__123172);
+ rule__XClosure__Group_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_0_0__1"
+
+
+ // $ANTLR start "rule__XClosure__Group_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11433:1: rule__XClosure__Group_0_0__1__Impl : ( '[' ) ;
+ public final void rule__XClosure__Group_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11437:1: ( ( '[' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11438:1: ( '[' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11438:1: ( '[' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11439:1: '['
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1());
+ }
+ match(input,74,FOLLOW_74_in_rule__XClosure__Group_0_0__1__Impl23200); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__XClosure__Group_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11456:1: rule__XClosure__Group_1__0 : rule__XClosure__Group_1__0__Impl ;
+ public final void rule__XClosure__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11460:1: ( rule__XClosure__Group_1__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11461:2: rule__XClosure__Group_1__0__Impl
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group_1__0__Impl_in_rule__XClosure__Group_1__023235);
+ rule__XClosure__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_1__0"
+
+
+ // $ANTLR start "rule__XClosure__Group_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11467:1: rule__XClosure__Group_1__0__Impl : ( ( rule__XClosure__Group_1_0__0 ) ) ;
+ public final void rule__XClosure__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11471:1: ( ( ( rule__XClosure__Group_1_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11472:1: ( ( rule__XClosure__Group_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11472:1: ( ( rule__XClosure__Group_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11473:1: ( rule__XClosure__Group_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getGroup_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11474:1: ( rule__XClosure__Group_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11474:2: rule__XClosure__Group_1_0__0
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group_1_0__0_in_rule__XClosure__Group_1__0__Impl23262);
+ rule__XClosure__Group_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getGroup_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__XClosure__Group_1_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11486:1: rule__XClosure__Group_1_0__0 : rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 ;
+ public final void rule__XClosure__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11490:1: ( rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11491:2: rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group_1_0__0__Impl_in_rule__XClosure__Group_1_0__023294);
+ rule__XClosure__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XClosure__Group_1_0__1_in_rule__XClosure__Group_1_0__023297);
+ rule__XClosure__Group_1_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_1_0__0"
+
+
+ // $ANTLR start "rule__XClosure__Group_1_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11498:1: rule__XClosure__Group_1_0__0__Impl : ( ( rule__XClosure__Group_1_0_0__0 )? ) ;
+ public final void rule__XClosure__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11502:1: ( ( ( rule__XClosure__Group_1_0_0__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11503:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11503:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11504:1: ( rule__XClosure__Group_1_0_0__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getGroup_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11505:1: ( rule__XClosure__Group_1_0_0__0 )?
+ int alt77=2;
+ int LA77_0 = input.LA(1);
+
+ if ( (LA77_0==RULE_ID||LA77_0==29||LA77_0==77) ) {
+ alt77=1;
+ }
+ switch (alt77) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11505:2: rule__XClosure__Group_1_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group_1_0_0__0_in_rule__XClosure__Group_1_0__0__Impl23324);
+ rule__XClosure__Group_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getGroup_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__XClosure__Group_1_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11515:1: rule__XClosure__Group_1_0__1 : rule__XClosure__Group_1_0__1__Impl ;
+ public final void rule__XClosure__Group_1_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11519:1: ( rule__XClosure__Group_1_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11520:2: rule__XClosure__Group_1_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group_1_0__1__Impl_in_rule__XClosure__Group_1_0__123355);
+ rule__XClosure__Group_1_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_1_0__1"
+
+
+ // $ANTLR start "rule__XClosure__Group_1_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11526:1: rule__XClosure__Group_1_0__1__Impl : ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) ;
+ public final void rule__XClosure__Group_1_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11530:1: ( ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11531:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11531:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11532:1: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11533:1: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11533:2: rule__XClosure__ExplicitSyntaxAssignment_1_0_1
+ {
+ pushFollow(FOLLOW_rule__XClosure__ExplicitSyntaxAssignment_1_0_1_in_rule__XClosure__Group_1_0__1__Impl23382);
+ rule__XClosure__ExplicitSyntaxAssignment_1_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_1_0__1__Impl"
+
+
+ // $ANTLR start "rule__XClosure__Group_1_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11547:1: rule__XClosure__Group_1_0_0__0 : rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 ;
+ public final void rule__XClosure__Group_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11551:1: ( rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11552:2: rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group_1_0_0__0__Impl_in_rule__XClosure__Group_1_0_0__023416);
+ rule__XClosure__Group_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XClosure__Group_1_0_0__1_in_rule__XClosure__Group_1_0_0__023419);
+ rule__XClosure__Group_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_1_0_0__0"
+
+
+ // $ANTLR start "rule__XClosure__Group_1_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11559:1: rule__XClosure__Group_1_0_0__0__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) ;
+ public final void rule__XClosure__Group_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11563:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11564:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11564:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11565:1: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11566:1: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11566:2: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
+ {
+ pushFollow(FOLLOW_rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0_in_rule__XClosure__Group_1_0_0__0__Impl23446);
+ rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XClosure__Group_1_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11576:1: rule__XClosure__Group_1_0_0__1 : rule__XClosure__Group_1_0_0__1__Impl ;
+ public final void rule__XClosure__Group_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11580:1: ( rule__XClosure__Group_1_0_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11581:2: rule__XClosure__Group_1_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group_1_0_0__1__Impl_in_rule__XClosure__Group_1_0_0__123476);
+ rule__XClosure__Group_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_1_0_0__1"
+
+
+ // $ANTLR start "rule__XClosure__Group_1_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11587:1: rule__XClosure__Group_1_0_0__1__Impl : ( ( rule__XClosure__Group_1_0_0_1__0 )* ) ;
+ public final void rule__XClosure__Group_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11591:1: ( ( ( rule__XClosure__Group_1_0_0_1__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11592:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11592:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11593:1: ( rule__XClosure__Group_1_0_0_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getGroup_1_0_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11594:1: ( rule__XClosure__Group_1_0_0_1__0 )*
+ loop78:
+ do {
+ int alt78=2;
+ int LA78_0 = input.LA(1);
+
+ if ( (LA78_0==59) ) {
+ alt78=1;
+ }
+
+
+ switch (alt78) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11594:2: rule__XClosure__Group_1_0_0_1__0
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group_1_0_0_1__0_in_rule__XClosure__Group_1_0_0__1__Impl23503);
+ rule__XClosure__Group_1_0_0_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop78;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getGroup_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__XClosure__Group_1_0_0_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11608:1: rule__XClosure__Group_1_0_0_1__0 : rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 ;
+ public final void rule__XClosure__Group_1_0_0_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11612:1: ( rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11613:2: rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group_1_0_0_1__0__Impl_in_rule__XClosure__Group_1_0_0_1__023538);
+ rule__XClosure__Group_1_0_0_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XClosure__Group_1_0_0_1__1_in_rule__XClosure__Group_1_0_0_1__023541);
+ rule__XClosure__Group_1_0_0_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_1_0_0_1__0"
+
+
+ // $ANTLR start "rule__XClosure__Group_1_0_0_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11620:1: rule__XClosure__Group_1_0_0_1__0__Impl : ( ',' ) ;
+ public final void rule__XClosure__Group_1_0_0_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11624:1: ( ( ',' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11625:1: ( ',' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11625:1: ( ',' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11626:1: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0());
+ }
+ match(input,59,FOLLOW_59_in_rule__XClosure__Group_1_0_0_1__0__Impl23569); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_1_0_0_1__0__Impl"
+
+
+ // $ANTLR start "rule__XClosure__Group_1_0_0_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11639:1: rule__XClosure__Group_1_0_0_1__1 : rule__XClosure__Group_1_0_0_1__1__Impl ;
+ public final void rule__XClosure__Group_1_0_0_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11643:1: ( rule__XClosure__Group_1_0_0_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11644:2: rule__XClosure__Group_1_0_0_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group_1_0_0_1__1__Impl_in_rule__XClosure__Group_1_0_0_1__123600);
+ rule__XClosure__Group_1_0_0_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_1_0_0_1__1"
+
+
+ // $ANTLR start "rule__XClosure__Group_1_0_0_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11650:1: rule__XClosure__Group_1_0_0_1__1__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) ;
+ public final void rule__XClosure__Group_1_0_0_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11654:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11655:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11655:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11656:1: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11657:1: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11657:2: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
+ {
+ pushFollow(FOLLOW_rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1_in_rule__XClosure__Group_1_0_0_1__1__Impl23627);
+ rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__Group_1_0_0_1__1__Impl"
+
+
+ // $ANTLR start "rule__XExpressionInClosure__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11671:1: rule__XExpressionInClosure__Group__0 : rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 ;
+ public final void rule__XExpressionInClosure__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11675:1: ( rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11676:2: rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1
+ {
+ pushFollow(FOLLOW_rule__XExpressionInClosure__Group__0__Impl_in_rule__XExpressionInClosure__Group__023661);
+ rule__XExpressionInClosure__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XExpressionInClosure__Group__1_in_rule__XExpressionInClosure__Group__023664);
+ rule__XExpressionInClosure__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XExpressionInClosure__Group__0"
+
+
+ // $ANTLR start "rule__XExpressionInClosure__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11683:1: rule__XExpressionInClosure__Group__0__Impl : ( () ) ;
+ public final void rule__XExpressionInClosure__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11687:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11688:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11688:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11689:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11690:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11692:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XExpressionInClosure__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XExpressionInClosure__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11702:1: rule__XExpressionInClosure__Group__1 : rule__XExpressionInClosure__Group__1__Impl ;
+ public final void rule__XExpressionInClosure__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11706:1: ( rule__XExpressionInClosure__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11707:2: rule__XExpressionInClosure__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XExpressionInClosure__Group__1__Impl_in_rule__XExpressionInClosure__Group__123722);
+ rule__XExpressionInClosure__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XExpressionInClosure__Group__1"
+
+
+ // $ANTLR start "rule__XExpressionInClosure__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11713:1: rule__XExpressionInClosure__Group__1__Impl : ( ( rule__XExpressionInClosure__Group_1__0 )* ) ;
+ public final void rule__XExpressionInClosure__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11717:1: ( ( ( rule__XExpressionInClosure__Group_1__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11718:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11718:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11719:1: ( rule__XExpressionInClosure__Group_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXExpressionInClosureAccess().getGroup_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11720:1: ( rule__XExpressionInClosure__Group_1__0 )*
+ loop79:
+ do {
+ int alt79=2;
+ int LA79_0 = input.LA(1);
+
+ if ( ((LA79_0>=RULE_ID && LA79_0<=RULE_STRING)||LA79_0==25||(LA79_0>=33 && LA79_0<=34)||LA79_0==39||(LA79_0>=41 && LA79_0<=47)||LA79_0==49||(LA79_0>=73 && LA79_0<=74)||(LA79_0>=77 && LA79_0<=78)||LA79_0==80||(LA79_0>=83 && LA79_0<=91)||(LA79_0>=99 && LA79_0<=100)) ) {
+ alt79=1;
+ }
+
+
+ switch (alt79) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11720:2: rule__XExpressionInClosure__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XExpressionInClosure__Group_1__0_in_rule__XExpressionInClosure__Group__1__Impl23749);
+ rule__XExpressionInClosure__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop79;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXExpressionInClosureAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XExpressionInClosure__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XExpressionInClosure__Group_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11734:1: rule__XExpressionInClosure__Group_1__0 : rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 ;
+ public final void rule__XExpressionInClosure__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11738:1: ( rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11739:2: rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1
+ {
+ pushFollow(FOLLOW_rule__XExpressionInClosure__Group_1__0__Impl_in_rule__XExpressionInClosure__Group_1__023784);
+ rule__XExpressionInClosure__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XExpressionInClosure__Group_1__1_in_rule__XExpressionInClosure__Group_1__023787);
+ rule__XExpressionInClosure__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XExpressionInClosure__Group_1__0"
+
+
+ // $ANTLR start "rule__XExpressionInClosure__Group_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11746:1: rule__XExpressionInClosure__Group_1__0__Impl : ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) ;
+ public final void rule__XExpressionInClosure__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11750:1: ( ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11751:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11751:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11752:1: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11753:1: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11753:2: rule__XExpressionInClosure__ExpressionsAssignment_1_0
+ {
+ pushFollow(FOLLOW_rule__XExpressionInClosure__ExpressionsAssignment_1_0_in_rule__XExpressionInClosure__Group_1__0__Impl23814);
+ rule__XExpressionInClosure__ExpressionsAssignment_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XExpressionInClosure__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__XExpressionInClosure__Group_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11763:1: rule__XExpressionInClosure__Group_1__1 : rule__XExpressionInClosure__Group_1__1__Impl ;
+ public final void rule__XExpressionInClosure__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11767:1: ( rule__XExpressionInClosure__Group_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11768:2: rule__XExpressionInClosure__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XExpressionInClosure__Group_1__1__Impl_in_rule__XExpressionInClosure__Group_1__123844);
+ rule__XExpressionInClosure__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XExpressionInClosure__Group_1__1"
+
+
+ // $ANTLR start "rule__XExpressionInClosure__Group_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11774:1: rule__XExpressionInClosure__Group_1__1__Impl : ( ( ';' )? ) ;
+ public final void rule__XExpressionInClosure__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11778:1: ( ( ( ';' )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11779:1: ( ( ';' )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11779:1: ( ( ';' )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11780:1: ( ';' )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11781:1: ( ';' )?
+ int alt80=2;
+ int LA80_0 = input.LA(1);
+
+ if ( (LA80_0==76) ) {
+ alt80=1;
+ }
+ switch (alt80) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11782:2: ';'
+ {
+ match(input,76,FOLLOW_76_in_rule__XExpressionInClosure__Group_1__1__Impl23873); if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XExpressionInClosure__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__XShortClosure__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11797:1: rule__XShortClosure__Group__0 : rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 ;
+ public final void rule__XShortClosure__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11801:1: ( rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11802:2: rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__Group__0__Impl_in_rule__XShortClosure__Group__023910);
+ rule__XShortClosure__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XShortClosure__Group__1_in_rule__XShortClosure__Group__023913);
+ rule__XShortClosure__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group__0"
+
+
+ // $ANTLR start "rule__XShortClosure__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11809:1: rule__XShortClosure__Group__0__Impl : ( ( rule__XShortClosure__Group_0__0 ) ) ;
+ public final void rule__XShortClosure__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11813:1: ( ( ( rule__XShortClosure__Group_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11814:1: ( ( rule__XShortClosure__Group_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11814:1: ( ( rule__XShortClosure__Group_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11815:1: ( rule__XShortClosure__Group_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXShortClosureAccess().getGroup_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11816:1: ( rule__XShortClosure__Group_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11816:2: rule__XShortClosure__Group_0__0
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__Group_0__0_in_rule__XShortClosure__Group__0__Impl23940);
+ rule__XShortClosure__Group_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXShortClosureAccess().getGroup_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XShortClosure__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11826:1: rule__XShortClosure__Group__1 : rule__XShortClosure__Group__1__Impl ;
+ public final void rule__XShortClosure__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11830:1: ( rule__XShortClosure__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11831:2: rule__XShortClosure__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__Group__1__Impl_in_rule__XShortClosure__Group__123970);
+ rule__XShortClosure__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group__1"
+
+
+ // $ANTLR start "rule__XShortClosure__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11837:1: rule__XShortClosure__Group__1__Impl : ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) ;
+ public final void rule__XShortClosure__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11841:1: ( ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11842:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11842:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11843:1: ( rule__XShortClosure__ExpressionAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11844:1: ( rule__XShortClosure__ExpressionAssignment_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11844:2: rule__XShortClosure__ExpressionAssignment_1
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__ExpressionAssignment_1_in_rule__XShortClosure__Group__1__Impl23997);
+ rule__XShortClosure__ExpressionAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XShortClosure__Group_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11858:1: rule__XShortClosure__Group_0__0 : rule__XShortClosure__Group_0__0__Impl ;
+ public final void rule__XShortClosure__Group_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11862:1: ( rule__XShortClosure__Group_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11863:2: rule__XShortClosure__Group_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__Group_0__0__Impl_in_rule__XShortClosure__Group_0__024031);
+ rule__XShortClosure__Group_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group_0__0"
+
+
+ // $ANTLR start "rule__XShortClosure__Group_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11869:1: rule__XShortClosure__Group_0__0__Impl : ( ( rule__XShortClosure__Group_0_0__0 ) ) ;
+ public final void rule__XShortClosure__Group_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11873:1: ( ( ( rule__XShortClosure__Group_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11874:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11874:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11875:1: ( rule__XShortClosure__Group_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXShortClosureAccess().getGroup_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11876:1: ( rule__XShortClosure__Group_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11876:2: rule__XShortClosure__Group_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__Group_0_0__0_in_rule__XShortClosure__Group_0__0__Impl24058);
+ rule__XShortClosure__Group_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXShortClosureAccess().getGroup_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group_0__0__Impl"
+
+
+ // $ANTLR start "rule__XShortClosure__Group_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11888:1: rule__XShortClosure__Group_0_0__0 : rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 ;
+ public final void rule__XShortClosure__Group_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11892:1: ( rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11893:2: rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__Group_0_0__0__Impl_in_rule__XShortClosure__Group_0_0__024090);
+ rule__XShortClosure__Group_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XShortClosure__Group_0_0__1_in_rule__XShortClosure__Group_0_0__024093);
+ rule__XShortClosure__Group_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group_0_0__0"
+
+
+ // $ANTLR start "rule__XShortClosure__Group_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11900:1: rule__XShortClosure__Group_0_0__0__Impl : ( () ) ;
+ public final void rule__XShortClosure__Group_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11904:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11905:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11905:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11906:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11907:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11909:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XShortClosure__Group_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11919:1: rule__XShortClosure__Group_0_0__1 : rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 ;
+ public final void rule__XShortClosure__Group_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11923:1: ( rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11924:2: rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__Group_0_0__1__Impl_in_rule__XShortClosure__Group_0_0__124151);
+ rule__XShortClosure__Group_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XShortClosure__Group_0_0__2_in_rule__XShortClosure__Group_0_0__124154);
+ rule__XShortClosure__Group_0_0__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group_0_0__1"
+
+
+ // $ANTLR start "rule__XShortClosure__Group_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11931:1: rule__XShortClosure__Group_0_0__1__Impl : ( ( rule__XShortClosure__Group_0_0_1__0 )? ) ;
+ public final void rule__XShortClosure__Group_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11935:1: ( ( ( rule__XShortClosure__Group_0_0_1__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11936:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11936:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11937:1: ( rule__XShortClosure__Group_0_0_1__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11938:1: ( rule__XShortClosure__Group_0_0_1__0 )?
+ int alt81=2;
+ int LA81_0 = input.LA(1);
+
+ if ( (LA81_0==RULE_ID||LA81_0==29||LA81_0==77) ) {
+ alt81=1;
+ }
+ switch (alt81) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11938:2: rule__XShortClosure__Group_0_0_1__0
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__Group_0_0_1__0_in_rule__XShortClosure__Group_0_0__1__Impl24181);
+ rule__XShortClosure__Group_0_0_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXShortClosureAccess().getGroup_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__XShortClosure__Group_0_0__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11948:1: rule__XShortClosure__Group_0_0__2 : rule__XShortClosure__Group_0_0__2__Impl ;
+ public final void rule__XShortClosure__Group_0_0__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11952:1: ( rule__XShortClosure__Group_0_0__2__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11953:2: rule__XShortClosure__Group_0_0__2__Impl
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__Group_0_0__2__Impl_in_rule__XShortClosure__Group_0_0__224212);
+ rule__XShortClosure__Group_0_0__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group_0_0__2"
+
+
+ // $ANTLR start "rule__XShortClosure__Group_0_0__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11959:1: rule__XShortClosure__Group_0_0__2__Impl : ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) ;
+ public final void rule__XShortClosure__Group_0_0__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11963:1: ( ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11964:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11964:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11965:1: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11966:1: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11966:2: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2_in_rule__XShortClosure__Group_0_0__2__Impl24239);
+ rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group_0_0__2__Impl"
+
+
+ // $ANTLR start "rule__XShortClosure__Group_0_0_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11982:1: rule__XShortClosure__Group_0_0_1__0 : rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 ;
+ public final void rule__XShortClosure__Group_0_0_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11986:1: ( rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11987:2: rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__Group_0_0_1__0__Impl_in_rule__XShortClosure__Group_0_0_1__024275);
+ rule__XShortClosure__Group_0_0_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XShortClosure__Group_0_0_1__1_in_rule__XShortClosure__Group_0_0_1__024278);
+ rule__XShortClosure__Group_0_0_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group_0_0_1__0"
+
+
+ // $ANTLR start "rule__XShortClosure__Group_0_0_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11994:1: rule__XShortClosure__Group_0_0_1__0__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) ;
+ public final void rule__XShortClosure__Group_0_0_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11998:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11999:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11999:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12000:1: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12001:1: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12001:2: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0_in_rule__XShortClosure__Group_0_0_1__0__Impl24305);
+ rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group_0_0_1__0__Impl"
+
+
+ // $ANTLR start "rule__XShortClosure__Group_0_0_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12011:1: rule__XShortClosure__Group_0_0_1__1 : rule__XShortClosure__Group_0_0_1__1__Impl ;
+ public final void rule__XShortClosure__Group_0_0_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12015:1: ( rule__XShortClosure__Group_0_0_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12016:2: rule__XShortClosure__Group_0_0_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__Group_0_0_1__1__Impl_in_rule__XShortClosure__Group_0_0_1__124335);
+ rule__XShortClosure__Group_0_0_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group_0_0_1__1"
+
+
+ // $ANTLR start "rule__XShortClosure__Group_0_0_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12022:1: rule__XShortClosure__Group_0_0_1__1__Impl : ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) ;
+ public final void rule__XShortClosure__Group_0_0_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12026:1: ( ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12027:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12027:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12028:1: ( rule__XShortClosure__Group_0_0_1_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12029:1: ( rule__XShortClosure__Group_0_0_1_1__0 )*
+ loop82:
+ do {
+ int alt82=2;
+ int LA82_0 = input.LA(1);
+
+ if ( (LA82_0==59) ) {
+ alt82=1;
+ }
+
+
+ switch (alt82) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12029:2: rule__XShortClosure__Group_0_0_1_1__0
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__Group_0_0_1_1__0_in_rule__XShortClosure__Group_0_0_1__1__Impl24362);
+ rule__XShortClosure__Group_0_0_1_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop82;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group_0_0_1__1__Impl"
+
+
+ // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12043:1: rule__XShortClosure__Group_0_0_1_1__0 : rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 ;
+ public final void rule__XShortClosure__Group_0_0_1_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12047:1: ( rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12048:2: rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__Group_0_0_1_1__0__Impl_in_rule__XShortClosure__Group_0_0_1_1__024397);
+ rule__XShortClosure__Group_0_0_1_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XShortClosure__Group_0_0_1_1__1_in_rule__XShortClosure__Group_0_0_1_1__024400);
+ rule__XShortClosure__Group_0_0_1_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group_0_0_1_1__0"
+
+
+ // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12055:1: rule__XShortClosure__Group_0_0_1_1__0__Impl : ( ',' ) ;
+ public final void rule__XShortClosure__Group_0_0_1_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12059:1: ( ( ',' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12060:1: ( ',' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12060:1: ( ',' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12061:1: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0());
+ }
+ match(input,59,FOLLOW_59_in_rule__XShortClosure__Group_0_0_1_1__0__Impl24428); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group_0_0_1_1__0__Impl"
+
+
+ // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12074:1: rule__XShortClosure__Group_0_0_1_1__1 : rule__XShortClosure__Group_0_0_1_1__1__Impl ;
+ public final void rule__XShortClosure__Group_0_0_1_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12078:1: ( rule__XShortClosure__Group_0_0_1_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12079:2: rule__XShortClosure__Group_0_0_1_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__Group_0_0_1_1__1__Impl_in_rule__XShortClosure__Group_0_0_1_1__124459);
+ rule__XShortClosure__Group_0_0_1_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group_0_0_1_1__1"
+
+
+ // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12085:1: rule__XShortClosure__Group_0_0_1_1__1__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) ;
+ public final void rule__XShortClosure__Group_0_0_1_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12089:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12090:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12090:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12091:1: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12092:1: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12092:2: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
+ {
+ pushFollow(FOLLOW_rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1_in_rule__XShortClosure__Group_0_0_1_1__1__Impl24486);
+ rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__Group_0_0_1_1__1__Impl"
+
+
+ // $ANTLR start "rule__XParenthesizedExpression__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12106:1: rule__XParenthesizedExpression__Group__0 : rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 ;
+ public final void rule__XParenthesizedExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12110:1: ( rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12111:2: rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1
+ {
+ pushFollow(FOLLOW_rule__XParenthesizedExpression__Group__0__Impl_in_rule__XParenthesizedExpression__Group__024520);
+ rule__XParenthesizedExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XParenthesizedExpression__Group__1_in_rule__XParenthesizedExpression__Group__024523);
+ rule__XParenthesizedExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XParenthesizedExpression__Group__0"
+
+
+ // $ANTLR start "rule__XParenthesizedExpression__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12118:1: rule__XParenthesizedExpression__Group__0__Impl : ( '(' ) ;
+ public final void rule__XParenthesizedExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12122:1: ( ( '(' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12123:1: ( '(' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12123:1: ( '(' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12124:1: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
+ }
+ match(input,77,FOLLOW_77_in_rule__XParenthesizedExpression__Group__0__Impl24551); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XParenthesizedExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XParenthesizedExpression__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12137:1: rule__XParenthesizedExpression__Group__1 : rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 ;
+ public final void rule__XParenthesizedExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12141:1: ( rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12142:2: rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2
+ {
+ pushFollow(FOLLOW_rule__XParenthesizedExpression__Group__1__Impl_in_rule__XParenthesizedExpression__Group__124582);
+ rule__XParenthesizedExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XParenthesizedExpression__Group__2_in_rule__XParenthesizedExpression__Group__124585);
+ rule__XParenthesizedExpression__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XParenthesizedExpression__Group__1"
+
+
+ // $ANTLR start "rule__XParenthesizedExpression__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12149:1: rule__XParenthesizedExpression__Group__1__Impl : ( ruleXExpression ) ;
+ public final void rule__XParenthesizedExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12153:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12154:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12154:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12155:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XParenthesizedExpression__Group__1__Impl24612);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XParenthesizedExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XParenthesizedExpression__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12166:1: rule__XParenthesizedExpression__Group__2 : rule__XParenthesizedExpression__Group__2__Impl ;
+ public final void rule__XParenthesizedExpression__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12170:1: ( rule__XParenthesizedExpression__Group__2__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12171:2: rule__XParenthesizedExpression__Group__2__Impl
+ {
+ pushFollow(FOLLOW_rule__XParenthesizedExpression__Group__2__Impl_in_rule__XParenthesizedExpression__Group__224641);
+ rule__XParenthesizedExpression__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XParenthesizedExpression__Group__2"
+
+
+ // $ANTLR start "rule__XParenthesizedExpression__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12177:1: rule__XParenthesizedExpression__Group__2__Impl : ( ')' ) ;
+ public final void rule__XParenthesizedExpression__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12181:1: ( ( ')' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12182:1: ( ')' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12182:1: ( ')' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12183:1: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2());
+ }
+ match(input,72,FOLLOW_72_in_rule__XParenthesizedExpression__Group__2__Impl24669); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XParenthesizedExpression__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XIfExpression__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12202:1: rule__XIfExpression__Group__0 : rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 ;
+ public final void rule__XIfExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12206:1: ( rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12207:2: rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1
+ {
+ pushFollow(FOLLOW_rule__XIfExpression__Group__0__Impl_in_rule__XIfExpression__Group__024706);
+ rule__XIfExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XIfExpression__Group__1_in_rule__XIfExpression__Group__024709);
+ rule__XIfExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__Group__0"
+
+
+ // $ANTLR start "rule__XIfExpression__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12214:1: rule__XIfExpression__Group__0__Impl : ( () ) ;
+ public final void rule__XIfExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12218:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12219:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12219:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12220:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12221:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12223:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XIfExpression__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12233:1: rule__XIfExpression__Group__1 : rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 ;
+ public final void rule__XIfExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12237:1: ( rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12238:2: rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2
+ {
+ pushFollow(FOLLOW_rule__XIfExpression__Group__1__Impl_in_rule__XIfExpression__Group__124767);
+ rule__XIfExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XIfExpression__Group__2_in_rule__XIfExpression__Group__124770);
+ rule__XIfExpression__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__Group__1"
+
+
+ // $ANTLR start "rule__XIfExpression__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12245:1: rule__XIfExpression__Group__1__Impl : ( 'if' ) ;
+ public final void rule__XIfExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12249:1: ( ( 'if' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12250:1: ( 'if' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12250:1: ( 'if' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12251:1: 'if'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXIfExpressionAccess().getIfKeyword_1());
+ }
+ match(input,78,FOLLOW_78_in_rule__XIfExpression__Group__1__Impl24798); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXIfExpressionAccess().getIfKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XIfExpression__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12264:1: rule__XIfExpression__Group__2 : rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 ;
+ public final void rule__XIfExpression__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12268:1: ( rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12269:2: rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3
+ {
+ pushFollow(FOLLOW_rule__XIfExpression__Group__2__Impl_in_rule__XIfExpression__Group__224829);
+ rule__XIfExpression__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XIfExpression__Group__3_in_rule__XIfExpression__Group__224832);
+ rule__XIfExpression__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__Group__2"
+
+
+ // $ANTLR start "rule__XIfExpression__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12276:1: rule__XIfExpression__Group__2__Impl : ( '(' ) ;
+ public final void rule__XIfExpression__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12280:1: ( ( '(' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12281:1: ( '(' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12281:1: ( '(' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12282:1: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2());
+ }
+ match(input,77,FOLLOW_77_in_rule__XIfExpression__Group__2__Impl24860); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XIfExpression__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12295:1: rule__XIfExpression__Group__3 : rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 ;
+ public final void rule__XIfExpression__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12299:1: ( rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12300:2: rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4
+ {
+ pushFollow(FOLLOW_rule__XIfExpression__Group__3__Impl_in_rule__XIfExpression__Group__324891);
+ rule__XIfExpression__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XIfExpression__Group__4_in_rule__XIfExpression__Group__324894);
+ rule__XIfExpression__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__Group__3"
+
+
+ // $ANTLR start "rule__XIfExpression__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12307:1: rule__XIfExpression__Group__3__Impl : ( ( rule__XIfExpression__IfAssignment_3 ) ) ;
+ public final void rule__XIfExpression__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12311:1: ( ( ( rule__XIfExpression__IfAssignment_3 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12312:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12312:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12313:1: ( rule__XIfExpression__IfAssignment_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXIfExpressionAccess().getIfAssignment_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12314:1: ( rule__XIfExpression__IfAssignment_3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12314:2: rule__XIfExpression__IfAssignment_3
+ {
+ pushFollow(FOLLOW_rule__XIfExpression__IfAssignment_3_in_rule__XIfExpression__Group__3__Impl24921);
+ rule__XIfExpression__IfAssignment_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXIfExpressionAccess().getIfAssignment_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__Group__3__Impl"
+
+
+ // $ANTLR start "rule__XIfExpression__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12324:1: rule__XIfExpression__Group__4 : rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 ;
+ public final void rule__XIfExpression__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12328:1: ( rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12329:2: rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5
+ {
+ pushFollow(FOLLOW_rule__XIfExpression__Group__4__Impl_in_rule__XIfExpression__Group__424951);
+ rule__XIfExpression__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XIfExpression__Group__5_in_rule__XIfExpression__Group__424954);
+ rule__XIfExpression__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__Group__4"
+
+
+ // $ANTLR start "rule__XIfExpression__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12336:1: rule__XIfExpression__Group__4__Impl : ( ')' ) ;
+ public final void rule__XIfExpression__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12340:1: ( ( ')' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12341:1: ( ')' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12341:1: ( ')' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12342:1: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4());
+ }
+ match(input,72,FOLLOW_72_in_rule__XIfExpression__Group__4__Impl24982); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__Group__4__Impl"
+
+
+ // $ANTLR start "rule__XIfExpression__Group__5"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12355:1: rule__XIfExpression__Group__5 : rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 ;
+ public final void rule__XIfExpression__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12359:1: ( rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12360:2: rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6
+ {
+ pushFollow(FOLLOW_rule__XIfExpression__Group__5__Impl_in_rule__XIfExpression__Group__525013);
+ rule__XIfExpression__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XIfExpression__Group__6_in_rule__XIfExpression__Group__525016);
+ rule__XIfExpression__Group__6();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__Group__5"
+
+
+ // $ANTLR start "rule__XIfExpression__Group__5__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12367:1: rule__XIfExpression__Group__5__Impl : ( ( rule__XIfExpression__ThenAssignment_5 ) ) ;
+ public final void rule__XIfExpression__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12371:1: ( ( ( rule__XIfExpression__ThenAssignment_5 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12372:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12372:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12373:1: ( rule__XIfExpression__ThenAssignment_5 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXIfExpressionAccess().getThenAssignment_5());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12374:1: ( rule__XIfExpression__ThenAssignment_5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12374:2: rule__XIfExpression__ThenAssignment_5
+ {
+ pushFollow(FOLLOW_rule__XIfExpression__ThenAssignment_5_in_rule__XIfExpression__Group__5__Impl25043);
+ rule__XIfExpression__ThenAssignment_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXIfExpressionAccess().getThenAssignment_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__Group__5__Impl"
+
+
+ // $ANTLR start "rule__XIfExpression__Group__6"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12384:1: rule__XIfExpression__Group__6 : rule__XIfExpression__Group__6__Impl ;
+ public final void rule__XIfExpression__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12388:1: ( rule__XIfExpression__Group__6__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12389:2: rule__XIfExpression__Group__6__Impl
+ {
+ pushFollow(FOLLOW_rule__XIfExpression__Group__6__Impl_in_rule__XIfExpression__Group__625073);
+ rule__XIfExpression__Group__6__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__Group__6"
+
+
+ // $ANTLR start "rule__XIfExpression__Group__6__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12395:1: rule__XIfExpression__Group__6__Impl : ( ( rule__XIfExpression__Group_6__0 )? ) ;
+ public final void rule__XIfExpression__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12399:1: ( ( ( rule__XIfExpression__Group_6__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12400:1: ( ( rule__XIfExpression__Group_6__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12400:1: ( ( rule__XIfExpression__Group_6__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12401:1: ( rule__XIfExpression__Group_6__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXIfExpressionAccess().getGroup_6());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12402:1: ( rule__XIfExpression__Group_6__0 )?
+ int alt83=2;
+ int LA83_0 = input.LA(1);
+
+ if ( (LA83_0==79) ) {
+ int LA83_1 = input.LA(2);
+
+ if ( (synpred119_InternalEmfParsleyDsl()) ) {
+ alt83=1;
+ }
+ }
+ switch (alt83) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12402:2: rule__XIfExpression__Group_6__0
+ {
+ pushFollow(FOLLOW_rule__XIfExpression__Group_6__0_in_rule__XIfExpression__Group__6__Impl25100);
+ rule__XIfExpression__Group_6__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXIfExpressionAccess().getGroup_6());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__Group__6__Impl"
+
+
+ // $ANTLR start "rule__XIfExpression__Group_6__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12426:1: rule__XIfExpression__Group_6__0 : rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 ;
+ public final void rule__XIfExpression__Group_6__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12430:1: ( rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12431:2: rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1
+ {
+ pushFollow(FOLLOW_rule__XIfExpression__Group_6__0__Impl_in_rule__XIfExpression__Group_6__025145);
+ rule__XIfExpression__Group_6__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XIfExpression__Group_6__1_in_rule__XIfExpression__Group_6__025148);
+ rule__XIfExpression__Group_6__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__Group_6__0"
+
+
+ // $ANTLR start "rule__XIfExpression__Group_6__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12438:1: rule__XIfExpression__Group_6__0__Impl : ( ( 'else' ) ) ;
+ public final void rule__XIfExpression__Group_6__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12442:1: ( ( ( 'else' ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12443:1: ( ( 'else' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12443:1: ( ( 'else' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12444:1: ( 'else' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12445:1: ( 'else' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12446:2: 'else'
+ {
+ match(input,79,FOLLOW_79_in_rule__XIfExpression__Group_6__0__Impl25177); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__Group_6__0__Impl"
+
+
+ // $ANTLR start "rule__XIfExpression__Group_6__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12457:1: rule__XIfExpression__Group_6__1 : rule__XIfExpression__Group_6__1__Impl ;
+ public final void rule__XIfExpression__Group_6__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12461:1: ( rule__XIfExpression__Group_6__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12462:2: rule__XIfExpression__Group_6__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XIfExpression__Group_6__1__Impl_in_rule__XIfExpression__Group_6__125209);
+ rule__XIfExpression__Group_6__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__Group_6__1"
+
+
+ // $ANTLR start "rule__XIfExpression__Group_6__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12468:1: rule__XIfExpression__Group_6__1__Impl : ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) ;
+ public final void rule__XIfExpression__Group_6__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12472:1: ( ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12473:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12473:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12474:1: ( rule__XIfExpression__ElseAssignment_6_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12475:1: ( rule__XIfExpression__ElseAssignment_6_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12475:2: rule__XIfExpression__ElseAssignment_6_1
+ {
+ pushFollow(FOLLOW_rule__XIfExpression__ElseAssignment_6_1_in_rule__XIfExpression__Group_6__1__Impl25236);
+ rule__XIfExpression__ElseAssignment_6_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__Group_6__1__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12489:1: rule__XSwitchExpression__Group__0 : rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 ;
+ public final void rule__XSwitchExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12493:1: ( rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12494:2: rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group__0__Impl_in_rule__XSwitchExpression__Group__025270);
+ rule__XSwitchExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group__1_in_rule__XSwitchExpression__Group__025273);
+ rule__XSwitchExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group__0"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12501:1: rule__XSwitchExpression__Group__0__Impl : ( () ) ;
+ public final void rule__XSwitchExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12505:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12506:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12506:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12507:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12508:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12510:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12520:1: rule__XSwitchExpression__Group__1 : rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 ;
+ public final void rule__XSwitchExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12524:1: ( rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12525:2: rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group__1__Impl_in_rule__XSwitchExpression__Group__125331);
+ rule__XSwitchExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group__2_in_rule__XSwitchExpression__Group__125334);
+ rule__XSwitchExpression__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group__1"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12532:1: rule__XSwitchExpression__Group__1__Impl : ( 'switch' ) ;
+ public final void rule__XSwitchExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12536:1: ( ( 'switch' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12537:1: ( 'switch' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12537:1: ( 'switch' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12538:1: 'switch'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1());
+ }
+ match(input,80,FOLLOW_80_in_rule__XSwitchExpression__Group__1__Impl25362); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12551:1: rule__XSwitchExpression__Group__2 : rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 ;
+ public final void rule__XSwitchExpression__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12555:1: ( rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12556:2: rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group__2__Impl_in_rule__XSwitchExpression__Group__225393);
+ rule__XSwitchExpression__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group__3_in_rule__XSwitchExpression__Group__225396);
+ rule__XSwitchExpression__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group__2"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12563:1: rule__XSwitchExpression__Group__2__Impl : ( ( rule__XSwitchExpression__Alternatives_2 ) ) ;
+ public final void rule__XSwitchExpression__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12567:1: ( ( ( rule__XSwitchExpression__Alternatives_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12568:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12568:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12569:1: ( rule__XSwitchExpression__Alternatives_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12570:1: ( rule__XSwitchExpression__Alternatives_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12570:2: rule__XSwitchExpression__Alternatives_2
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Alternatives_2_in_rule__XSwitchExpression__Group__2__Impl25423);
+ rule__XSwitchExpression__Alternatives_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12580:1: rule__XSwitchExpression__Group__3 : rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 ;
+ public final void rule__XSwitchExpression__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12584:1: ( rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12585:2: rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group__3__Impl_in_rule__XSwitchExpression__Group__325453);
+ rule__XSwitchExpression__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group__4_in_rule__XSwitchExpression__Group__325456);
+ rule__XSwitchExpression__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group__3"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12592:1: rule__XSwitchExpression__Group__3__Impl : ( '{' ) ;
+ public final void rule__XSwitchExpression__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12596:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12597:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12597:1: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12598:1: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3());
+ }
+ match(input,49,FOLLOW_49_in_rule__XSwitchExpression__Group__3__Impl25484); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group__3__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12611:1: rule__XSwitchExpression__Group__4 : rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 ;
+ public final void rule__XSwitchExpression__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12615:1: ( rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12616:2: rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group__4__Impl_in_rule__XSwitchExpression__Group__425515);
+ rule__XSwitchExpression__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group__5_in_rule__XSwitchExpression__Group__425518);
+ rule__XSwitchExpression__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group__4"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12623:1: rule__XSwitchExpression__Group__4__Impl : ( ( ( rule__XSwitchExpression__CasesAssignment_4 ) ) ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) ) ;
+ public final void rule__XSwitchExpression__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12627:1: ( ( ( ( rule__XSwitchExpression__CasesAssignment_4 ) ) ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12628:1: ( ( ( rule__XSwitchExpression__CasesAssignment_4 ) ) ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12628:1: ( ( ( rule__XSwitchExpression__CasesAssignment_4 ) ) ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12629:1: ( ( rule__XSwitchExpression__CasesAssignment_4 ) ) ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12629:1: ( ( rule__XSwitchExpression__CasesAssignment_4 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12630:1: ( rule__XSwitchExpression__CasesAssignment_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12631:1: ( rule__XSwitchExpression__CasesAssignment_4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12631:2: rule__XSwitchExpression__CasesAssignment_4
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__CasesAssignment_4_in_rule__XSwitchExpression__Group__4__Impl25547);
+ rule__XSwitchExpression__CasesAssignment_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4());
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12634:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12635:1: ( rule__XSwitchExpression__CasesAssignment_4 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12636:1: ( rule__XSwitchExpression__CasesAssignment_4 )*
+ loop84:
+ do {
+ int alt84=2;
+ int LA84_0 = input.LA(1);
+
+ if ( (LA84_0==RULE_ID||LA84_0==29||LA84_0==56||LA84_0==77||LA84_0==82) ) {
+ alt84=1;
+ }
+
+
+ switch (alt84) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12636:2: rule__XSwitchExpression__CasesAssignment_4
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__CasesAssignment_4_in_rule__XSwitchExpression__Group__4__Impl25559);
+ rule__XSwitchExpression__CasesAssignment_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop84;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group__4__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group__5"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12647:1: rule__XSwitchExpression__Group__5 : rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 ;
+ public final void rule__XSwitchExpression__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12651:1: ( rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12652:2: rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group__5__Impl_in_rule__XSwitchExpression__Group__525592);
+ rule__XSwitchExpression__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group__6_in_rule__XSwitchExpression__Group__525595);
+ rule__XSwitchExpression__Group__6();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group__5"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group__5__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12659:1: rule__XSwitchExpression__Group__5__Impl : ( ( rule__XSwitchExpression__Group_5__0 )? ) ;
+ public final void rule__XSwitchExpression__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12663:1: ( ( ( rule__XSwitchExpression__Group_5__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12664:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12664:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12665:1: ( rule__XSwitchExpression__Group_5__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getGroup_5());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12666:1: ( rule__XSwitchExpression__Group_5__0 )?
+ int alt85=2;
+ int LA85_0 = input.LA(1);
+
+ if ( (LA85_0==81) ) {
+ alt85=1;
+ }
+ switch (alt85) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12666:2: rule__XSwitchExpression__Group_5__0
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_5__0_in_rule__XSwitchExpression__Group__5__Impl25622);
+ rule__XSwitchExpression__Group_5__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getGroup_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group__5__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group__6"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12676:1: rule__XSwitchExpression__Group__6 : rule__XSwitchExpression__Group__6__Impl ;
+ public final void rule__XSwitchExpression__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12680:1: ( rule__XSwitchExpression__Group__6__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12681:2: rule__XSwitchExpression__Group__6__Impl
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group__6__Impl_in_rule__XSwitchExpression__Group__625653);
+ rule__XSwitchExpression__Group__6__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group__6"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group__6__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12687:1: rule__XSwitchExpression__Group__6__Impl : ( '}' ) ;
+ public final void rule__XSwitchExpression__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12691:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12692:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12692:1: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12693:1: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6());
+ }
+ match(input,50,FOLLOW_50_in_rule__XSwitchExpression__Group__6__Impl25681); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group__6__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12720:1: rule__XSwitchExpression__Group_2_0__0 : rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 ;
+ public final void rule__XSwitchExpression__Group_2_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12724:1: ( rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12725:2: rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_0__0__Impl_in_rule__XSwitchExpression__Group_2_0__025726);
+ rule__XSwitchExpression__Group_2_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_0__1_in_rule__XSwitchExpression__Group_2_0__025729);
+ rule__XSwitchExpression__Group_2_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_0__0"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12732:1: rule__XSwitchExpression__Group_2_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0__0 )? ) ;
+ public final void rule__XSwitchExpression__Group_2_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12736:1: ( ( ( rule__XSwitchExpression__Group_2_0_0__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12737:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12737:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12738:1: ( rule__XSwitchExpression__Group_2_0_0__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12739:1: ( rule__XSwitchExpression__Group_2_0_0__0 )?
+ int alt86=2;
+ int LA86_0 = input.LA(1);
+
+ if ( (LA86_0==RULE_ID) ) {
+ int LA86_1 = input.LA(2);
+
+ if ( (LA86_1==56) ) {
+ alt86=1;
+ }
+ }
+ switch (alt86) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12739:2: rule__XSwitchExpression__Group_2_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_0_0__0_in_rule__XSwitchExpression__Group_2_0__0__Impl25756);
+ rule__XSwitchExpression__Group_2_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_0__0__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12749:1: rule__XSwitchExpression__Group_2_0__1 : rule__XSwitchExpression__Group_2_0__1__Impl ;
+ public final void rule__XSwitchExpression__Group_2_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12753:1: ( rule__XSwitchExpression__Group_2_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12754:2: rule__XSwitchExpression__Group_2_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_0__1__Impl_in_rule__XSwitchExpression__Group_2_0__125787);
+ rule__XSwitchExpression__Group_2_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_0__1"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12760:1: rule__XSwitchExpression__Group_2_0__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) ;
+ public final void rule__XSwitchExpression__Group_2_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12764:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12765:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12765:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12766:1: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12767:1: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12767:2: rule__XSwitchExpression__SwitchAssignment_2_0_1
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__SwitchAssignment_2_0_1_in_rule__XSwitchExpression__Group_2_0__1__Impl25814);
+ rule__XSwitchExpression__SwitchAssignment_2_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_0__1__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12781:1: rule__XSwitchExpression__Group_2_0_0__0 : rule__XSwitchExpression__Group_2_0_0__0__Impl ;
+ public final void rule__XSwitchExpression__Group_2_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12785:1: ( rule__XSwitchExpression__Group_2_0_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12786:2: rule__XSwitchExpression__Group_2_0_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_0_0__0__Impl_in_rule__XSwitchExpression__Group_2_0_0__025848);
+ rule__XSwitchExpression__Group_2_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_0_0__0"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12792:1: rule__XSwitchExpression__Group_2_0_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) ;
+ public final void rule__XSwitchExpression__Group_2_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12796:1: ( ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12797:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12797:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12798:1: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12799:1: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12799:2: rule__XSwitchExpression__Group_2_0_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_0_0_0__0_in_rule__XSwitchExpression__Group_2_0_0__0__Impl25875);
+ rule__XSwitchExpression__Group_2_0_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12811:1: rule__XSwitchExpression__Group_2_0_0_0__0 : rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 ;
+ public final void rule__XSwitchExpression__Group_2_0_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12815:1: ( rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12816:2: rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_0_0_0__0__Impl_in_rule__XSwitchExpression__Group_2_0_0_0__025907);
+ rule__XSwitchExpression__Group_2_0_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_0_0_0__1_in_rule__XSwitchExpression__Group_2_0_0_0__025910);
+ rule__XSwitchExpression__Group_2_0_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_0_0_0__0"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12823:1: rule__XSwitchExpression__Group_2_0_0_0__0__Impl : ( ( rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_0 ) ) ;
+ public final void rule__XSwitchExpression__Group_2_0_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12827:1: ( ( ( rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12828:1: ( ( rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12828:1: ( ( rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12829:1: ( rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameAssignment_2_0_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12830:1: ( rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12830:2: rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_0
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_0_in_rule__XSwitchExpression__Group_2_0_0_0__0__Impl25937);
+ rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameAssignment_2_0_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_0_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12840:1: rule__XSwitchExpression__Group_2_0_0_0__1 : rule__XSwitchExpression__Group_2_0_0_0__1__Impl ;
+ public final void rule__XSwitchExpression__Group_2_0_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12844:1: ( rule__XSwitchExpression__Group_2_0_0_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12845:2: rule__XSwitchExpression__Group_2_0_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_0_0_0__1__Impl_in_rule__XSwitchExpression__Group_2_0_0_0__125967);
+ rule__XSwitchExpression__Group_2_0_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_0_0_0__1"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12851:1: rule__XSwitchExpression__Group_2_0_0_0__1__Impl : ( ':' ) ;
+ public final void rule__XSwitchExpression__Group_2_0_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12855:1: ( ( ':' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12856:1: ( ':' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12856:1: ( ':' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12857:1: ':'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_1());
+ }
+ match(input,56,FOLLOW_56_in_rule__XSwitchExpression__Group_2_0_0_0__1__Impl25995); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_0_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12874:1: rule__XSwitchExpression__Group_2_1__0 : rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 ;
+ public final void rule__XSwitchExpression__Group_2_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12878:1: ( rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12879:2: rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_1__0__Impl_in_rule__XSwitchExpression__Group_2_1__026030);
+ rule__XSwitchExpression__Group_2_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_1__1_in_rule__XSwitchExpression__Group_2_1__026033);
+ rule__XSwitchExpression__Group_2_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_1__0"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12886:1: rule__XSwitchExpression__Group_2_1__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0__0 ) ) ;
+ public final void rule__XSwitchExpression__Group_2_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12890:1: ( ( ( rule__XSwitchExpression__Group_2_1_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12891:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12891:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12892:1: ( rule__XSwitchExpression__Group_2_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12893:1: ( rule__XSwitchExpression__Group_2_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12893:2: rule__XSwitchExpression__Group_2_1_0__0
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_1_0__0_in_rule__XSwitchExpression__Group_2_1__0__Impl26060);
+ rule__XSwitchExpression__Group_2_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_1__0__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12903:1: rule__XSwitchExpression__Group_2_1__1 : rule__XSwitchExpression__Group_2_1__1__Impl rule__XSwitchExpression__Group_2_1__2 ;
+ public final void rule__XSwitchExpression__Group_2_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12907:1: ( rule__XSwitchExpression__Group_2_1__1__Impl rule__XSwitchExpression__Group_2_1__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12908:2: rule__XSwitchExpression__Group_2_1__1__Impl rule__XSwitchExpression__Group_2_1__2
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_1__1__Impl_in_rule__XSwitchExpression__Group_2_1__126090);
+ rule__XSwitchExpression__Group_2_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_1__2_in_rule__XSwitchExpression__Group_2_1__126093);
+ rule__XSwitchExpression__Group_2_1__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_1__1"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12915:1: rule__XSwitchExpression__Group_2_1__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) ;
+ public final void rule__XSwitchExpression__Group_2_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12919:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12920:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12920:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12921:1: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12922:1: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12922:2: rule__XSwitchExpression__SwitchAssignment_2_1_1
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__SwitchAssignment_2_1_1_in_rule__XSwitchExpression__Group_2_1__1__Impl26120);
+ rule__XSwitchExpression__SwitchAssignment_2_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_1__1__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_1__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12932:1: rule__XSwitchExpression__Group_2_1__2 : rule__XSwitchExpression__Group_2_1__2__Impl ;
+ public final void rule__XSwitchExpression__Group_2_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12936:1: ( rule__XSwitchExpression__Group_2_1__2__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12937:2: rule__XSwitchExpression__Group_2_1__2__Impl
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_1__2__Impl_in_rule__XSwitchExpression__Group_2_1__226150);
+ rule__XSwitchExpression__Group_2_1__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_1__2"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_1__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12943:1: rule__XSwitchExpression__Group_2_1__2__Impl : ( ')' ) ;
+ public final void rule__XSwitchExpression__Group_2_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12947:1: ( ( ')' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12948:1: ( ')' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12948:1: ( ')' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12949:1: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_1_2());
+ }
+ match(input,72,FOLLOW_72_in_rule__XSwitchExpression__Group_2_1__2__Impl26178); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_1_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_1__2__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_1_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12968:1: rule__XSwitchExpression__Group_2_1_0__0 : rule__XSwitchExpression__Group_2_1_0__0__Impl ;
+ public final void rule__XSwitchExpression__Group_2_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12972:1: ( rule__XSwitchExpression__Group_2_1_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12973:2: rule__XSwitchExpression__Group_2_1_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_1_0__0__Impl_in_rule__XSwitchExpression__Group_2_1_0__026215);
+ rule__XSwitchExpression__Group_2_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_1_0__0"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_1_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12979:1: rule__XSwitchExpression__Group_2_1_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) ;
+ public final void rule__XSwitchExpression__Group_2_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12983:1: ( ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12984:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12984:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12985:1: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12986:1: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12986:2: rule__XSwitchExpression__Group_2_1_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_1_0_0__0_in_rule__XSwitchExpression__Group_2_1_0__0__Impl26242);
+ rule__XSwitchExpression__Group_2_1_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12998:1: rule__XSwitchExpression__Group_2_1_0_0__0 : rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 ;
+ public final void rule__XSwitchExpression__Group_2_1_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13002:1: ( rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13003:2: rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_1_0_0__0__Impl_in_rule__XSwitchExpression__Group_2_1_0_0__026274);
+ rule__XSwitchExpression__Group_2_1_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_1_0_0__1_in_rule__XSwitchExpression__Group_2_1_0_0__026277);
+ rule__XSwitchExpression__Group_2_1_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_1_0_0__0"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13010:1: rule__XSwitchExpression__Group_2_1_0_0__0__Impl : ( '(' ) ;
+ public final void rule__XSwitchExpression__Group_2_1_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13014:1: ( ( '(' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13015:1: ( '(' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13015:1: ( '(' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13016:1: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_1_0_0_0());
+ }
+ match(input,77,FOLLOW_77_in_rule__XSwitchExpression__Group_2_1_0_0__0__Impl26305); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_1_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13029:1: rule__XSwitchExpression__Group_2_1_0_0__1 : rule__XSwitchExpression__Group_2_1_0_0__1__Impl rule__XSwitchExpression__Group_2_1_0_0__2 ;
+ public final void rule__XSwitchExpression__Group_2_1_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13033:1: ( rule__XSwitchExpression__Group_2_1_0_0__1__Impl rule__XSwitchExpression__Group_2_1_0_0__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13034:2: rule__XSwitchExpression__Group_2_1_0_0__1__Impl rule__XSwitchExpression__Group_2_1_0_0__2
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_1_0_0__1__Impl_in_rule__XSwitchExpression__Group_2_1_0_0__126336);
+ rule__XSwitchExpression__Group_2_1_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_1_0_0__2_in_rule__XSwitchExpression__Group_2_1_0_0__126339);
+ rule__XSwitchExpression__Group_2_1_0_0__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_1_0_0__1"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13041:1: rule__XSwitchExpression__Group_2_1_0_0__1__Impl : ( ( rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_1 ) ) ;
+ public final void rule__XSwitchExpression__Group_2_1_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13045:1: ( ( ( rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13046:1: ( ( rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13046:1: ( ( rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13047:1: ( rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameAssignment_2_1_0_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13048:1: ( rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13048:2: rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_1
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_1_in_rule__XSwitchExpression__Group_2_1_0_0__1__Impl26366);
+ rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameAssignment_2_1_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_1_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13058:1: rule__XSwitchExpression__Group_2_1_0_0__2 : rule__XSwitchExpression__Group_2_1_0_0__2__Impl ;
+ public final void rule__XSwitchExpression__Group_2_1_0_0__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13062:1: ( rule__XSwitchExpression__Group_2_1_0_0__2__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13063:2: rule__XSwitchExpression__Group_2_1_0_0__2__Impl
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_2_1_0_0__2__Impl_in_rule__XSwitchExpression__Group_2_1_0_0__226396);
+ rule__XSwitchExpression__Group_2_1_0_0__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_1_0_0__2"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13069:1: rule__XSwitchExpression__Group_2_1_0_0__2__Impl : ( ':' ) ;
+ public final void rule__XSwitchExpression__Group_2_1_0_0__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13073:1: ( ( ':' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13074:1: ( ':' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13074:1: ( ':' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13075:1: ':'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_2());
+ }
+ match(input,56,FOLLOW_56_in_rule__XSwitchExpression__Group_2_1_0_0__2__Impl26424); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_2_1_0_0__2__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_5__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13094:1: rule__XSwitchExpression__Group_5__0 : rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 ;
+ public final void rule__XSwitchExpression__Group_5__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13098:1: ( rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13099:2: rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_5__0__Impl_in_rule__XSwitchExpression__Group_5__026461);
+ rule__XSwitchExpression__Group_5__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_5__1_in_rule__XSwitchExpression__Group_5__026464);
+ rule__XSwitchExpression__Group_5__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_5__0"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_5__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13106:1: rule__XSwitchExpression__Group_5__0__Impl : ( 'default' ) ;
+ public final void rule__XSwitchExpression__Group_5__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13110:1: ( ( 'default' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13111:1: ( 'default' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13111:1: ( 'default' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13112:1: 'default'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0());
+ }
+ match(input,81,FOLLOW_81_in_rule__XSwitchExpression__Group_5__0__Impl26492); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_5__0__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_5__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13125:1: rule__XSwitchExpression__Group_5__1 : rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 ;
+ public final void rule__XSwitchExpression__Group_5__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13129:1: ( rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13130:2: rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_5__1__Impl_in_rule__XSwitchExpression__Group_5__126523);
+ rule__XSwitchExpression__Group_5__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_5__2_in_rule__XSwitchExpression__Group_5__126526);
+ rule__XSwitchExpression__Group_5__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_5__1"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_5__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13137:1: rule__XSwitchExpression__Group_5__1__Impl : ( ':' ) ;
+ public final void rule__XSwitchExpression__Group_5__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13141:1: ( ( ':' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13142:1: ( ':' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13142:1: ( ':' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13143:1: ':'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1());
+ }
+ match(input,56,FOLLOW_56_in_rule__XSwitchExpression__Group_5__1__Impl26554); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_5__1__Impl"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_5__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13156:1: rule__XSwitchExpression__Group_5__2 : rule__XSwitchExpression__Group_5__2__Impl ;
+ public final void rule__XSwitchExpression__Group_5__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13160:1: ( rule__XSwitchExpression__Group_5__2__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13161:2: rule__XSwitchExpression__Group_5__2__Impl
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__Group_5__2__Impl_in_rule__XSwitchExpression__Group_5__226585);
+ rule__XSwitchExpression__Group_5__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_5__2"
+
+
+ // $ANTLR start "rule__XSwitchExpression__Group_5__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13167:1: rule__XSwitchExpression__Group_5__2__Impl : ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) ;
+ public final void rule__XSwitchExpression__Group_5__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13171:1: ( ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13172:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13172:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13173:1: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13174:1: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13174:2: rule__XSwitchExpression__DefaultAssignment_5_2
+ {
+ pushFollow(FOLLOW_rule__XSwitchExpression__DefaultAssignment_5_2_in_rule__XSwitchExpression__Group_5__2__Impl26612);
+ rule__XSwitchExpression__DefaultAssignment_5_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__Group_5__2__Impl"
+
+
+ // $ANTLR start "rule__XCasePart__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13190:1: rule__XCasePart__Group__0 : rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 ;
+ public final void rule__XCasePart__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13194:1: ( rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13195:2: rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1
+ {
+ pushFollow(FOLLOW_rule__XCasePart__Group__0__Impl_in_rule__XCasePart__Group__026648);
+ rule__XCasePart__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XCasePart__Group__1_in_rule__XCasePart__Group__026651);
+ rule__XCasePart__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCasePart__Group__0"
+
+
+ // $ANTLR start "rule__XCasePart__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13202:1: rule__XCasePart__Group__0__Impl : ( ( rule__XCasePart__TypeGuardAssignment_0 )? ) ;
+ public final void rule__XCasePart__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13206:1: ( ( ( rule__XCasePart__TypeGuardAssignment_0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13207:1: ( ( rule__XCasePart__TypeGuardAssignment_0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13207:1: ( ( rule__XCasePart__TypeGuardAssignment_0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13208:1: ( rule__XCasePart__TypeGuardAssignment_0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13209:1: ( rule__XCasePart__TypeGuardAssignment_0 )?
+ int alt87=2;
+ int LA87_0 = input.LA(1);
+
+ if ( (LA87_0==RULE_ID||LA87_0==29||LA87_0==77) ) {
+ alt87=1;
+ }
+ switch (alt87) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13209:2: rule__XCasePart__TypeGuardAssignment_0
+ {
+ pushFollow(FOLLOW_rule__XCasePart__TypeGuardAssignment_0_in_rule__XCasePart__Group__0__Impl26678);
+ rule__XCasePart__TypeGuardAssignment_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCasePart__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XCasePart__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13219:1: rule__XCasePart__Group__1 : rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 ;
+ public final void rule__XCasePart__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13223:1: ( rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13224:2: rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2
+ {
+ pushFollow(FOLLOW_rule__XCasePart__Group__1__Impl_in_rule__XCasePart__Group__126709);
+ rule__XCasePart__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XCasePart__Group__2_in_rule__XCasePart__Group__126712);
+ rule__XCasePart__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCasePart__Group__1"
+
+
+ // $ANTLR start "rule__XCasePart__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13231:1: rule__XCasePart__Group__1__Impl : ( ( rule__XCasePart__Group_1__0 )? ) ;
+ public final void rule__XCasePart__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13235:1: ( ( ( rule__XCasePart__Group_1__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13236:1: ( ( rule__XCasePart__Group_1__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13236:1: ( ( rule__XCasePart__Group_1__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13237:1: ( rule__XCasePart__Group_1__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCasePartAccess().getGroup_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13238:1: ( rule__XCasePart__Group_1__0 )?
+ int alt88=2;
+ int LA88_0 = input.LA(1);
+
+ if ( (LA88_0==82) ) {
+ alt88=1;
+ }
+ switch (alt88) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13238:2: rule__XCasePart__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XCasePart__Group_1__0_in_rule__XCasePart__Group__1__Impl26739);
+ rule__XCasePart__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCasePartAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCasePart__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XCasePart__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13248:1: rule__XCasePart__Group__2 : rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 ;
+ public final void rule__XCasePart__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13252:1: ( rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13253:2: rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3
+ {
+ pushFollow(FOLLOW_rule__XCasePart__Group__2__Impl_in_rule__XCasePart__Group__226770);
+ rule__XCasePart__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XCasePart__Group__3_in_rule__XCasePart__Group__226773);
+ rule__XCasePart__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCasePart__Group__2"
+
+
+ // $ANTLR start "rule__XCasePart__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13260:1: rule__XCasePart__Group__2__Impl : ( ':' ) ;
+ public final void rule__XCasePart__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13264:1: ( ( ':' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13265:1: ( ':' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13265:1: ( ':' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13266:1: ':'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCasePartAccess().getColonKeyword_2());
+ }
+ match(input,56,FOLLOW_56_in_rule__XCasePart__Group__2__Impl26801); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCasePartAccess().getColonKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCasePart__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XCasePart__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13279:1: rule__XCasePart__Group__3 : rule__XCasePart__Group__3__Impl ;
+ public final void rule__XCasePart__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13283:1: ( rule__XCasePart__Group__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13284:2: rule__XCasePart__Group__3__Impl
+ {
+ pushFollow(FOLLOW_rule__XCasePart__Group__3__Impl_in_rule__XCasePart__Group__326832);
+ rule__XCasePart__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCasePart__Group__3"
+
+
+ // $ANTLR start "rule__XCasePart__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13290:1: rule__XCasePart__Group__3__Impl : ( ( rule__XCasePart__ThenAssignment_3 ) ) ;
+ public final void rule__XCasePart__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13294:1: ( ( ( rule__XCasePart__ThenAssignment_3 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13295:1: ( ( rule__XCasePart__ThenAssignment_3 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13295:1: ( ( rule__XCasePart__ThenAssignment_3 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13296:1: ( rule__XCasePart__ThenAssignment_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCasePartAccess().getThenAssignment_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13297:1: ( rule__XCasePart__ThenAssignment_3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13297:2: rule__XCasePart__ThenAssignment_3
+ {
+ pushFollow(FOLLOW_rule__XCasePart__ThenAssignment_3_in_rule__XCasePart__Group__3__Impl26859);
+ rule__XCasePart__ThenAssignment_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCasePartAccess().getThenAssignment_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCasePart__Group__3__Impl"
+
+
+ // $ANTLR start "rule__XCasePart__Group_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13315:1: rule__XCasePart__Group_1__0 : rule__XCasePart__Group_1__0__Impl rule__XCasePart__Group_1__1 ;
+ public final void rule__XCasePart__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13319:1: ( rule__XCasePart__Group_1__0__Impl rule__XCasePart__Group_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13320:2: rule__XCasePart__Group_1__0__Impl rule__XCasePart__Group_1__1
+ {
+ pushFollow(FOLLOW_rule__XCasePart__Group_1__0__Impl_in_rule__XCasePart__Group_1__026897);
+ rule__XCasePart__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XCasePart__Group_1__1_in_rule__XCasePart__Group_1__026900);
+ rule__XCasePart__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCasePart__Group_1__0"
+
+
+ // $ANTLR start "rule__XCasePart__Group_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13327:1: rule__XCasePart__Group_1__0__Impl : ( 'case' ) ;
+ public final void rule__XCasePart__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13331:1: ( ( 'case' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13332:1: ( 'case' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13332:1: ( 'case' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13333:1: 'case'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCasePartAccess().getCaseKeyword_1_0());
+ }
+ match(input,82,FOLLOW_82_in_rule__XCasePart__Group_1__0__Impl26928); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCasePartAccess().getCaseKeyword_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCasePart__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__XCasePart__Group_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13346:1: rule__XCasePart__Group_1__1 : rule__XCasePart__Group_1__1__Impl ;
+ public final void rule__XCasePart__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13350:1: ( rule__XCasePart__Group_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13351:2: rule__XCasePart__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XCasePart__Group_1__1__Impl_in_rule__XCasePart__Group_1__126959);
+ rule__XCasePart__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCasePart__Group_1__1"
+
+
+ // $ANTLR start "rule__XCasePart__Group_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13357:1: rule__XCasePart__Group_1__1__Impl : ( ( rule__XCasePart__CaseAssignment_1_1 ) ) ;
+ public final void rule__XCasePart__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13361:1: ( ( ( rule__XCasePart__CaseAssignment_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13362:1: ( ( rule__XCasePart__CaseAssignment_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13362:1: ( ( rule__XCasePart__CaseAssignment_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13363:1: ( rule__XCasePart__CaseAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCasePartAccess().getCaseAssignment_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13364:1: ( rule__XCasePart__CaseAssignment_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13364:2: rule__XCasePart__CaseAssignment_1_1
+ {
+ pushFollow(FOLLOW_rule__XCasePart__CaseAssignment_1_1_in_rule__XCasePart__Group_1__1__Impl26986);
+ rule__XCasePart__CaseAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCasePartAccess().getCaseAssignment_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCasePart__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__XForLoopExpression__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13378:1: rule__XForLoopExpression__Group__0 : rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 ;
+ public final void rule__XForLoopExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13382:1: ( rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13383:2: rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1
+ {
+ pushFollow(FOLLOW_rule__XForLoopExpression__Group__0__Impl_in_rule__XForLoopExpression__Group__027020);
+ rule__XForLoopExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XForLoopExpression__Group__1_in_rule__XForLoopExpression__Group__027023);
+ rule__XForLoopExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__Group__0"
+
+
+ // $ANTLR start "rule__XForLoopExpression__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13390:1: rule__XForLoopExpression__Group__0__Impl : ( () ) ;
+ public final void rule__XForLoopExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13394:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13395:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13395:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13396:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13397:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13399:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XForLoopExpression__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13409:1: rule__XForLoopExpression__Group__1 : rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 ;
+ public final void rule__XForLoopExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13413:1: ( rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13414:2: rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2
+ {
+ pushFollow(FOLLOW_rule__XForLoopExpression__Group__1__Impl_in_rule__XForLoopExpression__Group__127081);
+ rule__XForLoopExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XForLoopExpression__Group__2_in_rule__XForLoopExpression__Group__127084);
+ rule__XForLoopExpression__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__Group__1"
+
+
+ // $ANTLR start "rule__XForLoopExpression__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13421:1: rule__XForLoopExpression__Group__1__Impl : ( 'for' ) ;
+ public final void rule__XForLoopExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13425:1: ( ( 'for' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13426:1: ( 'for' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13426:1: ( 'for' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13427:1: 'for'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXForLoopExpressionAccess().getForKeyword_1());
+ }
+ match(input,83,FOLLOW_83_in_rule__XForLoopExpression__Group__1__Impl27112); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXForLoopExpressionAccess().getForKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XForLoopExpression__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13440:1: rule__XForLoopExpression__Group__2 : rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 ;
+ public final void rule__XForLoopExpression__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13444:1: ( rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13445:2: rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3
+ {
+ pushFollow(FOLLOW_rule__XForLoopExpression__Group__2__Impl_in_rule__XForLoopExpression__Group__227143);
+ rule__XForLoopExpression__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XForLoopExpression__Group__3_in_rule__XForLoopExpression__Group__227146);
+ rule__XForLoopExpression__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__Group__2"
+
+
+ // $ANTLR start "rule__XForLoopExpression__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13452:1: rule__XForLoopExpression__Group__2__Impl : ( '(' ) ;
+ public final void rule__XForLoopExpression__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13456:1: ( ( '(' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13457:1: ( '(' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13457:1: ( '(' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13458:1: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_2());
+ }
+ match(input,77,FOLLOW_77_in_rule__XForLoopExpression__Group__2__Impl27174); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XForLoopExpression__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13471:1: rule__XForLoopExpression__Group__3 : rule__XForLoopExpression__Group__3__Impl rule__XForLoopExpression__Group__4 ;
+ public final void rule__XForLoopExpression__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13475:1: ( rule__XForLoopExpression__Group__3__Impl rule__XForLoopExpression__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13476:2: rule__XForLoopExpression__Group__3__Impl rule__XForLoopExpression__Group__4
+ {
+ pushFollow(FOLLOW_rule__XForLoopExpression__Group__3__Impl_in_rule__XForLoopExpression__Group__327205);
+ rule__XForLoopExpression__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XForLoopExpression__Group__4_in_rule__XForLoopExpression__Group__327208);
+ rule__XForLoopExpression__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__Group__3"
+
+
+ // $ANTLR start "rule__XForLoopExpression__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13483:1: rule__XForLoopExpression__Group__3__Impl : ( ( rule__XForLoopExpression__DeclaredParamAssignment_3 ) ) ;
+ public final void rule__XForLoopExpression__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13487:1: ( ( ( rule__XForLoopExpression__DeclaredParamAssignment_3 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13488:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_3 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13488:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_3 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13489:1: ( rule__XForLoopExpression__DeclaredParamAssignment_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13490:1: ( rule__XForLoopExpression__DeclaredParamAssignment_3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13490:2: rule__XForLoopExpression__DeclaredParamAssignment_3
+ {
+ pushFollow(FOLLOW_rule__XForLoopExpression__DeclaredParamAssignment_3_in_rule__XForLoopExpression__Group__3__Impl27235);
+ rule__XForLoopExpression__DeclaredParamAssignment_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__Group__3__Impl"
+
+
+ // $ANTLR start "rule__XForLoopExpression__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13500:1: rule__XForLoopExpression__Group__4 : rule__XForLoopExpression__Group__4__Impl rule__XForLoopExpression__Group__5 ;
+ public final void rule__XForLoopExpression__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13504:1: ( rule__XForLoopExpression__Group__4__Impl rule__XForLoopExpression__Group__5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13505:2: rule__XForLoopExpression__Group__4__Impl rule__XForLoopExpression__Group__5
+ {
+ pushFollow(FOLLOW_rule__XForLoopExpression__Group__4__Impl_in_rule__XForLoopExpression__Group__427265);
+ rule__XForLoopExpression__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XForLoopExpression__Group__5_in_rule__XForLoopExpression__Group__427268);
+ rule__XForLoopExpression__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__Group__4"
+
+
+ // $ANTLR start "rule__XForLoopExpression__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13512:1: rule__XForLoopExpression__Group__4__Impl : ( ':' ) ;
+ public final void rule__XForLoopExpression__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13516:1: ( ( ':' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13517:1: ( ':' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13517:1: ( ':' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13518:1: ':'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_4());
+ }
+ match(input,56,FOLLOW_56_in_rule__XForLoopExpression__Group__4__Impl27296); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__Group__4__Impl"
+
+
+ // $ANTLR start "rule__XForLoopExpression__Group__5"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13531:1: rule__XForLoopExpression__Group__5 : rule__XForLoopExpression__Group__5__Impl rule__XForLoopExpression__Group__6 ;
+ public final void rule__XForLoopExpression__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13535:1: ( rule__XForLoopExpression__Group__5__Impl rule__XForLoopExpression__Group__6 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13536:2: rule__XForLoopExpression__Group__5__Impl rule__XForLoopExpression__Group__6
+ {
+ pushFollow(FOLLOW_rule__XForLoopExpression__Group__5__Impl_in_rule__XForLoopExpression__Group__527327);
+ rule__XForLoopExpression__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XForLoopExpression__Group__6_in_rule__XForLoopExpression__Group__527330);
+ rule__XForLoopExpression__Group__6();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__Group__5"
+
+
+ // $ANTLR start "rule__XForLoopExpression__Group__5__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13543:1: rule__XForLoopExpression__Group__5__Impl : ( ( rule__XForLoopExpression__ForExpressionAssignment_5 ) ) ;
+ public final void rule__XForLoopExpression__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13547:1: ( ( ( rule__XForLoopExpression__ForExpressionAssignment_5 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13548:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_5 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13548:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_5 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13549:1: ( rule__XForLoopExpression__ForExpressionAssignment_5 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_5());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13550:1: ( rule__XForLoopExpression__ForExpressionAssignment_5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13550:2: rule__XForLoopExpression__ForExpressionAssignment_5
+ {
+ pushFollow(FOLLOW_rule__XForLoopExpression__ForExpressionAssignment_5_in_rule__XForLoopExpression__Group__5__Impl27357);
+ rule__XForLoopExpression__ForExpressionAssignment_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__Group__5__Impl"
+
+
+ // $ANTLR start "rule__XForLoopExpression__Group__6"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13560:1: rule__XForLoopExpression__Group__6 : rule__XForLoopExpression__Group__6__Impl rule__XForLoopExpression__Group__7 ;
+ public final void rule__XForLoopExpression__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13564:1: ( rule__XForLoopExpression__Group__6__Impl rule__XForLoopExpression__Group__7 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13565:2: rule__XForLoopExpression__Group__6__Impl rule__XForLoopExpression__Group__7
+ {
+ pushFollow(FOLLOW_rule__XForLoopExpression__Group__6__Impl_in_rule__XForLoopExpression__Group__627387);
+ rule__XForLoopExpression__Group__6__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XForLoopExpression__Group__7_in_rule__XForLoopExpression__Group__627390);
+ rule__XForLoopExpression__Group__7();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__Group__6"
+
+
+ // $ANTLR start "rule__XForLoopExpression__Group__6__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13572:1: rule__XForLoopExpression__Group__6__Impl : ( ')' ) ;
+ public final void rule__XForLoopExpression__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13576:1: ( ( ')' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13577:1: ( ')' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13577:1: ( ')' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13578:1: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_6());
+ }
+ match(input,72,FOLLOW_72_in_rule__XForLoopExpression__Group__6__Impl27418); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_6());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__Group__6__Impl"
+
+
+ // $ANTLR start "rule__XForLoopExpression__Group__7"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13591:1: rule__XForLoopExpression__Group__7 : rule__XForLoopExpression__Group__7__Impl ;
+ public final void rule__XForLoopExpression__Group__7() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13595:1: ( rule__XForLoopExpression__Group__7__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13596:2: rule__XForLoopExpression__Group__7__Impl
+ {
+ pushFollow(FOLLOW_rule__XForLoopExpression__Group__7__Impl_in_rule__XForLoopExpression__Group__727449);
+ rule__XForLoopExpression__Group__7__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__Group__7"
+
+
+ // $ANTLR start "rule__XForLoopExpression__Group__7__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13602:1: rule__XForLoopExpression__Group__7__Impl : ( ( rule__XForLoopExpression__EachExpressionAssignment_7 ) ) ;
+ public final void rule__XForLoopExpression__Group__7__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13606:1: ( ( ( rule__XForLoopExpression__EachExpressionAssignment_7 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13607:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_7 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13607:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_7 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13608:1: ( rule__XForLoopExpression__EachExpressionAssignment_7 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_7());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13609:1: ( rule__XForLoopExpression__EachExpressionAssignment_7 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13609:2: rule__XForLoopExpression__EachExpressionAssignment_7
+ {
+ pushFollow(FOLLOW_rule__XForLoopExpression__EachExpressionAssignment_7_in_rule__XForLoopExpression__Group__7__Impl27476);
+ rule__XForLoopExpression__EachExpressionAssignment_7();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_7());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__Group__7__Impl"
+
+
+ // $ANTLR start "rule__XWhileExpression__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13635:1: rule__XWhileExpression__Group__0 : rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 ;
+ public final void rule__XWhileExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13639:1: ( rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13640:2: rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1
+ {
+ pushFollow(FOLLOW_rule__XWhileExpression__Group__0__Impl_in_rule__XWhileExpression__Group__027522);
+ rule__XWhileExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XWhileExpression__Group__1_in_rule__XWhileExpression__Group__027525);
+ rule__XWhileExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XWhileExpression__Group__0"
+
+
+ // $ANTLR start "rule__XWhileExpression__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13647:1: rule__XWhileExpression__Group__0__Impl : ( () ) ;
+ public final void rule__XWhileExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13651:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13652:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13652:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13653:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13654:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13656:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XWhileExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XWhileExpression__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13666:1: rule__XWhileExpression__Group__1 : rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 ;
+ public final void rule__XWhileExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13670:1: ( rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13671:2: rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2
+ {
+ pushFollow(FOLLOW_rule__XWhileExpression__Group__1__Impl_in_rule__XWhileExpression__Group__127583);
+ rule__XWhileExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XWhileExpression__Group__2_in_rule__XWhileExpression__Group__127586);
+ rule__XWhileExpression__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XWhileExpression__Group__1"
+
+
+ // $ANTLR start "rule__XWhileExpression__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13678:1: rule__XWhileExpression__Group__1__Impl : ( 'while' ) ;
+ public final void rule__XWhileExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13682:1: ( ( 'while' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13683:1: ( 'while' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13683:1: ( 'while' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13684:1: 'while'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1());
+ }
+ match(input,84,FOLLOW_84_in_rule__XWhileExpression__Group__1__Impl27614); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XWhileExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XWhileExpression__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13697:1: rule__XWhileExpression__Group__2 : rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 ;
+ public final void rule__XWhileExpression__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13701:1: ( rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13702:2: rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3
+ {
+ pushFollow(FOLLOW_rule__XWhileExpression__Group__2__Impl_in_rule__XWhileExpression__Group__227645);
+ rule__XWhileExpression__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XWhileExpression__Group__3_in_rule__XWhileExpression__Group__227648);
+ rule__XWhileExpression__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XWhileExpression__Group__2"
+
+
+ // $ANTLR start "rule__XWhileExpression__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13709:1: rule__XWhileExpression__Group__2__Impl : ( '(' ) ;
+ public final void rule__XWhileExpression__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13713:1: ( ( '(' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13714:1: ( '(' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13714:1: ( '(' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13715:1: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2());
+ }
+ match(input,77,FOLLOW_77_in_rule__XWhileExpression__Group__2__Impl27676); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XWhileExpression__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XWhileExpression__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13728:1: rule__XWhileExpression__Group__3 : rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 ;
+ public final void rule__XWhileExpression__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13732:1: ( rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13733:2: rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4
+ {
+ pushFollow(FOLLOW_rule__XWhileExpression__Group__3__Impl_in_rule__XWhileExpression__Group__327707);
+ rule__XWhileExpression__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XWhileExpression__Group__4_in_rule__XWhileExpression__Group__327710);
+ rule__XWhileExpression__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XWhileExpression__Group__3"
+
+
+ // $ANTLR start "rule__XWhileExpression__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13740:1: rule__XWhileExpression__Group__3__Impl : ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) ;
+ public final void rule__XWhileExpression__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13744:1: ( ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13745:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13745:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13746:1: ( rule__XWhileExpression__PredicateAssignment_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13747:1: ( rule__XWhileExpression__PredicateAssignment_3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13747:2: rule__XWhileExpression__PredicateAssignment_3
+ {
+ pushFollow(FOLLOW_rule__XWhileExpression__PredicateAssignment_3_in_rule__XWhileExpression__Group__3__Impl27737);
+ rule__XWhileExpression__PredicateAssignment_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XWhileExpression__Group__3__Impl"
+
+
+ // $ANTLR start "rule__XWhileExpression__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13757:1: rule__XWhileExpression__Group__4 : rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 ;
+ public final void rule__XWhileExpression__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13761:1: ( rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13762:2: rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5
+ {
+ pushFollow(FOLLOW_rule__XWhileExpression__Group__4__Impl_in_rule__XWhileExpression__Group__427767);
+ rule__XWhileExpression__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XWhileExpression__Group__5_in_rule__XWhileExpression__Group__427770);
+ rule__XWhileExpression__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XWhileExpression__Group__4"
+
+
+ // $ANTLR start "rule__XWhileExpression__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13769:1: rule__XWhileExpression__Group__4__Impl : ( ')' ) ;
+ public final void rule__XWhileExpression__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13773:1: ( ( ')' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13774:1: ( ')' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13774:1: ( ')' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13775:1: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4());
+ }
+ match(input,72,FOLLOW_72_in_rule__XWhileExpression__Group__4__Impl27798); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XWhileExpression__Group__4__Impl"
+
+
+ // $ANTLR start "rule__XWhileExpression__Group__5"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13788:1: rule__XWhileExpression__Group__5 : rule__XWhileExpression__Group__5__Impl ;
+ public final void rule__XWhileExpression__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13792:1: ( rule__XWhileExpression__Group__5__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13793:2: rule__XWhileExpression__Group__5__Impl
+ {
+ pushFollow(FOLLOW_rule__XWhileExpression__Group__5__Impl_in_rule__XWhileExpression__Group__527829);
+ rule__XWhileExpression__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XWhileExpression__Group__5"
+
+
+ // $ANTLR start "rule__XWhileExpression__Group__5__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13799:1: rule__XWhileExpression__Group__5__Impl : ( ( rule__XWhileExpression__BodyAssignment_5 ) ) ;
+ public final void rule__XWhileExpression__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13803:1: ( ( ( rule__XWhileExpression__BodyAssignment_5 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13804:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13804:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13805:1: ( rule__XWhileExpression__BodyAssignment_5 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13806:1: ( rule__XWhileExpression__BodyAssignment_5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13806:2: rule__XWhileExpression__BodyAssignment_5
+ {
+ pushFollow(FOLLOW_rule__XWhileExpression__BodyAssignment_5_in_rule__XWhileExpression__Group__5__Impl27856);
+ rule__XWhileExpression__BodyAssignment_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XWhileExpression__Group__5__Impl"
+
+
+ // $ANTLR start "rule__XDoWhileExpression__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13828:1: rule__XDoWhileExpression__Group__0 : rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 ;
+ public final void rule__XDoWhileExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13832:1: ( rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13833:2: rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1
+ {
+ pushFollow(FOLLOW_rule__XDoWhileExpression__Group__0__Impl_in_rule__XDoWhileExpression__Group__027898);
+ rule__XDoWhileExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XDoWhileExpression__Group__1_in_rule__XDoWhileExpression__Group__027901);
+ rule__XDoWhileExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XDoWhileExpression__Group__0"
+
+
+ // $ANTLR start "rule__XDoWhileExpression__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13840:1: rule__XDoWhileExpression__Group__0__Impl : ( () ) ;
+ public final void rule__XDoWhileExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13844:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13845:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13845:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13846:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13847:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13849:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XDoWhileExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XDoWhileExpression__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13859:1: rule__XDoWhileExpression__Group__1 : rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 ;
+ public final void rule__XDoWhileExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13863:1: ( rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13864:2: rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2
+ {
+ pushFollow(FOLLOW_rule__XDoWhileExpression__Group__1__Impl_in_rule__XDoWhileExpression__Group__127959);
+ rule__XDoWhileExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XDoWhileExpression__Group__2_in_rule__XDoWhileExpression__Group__127962);
+ rule__XDoWhileExpression__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XDoWhileExpression__Group__1"
+
+
+ // $ANTLR start "rule__XDoWhileExpression__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13871:1: rule__XDoWhileExpression__Group__1__Impl : ( 'do' ) ;
+ public final void rule__XDoWhileExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13875:1: ( ( 'do' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13876:1: ( 'do' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13876:1: ( 'do' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13877:1: 'do'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1());
+ }
+ match(input,85,FOLLOW_85_in_rule__XDoWhileExpression__Group__1__Impl27990); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XDoWhileExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XDoWhileExpression__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13890:1: rule__XDoWhileExpression__Group__2 : rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 ;
+ public final void rule__XDoWhileExpression__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13894:1: ( rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13895:2: rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3
+ {
+ pushFollow(FOLLOW_rule__XDoWhileExpression__Group__2__Impl_in_rule__XDoWhileExpression__Group__228021);
+ rule__XDoWhileExpression__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XDoWhileExpression__Group__3_in_rule__XDoWhileExpression__Group__228024);
+ rule__XDoWhileExpression__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XDoWhileExpression__Group__2"
+
+
+ // $ANTLR start "rule__XDoWhileExpression__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13902:1: rule__XDoWhileExpression__Group__2__Impl : ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) ;
+ public final void rule__XDoWhileExpression__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13906:1: ( ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13907:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13907:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13908:1: ( rule__XDoWhileExpression__BodyAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13909:1: ( rule__XDoWhileExpression__BodyAssignment_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13909:2: rule__XDoWhileExpression__BodyAssignment_2
+ {
+ pushFollow(FOLLOW_rule__XDoWhileExpression__BodyAssignment_2_in_rule__XDoWhileExpression__Group__2__Impl28051);
+ rule__XDoWhileExpression__BodyAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XDoWhileExpression__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XDoWhileExpression__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13919:1: rule__XDoWhileExpression__Group__3 : rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 ;
+ public final void rule__XDoWhileExpression__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13923:1: ( rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13924:2: rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4
+ {
+ pushFollow(FOLLOW_rule__XDoWhileExpression__Group__3__Impl_in_rule__XDoWhileExpression__Group__328081);
+ rule__XDoWhileExpression__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XDoWhileExpression__Group__4_in_rule__XDoWhileExpression__Group__328084);
+ rule__XDoWhileExpression__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XDoWhileExpression__Group__3"
+
+
+ // $ANTLR start "rule__XDoWhileExpression__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13931:1: rule__XDoWhileExpression__Group__3__Impl : ( 'while' ) ;
+ public final void rule__XDoWhileExpression__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13935:1: ( ( 'while' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13936:1: ( 'while' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13936:1: ( 'while' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13937:1: 'while'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3());
+ }
+ match(input,84,FOLLOW_84_in_rule__XDoWhileExpression__Group__3__Impl28112); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XDoWhileExpression__Group__3__Impl"
+
+
+ // $ANTLR start "rule__XDoWhileExpression__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13950:1: rule__XDoWhileExpression__Group__4 : rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 ;
+ public final void rule__XDoWhileExpression__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13954:1: ( rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13955:2: rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5
+ {
+ pushFollow(FOLLOW_rule__XDoWhileExpression__Group__4__Impl_in_rule__XDoWhileExpression__Group__428143);
+ rule__XDoWhileExpression__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XDoWhileExpression__Group__5_in_rule__XDoWhileExpression__Group__428146);
+ rule__XDoWhileExpression__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XDoWhileExpression__Group__4"
+
+
+ // $ANTLR start "rule__XDoWhileExpression__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13962:1: rule__XDoWhileExpression__Group__4__Impl : ( '(' ) ;
+ public final void rule__XDoWhileExpression__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13966:1: ( ( '(' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13967:1: ( '(' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13967:1: ( '(' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13968:1: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4());
+ }
+ match(input,77,FOLLOW_77_in_rule__XDoWhileExpression__Group__4__Impl28174); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XDoWhileExpression__Group__4__Impl"
+
+
+ // $ANTLR start "rule__XDoWhileExpression__Group__5"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13981:1: rule__XDoWhileExpression__Group__5 : rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 ;
+ public final void rule__XDoWhileExpression__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13985:1: ( rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13986:2: rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6
+ {
+ pushFollow(FOLLOW_rule__XDoWhileExpression__Group__5__Impl_in_rule__XDoWhileExpression__Group__528205);
+ rule__XDoWhileExpression__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XDoWhileExpression__Group__6_in_rule__XDoWhileExpression__Group__528208);
+ rule__XDoWhileExpression__Group__6();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XDoWhileExpression__Group__5"
+
+
+ // $ANTLR start "rule__XDoWhileExpression__Group__5__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13993:1: rule__XDoWhileExpression__Group__5__Impl : ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) ;
+ public final void rule__XDoWhileExpression__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13997:1: ( ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13998:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13998:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:13999:1: ( rule__XDoWhileExpression__PredicateAssignment_5 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14000:1: ( rule__XDoWhileExpression__PredicateAssignment_5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14000:2: rule__XDoWhileExpression__PredicateAssignment_5
+ {
+ pushFollow(FOLLOW_rule__XDoWhileExpression__PredicateAssignment_5_in_rule__XDoWhileExpression__Group__5__Impl28235);
+ rule__XDoWhileExpression__PredicateAssignment_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XDoWhileExpression__Group__5__Impl"
+
+
+ // $ANTLR start "rule__XDoWhileExpression__Group__6"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14010:1: rule__XDoWhileExpression__Group__6 : rule__XDoWhileExpression__Group__6__Impl ;
+ public final void rule__XDoWhileExpression__Group__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14014:1: ( rule__XDoWhileExpression__Group__6__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14015:2: rule__XDoWhileExpression__Group__6__Impl
+ {
+ pushFollow(FOLLOW_rule__XDoWhileExpression__Group__6__Impl_in_rule__XDoWhileExpression__Group__628265);
+ rule__XDoWhileExpression__Group__6__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XDoWhileExpression__Group__6"
+
+
+ // $ANTLR start "rule__XDoWhileExpression__Group__6__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14021:1: rule__XDoWhileExpression__Group__6__Impl : ( ')' ) ;
+ public final void rule__XDoWhileExpression__Group__6__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14025:1: ( ( ')' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14026:1: ( ')' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14026:1: ( ')' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14027:1: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6());
+ }
+ match(input,72,FOLLOW_72_in_rule__XDoWhileExpression__Group__6__Impl28293); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XDoWhileExpression__Group__6__Impl"
+
+
+ // $ANTLR start "rule__XBlockExpression__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14054:1: rule__XBlockExpression__Group__0 : rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 ;
+ public final void rule__XBlockExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14058:1: ( rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14059:2: rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1
+ {
+ pushFollow(FOLLOW_rule__XBlockExpression__Group__0__Impl_in_rule__XBlockExpression__Group__028338);
+ rule__XBlockExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XBlockExpression__Group__1_in_rule__XBlockExpression__Group__028341);
+ rule__XBlockExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBlockExpression__Group__0"
+
+
+ // $ANTLR start "rule__XBlockExpression__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14066:1: rule__XBlockExpression__Group__0__Impl : ( () ) ;
+ public final void rule__XBlockExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14070:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14071:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14071:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14072:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14073:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14075:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBlockExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XBlockExpression__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14085:1: rule__XBlockExpression__Group__1 : rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 ;
+ public final void rule__XBlockExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14089:1: ( rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14090:2: rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2
+ {
+ pushFollow(FOLLOW_rule__XBlockExpression__Group__1__Impl_in_rule__XBlockExpression__Group__128399);
+ rule__XBlockExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XBlockExpression__Group__2_in_rule__XBlockExpression__Group__128402);
+ rule__XBlockExpression__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBlockExpression__Group__1"
+
+
+ // $ANTLR start "rule__XBlockExpression__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14097:1: rule__XBlockExpression__Group__1__Impl : ( '{' ) ;
+ public final void rule__XBlockExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14101:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14102:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14102:1: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14103:1: '{'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1());
+ }
+ match(input,49,FOLLOW_49_in_rule__XBlockExpression__Group__1__Impl28430); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBlockExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XBlockExpression__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14116:1: rule__XBlockExpression__Group__2 : rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 ;
+ public final void rule__XBlockExpression__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14120:1: ( rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14121:2: rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3
+ {
+ pushFollow(FOLLOW_rule__XBlockExpression__Group__2__Impl_in_rule__XBlockExpression__Group__228461);
+ rule__XBlockExpression__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XBlockExpression__Group__3_in_rule__XBlockExpression__Group__228464);
+ rule__XBlockExpression__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBlockExpression__Group__2"
+
+
+ // $ANTLR start "rule__XBlockExpression__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14128:1: rule__XBlockExpression__Group__2__Impl : ( ( rule__XBlockExpression__Group_2__0 )* ) ;
+ public final void rule__XBlockExpression__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14132:1: ( ( ( rule__XBlockExpression__Group_2__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14133:1: ( ( rule__XBlockExpression__Group_2__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14133:1: ( ( rule__XBlockExpression__Group_2__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14134:1: ( rule__XBlockExpression__Group_2__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXBlockExpressionAccess().getGroup_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14135:1: ( rule__XBlockExpression__Group_2__0 )*
+ loop89:
+ do {
+ int alt89=2;
+ int LA89_0 = input.LA(1);
+
+ if ( ((LA89_0>=RULE_ID && LA89_0<=RULE_STRING)||LA89_0==25||(LA89_0>=33 && LA89_0<=34)||LA89_0==39||(LA89_0>=41 && LA89_0<=47)||LA89_0==49||(LA89_0>=73 && LA89_0<=74)||(LA89_0>=77 && LA89_0<=78)||LA89_0==80||(LA89_0>=83 && LA89_0<=91)||(LA89_0>=99 && LA89_0<=100)) ) {
+ alt89=1;
+ }
+
+
+ switch (alt89) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14135:2: rule__XBlockExpression__Group_2__0
+ {
+ pushFollow(FOLLOW_rule__XBlockExpression__Group_2__0_in_rule__XBlockExpression__Group__2__Impl28491);
+ rule__XBlockExpression__Group_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop89;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXBlockExpressionAccess().getGroup_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBlockExpression__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XBlockExpression__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14145:1: rule__XBlockExpression__Group__3 : rule__XBlockExpression__Group__3__Impl ;
+ public final void rule__XBlockExpression__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14149:1: ( rule__XBlockExpression__Group__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14150:2: rule__XBlockExpression__Group__3__Impl
+ {
+ pushFollow(FOLLOW_rule__XBlockExpression__Group__3__Impl_in_rule__XBlockExpression__Group__328522);
+ rule__XBlockExpression__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBlockExpression__Group__3"
+
+
+ // $ANTLR start "rule__XBlockExpression__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14156:1: rule__XBlockExpression__Group__3__Impl : ( '}' ) ;
+ public final void rule__XBlockExpression__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14160:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14161:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14161:1: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14162:1: '}'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3());
+ }
+ match(input,50,FOLLOW_50_in_rule__XBlockExpression__Group__3__Impl28550); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBlockExpression__Group__3__Impl"
+
+
+ // $ANTLR start "rule__XBlockExpression__Group_2__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14183:1: rule__XBlockExpression__Group_2__0 : rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 ;
+ public final void rule__XBlockExpression__Group_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14187:1: ( rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14188:2: rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1
+ {
+ pushFollow(FOLLOW_rule__XBlockExpression__Group_2__0__Impl_in_rule__XBlockExpression__Group_2__028589);
+ rule__XBlockExpression__Group_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XBlockExpression__Group_2__1_in_rule__XBlockExpression__Group_2__028592);
+ rule__XBlockExpression__Group_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBlockExpression__Group_2__0"
+
+
+ // $ANTLR start "rule__XBlockExpression__Group_2__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14195:1: rule__XBlockExpression__Group_2__0__Impl : ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) ;
+ public final void rule__XBlockExpression__Group_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14199:1: ( ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14200:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14200:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14201:1: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14202:1: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14202:2: rule__XBlockExpression__ExpressionsAssignment_2_0
+ {
+ pushFollow(FOLLOW_rule__XBlockExpression__ExpressionsAssignment_2_0_in_rule__XBlockExpression__Group_2__0__Impl28619);
+ rule__XBlockExpression__ExpressionsAssignment_2_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBlockExpression__Group_2__0__Impl"
+
+
+ // $ANTLR start "rule__XBlockExpression__Group_2__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14212:1: rule__XBlockExpression__Group_2__1 : rule__XBlockExpression__Group_2__1__Impl ;
+ public final void rule__XBlockExpression__Group_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14216:1: ( rule__XBlockExpression__Group_2__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14217:2: rule__XBlockExpression__Group_2__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XBlockExpression__Group_2__1__Impl_in_rule__XBlockExpression__Group_2__128649);
+ rule__XBlockExpression__Group_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBlockExpression__Group_2__1"
+
+
+ // $ANTLR start "rule__XBlockExpression__Group_2__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14223:1: rule__XBlockExpression__Group_2__1__Impl : ( ( ';' )? ) ;
+ public final void rule__XBlockExpression__Group_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14227:1: ( ( ( ';' )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14228:1: ( ( ';' )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14228:1: ( ( ';' )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14229:1: ( ';' )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14230:1: ( ';' )?
+ int alt90=2;
+ int LA90_0 = input.LA(1);
+
+ if ( (LA90_0==76) ) {
+ alt90=1;
+ }
+ switch (alt90) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14231:2: ';'
+ {
+ match(input,76,FOLLOW_76_in_rule__XBlockExpression__Group_2__1__Impl28678); if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBlockExpression__Group_2__1__Impl"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14246:1: rule__XVariableDeclaration__Group__0 : rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 ;
+ public final void rule__XVariableDeclaration__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14250:1: ( rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14251:2: rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group__0__Impl_in_rule__XVariableDeclaration__Group__028715);
+ rule__XVariableDeclaration__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group__1_in_rule__XVariableDeclaration__Group__028718);
+ rule__XVariableDeclaration__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Group__0"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14258:1: rule__XVariableDeclaration__Group__0__Impl : ( () ) ;
+ public final void rule__XVariableDeclaration__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14262:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14263:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14263:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14264:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14265:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14267:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14277:1: rule__XVariableDeclaration__Group__1 : rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 ;
+ public final void rule__XVariableDeclaration__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14281:1: ( rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14282:2: rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group__1__Impl_in_rule__XVariableDeclaration__Group__128776);
+ rule__XVariableDeclaration__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group__2_in_rule__XVariableDeclaration__Group__128779);
+ rule__XVariableDeclaration__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Group__1"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14289:1: rule__XVariableDeclaration__Group__1__Impl : ( ( rule__XVariableDeclaration__Alternatives_1 ) ) ;
+ public final void rule__XVariableDeclaration__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14293:1: ( ( ( rule__XVariableDeclaration__Alternatives_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14294:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14294:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14295:1: ( rule__XVariableDeclaration__Alternatives_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14296:1: ( rule__XVariableDeclaration__Alternatives_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14296:2: rule__XVariableDeclaration__Alternatives_1
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Alternatives_1_in_rule__XVariableDeclaration__Group__1__Impl28806);
+ rule__XVariableDeclaration__Alternatives_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14306:1: rule__XVariableDeclaration__Group__2 : rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 ;
+ public final void rule__XVariableDeclaration__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14310:1: ( rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14311:2: rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group__2__Impl_in_rule__XVariableDeclaration__Group__228836);
+ rule__XVariableDeclaration__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group__3_in_rule__XVariableDeclaration__Group__228839);
+ rule__XVariableDeclaration__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Group__2"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14318:1: rule__XVariableDeclaration__Group__2__Impl : ( ( rule__XVariableDeclaration__Alternatives_2 ) ) ;
+ public final void rule__XVariableDeclaration__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14322:1: ( ( ( rule__XVariableDeclaration__Alternatives_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14323:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14323:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14324:1: ( rule__XVariableDeclaration__Alternatives_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14325:1: ( rule__XVariableDeclaration__Alternatives_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14325:2: rule__XVariableDeclaration__Alternatives_2
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Alternatives_2_in_rule__XVariableDeclaration__Group__2__Impl28866);
+ rule__XVariableDeclaration__Alternatives_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14335:1: rule__XVariableDeclaration__Group__3 : rule__XVariableDeclaration__Group__3__Impl ;
+ public final void rule__XVariableDeclaration__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14339:1: ( rule__XVariableDeclaration__Group__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14340:2: rule__XVariableDeclaration__Group__3__Impl
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group__3__Impl_in_rule__XVariableDeclaration__Group__328896);
+ rule__XVariableDeclaration__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Group__3"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14346:1: rule__XVariableDeclaration__Group__3__Impl : ( ( rule__XVariableDeclaration__Group_3__0 )? ) ;
+ public final void rule__XVariableDeclaration__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14350:1: ( ( ( rule__XVariableDeclaration__Group_3__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14351:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14351:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14352:1: ( rule__XVariableDeclaration__Group_3__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getGroup_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14353:1: ( rule__XVariableDeclaration__Group_3__0 )?
+ int alt91=2;
+ int LA91_0 = input.LA(1);
+
+ if ( (LA91_0==13) ) {
+ alt91=1;
+ }
+ switch (alt91) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14353:2: rule__XVariableDeclaration__Group_3__0
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group_3__0_in_rule__XVariableDeclaration__Group__3__Impl28923);
+ rule__XVariableDeclaration__Group_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getGroup_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Group__3__Impl"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Group_2_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14371:1: rule__XVariableDeclaration__Group_2_0__0 : rule__XVariableDeclaration__Group_2_0__0__Impl ;
+ public final void rule__XVariableDeclaration__Group_2_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14375:1: ( rule__XVariableDeclaration__Group_2_0__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14376:2: rule__XVariableDeclaration__Group_2_0__0__Impl
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group_2_0__0__Impl_in_rule__XVariableDeclaration__Group_2_0__028962);
+ rule__XVariableDeclaration__Group_2_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Group_2_0__0"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Group_2_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14382:1: rule__XVariableDeclaration__Group_2_0__0__Impl : ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) ;
+ public final void rule__XVariableDeclaration__Group_2_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14386:1: ( ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14387:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14387:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14388:1: ( rule__XVariableDeclaration__Group_2_0_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14389:1: ( rule__XVariableDeclaration__Group_2_0_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14389:2: rule__XVariableDeclaration__Group_2_0_0__0
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group_2_0_0__0_in_rule__XVariableDeclaration__Group_2_0__0__Impl28989);
+ rule__XVariableDeclaration__Group_2_0_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Group_2_0__0__Impl"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14401:1: rule__XVariableDeclaration__Group_2_0_0__0 : rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 ;
+ public final void rule__XVariableDeclaration__Group_2_0_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14405:1: ( rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14406:2: rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group_2_0_0__0__Impl_in_rule__XVariableDeclaration__Group_2_0_0__029021);
+ rule__XVariableDeclaration__Group_2_0_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group_2_0_0__1_in_rule__XVariableDeclaration__Group_2_0_0__029024);
+ rule__XVariableDeclaration__Group_2_0_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Group_2_0_0__0"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14413:1: rule__XVariableDeclaration__Group_2_0_0__0__Impl : ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) ;
+ public final void rule__XVariableDeclaration__Group_2_0_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14417:1: ( ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14418:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14418:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14419:1: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14420:1: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14420:2: rule__XVariableDeclaration__TypeAssignment_2_0_0_0
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__TypeAssignment_2_0_0_0_in_rule__XVariableDeclaration__Group_2_0_0__0__Impl29051);
+ rule__XVariableDeclaration__TypeAssignment_2_0_0_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Group_2_0_0__0__Impl"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14430:1: rule__XVariableDeclaration__Group_2_0_0__1 : rule__XVariableDeclaration__Group_2_0_0__1__Impl ;
+ public final void rule__XVariableDeclaration__Group_2_0_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14434:1: ( rule__XVariableDeclaration__Group_2_0_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14435:2: rule__XVariableDeclaration__Group_2_0_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group_2_0_0__1__Impl_in_rule__XVariableDeclaration__Group_2_0_0__129081);
+ rule__XVariableDeclaration__Group_2_0_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Group_2_0_0__1"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14441:1: rule__XVariableDeclaration__Group_2_0_0__1__Impl : ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) ;
+ public final void rule__XVariableDeclaration__Group_2_0_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14445:1: ( ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14446:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14446:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14447:1: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14448:1: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14448:2: rule__XVariableDeclaration__NameAssignment_2_0_0_1
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__NameAssignment_2_0_0_1_in_rule__XVariableDeclaration__Group_2_0_0__1__Impl29108);
+ rule__XVariableDeclaration__NameAssignment_2_0_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Group_2_0_0__1__Impl"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Group_3__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14462:1: rule__XVariableDeclaration__Group_3__0 : rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 ;
+ public final void rule__XVariableDeclaration__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14466:1: ( rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14467:2: rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group_3__0__Impl_in_rule__XVariableDeclaration__Group_3__029142);
+ rule__XVariableDeclaration__Group_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group_3__1_in_rule__XVariableDeclaration__Group_3__029145);
+ rule__XVariableDeclaration__Group_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Group_3__0"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Group_3__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14474:1: rule__XVariableDeclaration__Group_3__0__Impl : ( '=' ) ;
+ public final void rule__XVariableDeclaration__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14478:1: ( ( '=' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14479:1: ( '=' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14479:1: ( '=' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14480:1: '='
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0());
+ }
+ match(input,13,FOLLOW_13_in_rule__XVariableDeclaration__Group_3__0__Impl29173); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Group_3__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14493:1: rule__XVariableDeclaration__Group_3__1 : rule__XVariableDeclaration__Group_3__1__Impl ;
+ public final void rule__XVariableDeclaration__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14497:1: ( rule__XVariableDeclaration__Group_3__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14498:2: rule__XVariableDeclaration__Group_3__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group_3__1__Impl_in_rule__XVariableDeclaration__Group_3__129204);
+ rule__XVariableDeclaration__Group_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Group_3__1"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__Group_3__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14504:1: rule__XVariableDeclaration__Group_3__1__Impl : ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) ;
+ public final void rule__XVariableDeclaration__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14508:1: ( ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14509:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14509:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14510:1: ( rule__XVariableDeclaration__RightAssignment_3_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14511:1: ( rule__XVariableDeclaration__RightAssignment_3_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14511:2: rule__XVariableDeclaration__RightAssignment_3_1
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__RightAssignment_3_1_in_rule__XVariableDeclaration__Group_3__1__Impl29231);
+ rule__XVariableDeclaration__RightAssignment_3_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__JvmFormalParameter__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14525:1: rule__JvmFormalParameter__Group__0 : rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 ;
+ public final void rule__JvmFormalParameter__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14529:1: ( rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14530:2: rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1
+ {
+ pushFollow(FOLLOW_rule__JvmFormalParameter__Group__0__Impl_in_rule__JvmFormalParameter__Group__029265);
+ rule__JvmFormalParameter__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__JvmFormalParameter__Group__1_in_rule__JvmFormalParameter__Group__029268);
+ rule__JvmFormalParameter__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmFormalParameter__Group__0"
+
+
+ // $ANTLR start "rule__JvmFormalParameter__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14537:1: rule__JvmFormalParameter__Group__0__Impl : ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) ;
+ public final void rule__JvmFormalParameter__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14541:1: ( ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14542:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14542:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14543:1: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14544:1: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
+ int alt92=2;
+ int LA92_0 = input.LA(1);
+
+ if ( (LA92_0==RULE_ID) ) {
+ int LA92_1 = input.LA(2);
+
+ if ( (LA92_1==RULE_ID||LA92_1==25||LA92_1==40||LA92_1==74) ) {
+ alt92=1;
+ }
+ }
+ else if ( (LA92_0==29||LA92_0==77) ) {
+ alt92=1;
+ }
+ switch (alt92) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14544:2: rule__JvmFormalParameter__ParameterTypeAssignment_0
+ {
+ pushFollow(FOLLOW_rule__JvmFormalParameter__ParameterTypeAssignment_0_in_rule__JvmFormalParameter__Group__0__Impl29295);
+ rule__JvmFormalParameter__ParameterTypeAssignment_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmFormalParameter__Group__0__Impl"
+
+
+ // $ANTLR start "rule__JvmFormalParameter__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14554:1: rule__JvmFormalParameter__Group__1 : rule__JvmFormalParameter__Group__1__Impl ;
+ public final void rule__JvmFormalParameter__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14558:1: ( rule__JvmFormalParameter__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14559:2: rule__JvmFormalParameter__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__JvmFormalParameter__Group__1__Impl_in_rule__JvmFormalParameter__Group__129326);
+ rule__JvmFormalParameter__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmFormalParameter__Group__1"
+
+
+ // $ANTLR start "rule__JvmFormalParameter__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14565:1: rule__JvmFormalParameter__Group__1__Impl : ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) ;
+ public final void rule__JvmFormalParameter__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14569:1: ( ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14570:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14570:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14571:1: ( rule__JvmFormalParameter__NameAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14572:1: ( rule__JvmFormalParameter__NameAssignment_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14572:2: rule__JvmFormalParameter__NameAssignment_1
+ {
+ pushFollow(FOLLOW_rule__JvmFormalParameter__NameAssignment_1_in_rule__JvmFormalParameter__Group__1__Impl29353);
+ rule__JvmFormalParameter__NameAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmFormalParameter__Group__1__Impl"
+
+
+ // $ANTLR start "rule__FullJvmFormalParameter__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14586:1: rule__FullJvmFormalParameter__Group__0 : rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 ;
+ public final void rule__FullJvmFormalParameter__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14590:1: ( rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14591:2: rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1
+ {
+ pushFollow(FOLLOW_rule__FullJvmFormalParameter__Group__0__Impl_in_rule__FullJvmFormalParameter__Group__029387);
+ rule__FullJvmFormalParameter__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__FullJvmFormalParameter__Group__1_in_rule__FullJvmFormalParameter__Group__029390);
+ rule__FullJvmFormalParameter__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FullJvmFormalParameter__Group__0"
+
+
+ // $ANTLR start "rule__FullJvmFormalParameter__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14598:1: rule__FullJvmFormalParameter__Group__0__Impl : ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) ;
+ public final void rule__FullJvmFormalParameter__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14602:1: ( ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14603:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14603:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14604:1: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14605:1: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14605:2: rule__FullJvmFormalParameter__ParameterTypeAssignment_0
+ {
+ pushFollow(FOLLOW_rule__FullJvmFormalParameter__ParameterTypeAssignment_0_in_rule__FullJvmFormalParameter__Group__0__Impl29417);
+ rule__FullJvmFormalParameter__ParameterTypeAssignment_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FullJvmFormalParameter__Group__0__Impl"
+
+
+ // $ANTLR start "rule__FullJvmFormalParameter__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14615:1: rule__FullJvmFormalParameter__Group__1 : rule__FullJvmFormalParameter__Group__1__Impl ;
+ public final void rule__FullJvmFormalParameter__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14619:1: ( rule__FullJvmFormalParameter__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14620:2: rule__FullJvmFormalParameter__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__FullJvmFormalParameter__Group__1__Impl_in_rule__FullJvmFormalParameter__Group__129447);
+ rule__FullJvmFormalParameter__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FullJvmFormalParameter__Group__1"
+
+
+ // $ANTLR start "rule__FullJvmFormalParameter__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14626:1: rule__FullJvmFormalParameter__Group__1__Impl : ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) ;
+ public final void rule__FullJvmFormalParameter__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14630:1: ( ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14631:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14631:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14632:1: ( rule__FullJvmFormalParameter__NameAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14633:1: ( rule__FullJvmFormalParameter__NameAssignment_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14633:2: rule__FullJvmFormalParameter__NameAssignment_1
+ {
+ pushFollow(FOLLOW_rule__FullJvmFormalParameter__NameAssignment_1_in_rule__FullJvmFormalParameter__Group__1__Impl29474);
+ rule__FullJvmFormalParameter__NameAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FullJvmFormalParameter__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14647:1: rule__XFeatureCall__Group__0 : rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 ;
+ public final void rule__XFeatureCall__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14651:1: ( rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14652:2: rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group__0__Impl_in_rule__XFeatureCall__Group__029508);
+ rule__XFeatureCall__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XFeatureCall__Group__1_in_rule__XFeatureCall__Group__029511);
+ rule__XFeatureCall__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group__0"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14659:1: rule__XFeatureCall__Group__0__Impl : ( () ) ;
+ public final void rule__XFeatureCall__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14663:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14664:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14664:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14665:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14666:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14668:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14678:1: rule__XFeatureCall__Group__1 : rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 ;
+ public final void rule__XFeatureCall__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14682:1: ( rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14683:2: rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group__1__Impl_in_rule__XFeatureCall__Group__129569);
+ rule__XFeatureCall__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XFeatureCall__Group__2_in_rule__XFeatureCall__Group__129572);
+ rule__XFeatureCall__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group__1"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14690:1: rule__XFeatureCall__Group__1__Impl : ( ( rule__XFeatureCall__Group_1__0 )? ) ;
+ public final void rule__XFeatureCall__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14694:1: ( ( ( rule__XFeatureCall__Group_1__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14695:1: ( ( rule__XFeatureCall__Group_1__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14695:1: ( ( rule__XFeatureCall__Group_1__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14696:1: ( rule__XFeatureCall__Group_1__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getGroup_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14697:1: ( rule__XFeatureCall__Group_1__0 )?
+ int alt93=2;
+ int LA93_0 = input.LA(1);
+
+ if ( (LA93_0==25) ) {
+ alt93=1;
+ }
+ switch (alt93) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14697:2: rule__XFeatureCall__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_1__0_in_rule__XFeatureCall__Group__1__Impl29599);
+ rule__XFeatureCall__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14707:1: rule__XFeatureCall__Group__2 : rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 ;
+ public final void rule__XFeatureCall__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14711:1: ( rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14712:2: rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group__2__Impl_in_rule__XFeatureCall__Group__229630);
+ rule__XFeatureCall__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XFeatureCall__Group__3_in_rule__XFeatureCall__Group__229633);
+ rule__XFeatureCall__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group__2"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14719:1: rule__XFeatureCall__Group__2__Impl : ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) ;
+ public final void rule__XFeatureCall__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14723:1: ( ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14724:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14724:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14725:1: ( rule__XFeatureCall__FeatureAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14726:1: ( rule__XFeatureCall__FeatureAssignment_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14726:2: rule__XFeatureCall__FeatureAssignment_2
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__FeatureAssignment_2_in_rule__XFeatureCall__Group__2__Impl29660);
+ rule__XFeatureCall__FeatureAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14736:1: rule__XFeatureCall__Group__3 : rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 ;
+ public final void rule__XFeatureCall__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14740:1: ( rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14741:2: rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group__3__Impl_in_rule__XFeatureCall__Group__329690);
+ rule__XFeatureCall__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XFeatureCall__Group__4_in_rule__XFeatureCall__Group__329693);
+ rule__XFeatureCall__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group__3"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14748:1: rule__XFeatureCall__Group__3__Impl : ( ( rule__XFeatureCall__Group_3__0 )? ) ;
+ public final void rule__XFeatureCall__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14752:1: ( ( ( rule__XFeatureCall__Group_3__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14753:1: ( ( rule__XFeatureCall__Group_3__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14753:1: ( ( rule__XFeatureCall__Group_3__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14754:1: ( rule__XFeatureCall__Group_3__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getGroup_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14755:1: ( rule__XFeatureCall__Group_3__0 )?
+ int alt94=2;
+ alt94 = dfa94.predict(input);
+ switch (alt94) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14755:2: rule__XFeatureCall__Group_3__0
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_3__0_in_rule__XFeatureCall__Group__3__Impl29720);
+ rule__XFeatureCall__Group_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getGroup_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group__3__Impl"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14765:1: rule__XFeatureCall__Group__4 : rule__XFeatureCall__Group__4__Impl ;
+ public final void rule__XFeatureCall__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14769:1: ( rule__XFeatureCall__Group__4__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14770:2: rule__XFeatureCall__Group__4__Impl
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group__4__Impl_in_rule__XFeatureCall__Group__429751);
+ rule__XFeatureCall__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group__4"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14776:1: rule__XFeatureCall__Group__4__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) ;
+ public final void rule__XFeatureCall__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14780:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14781:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14781:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14782:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14783:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
+ int alt95=2;
+ alt95 = dfa95.predict(input);
+ switch (alt95) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14783:2: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__FeatureCallArgumentsAssignment_4_in_rule__XFeatureCall__Group__4__Impl29778);
+ rule__XFeatureCall__FeatureCallArgumentsAssignment_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group__4__Impl"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14803:1: rule__XFeatureCall__Group_1__0 : rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 ;
+ public final void rule__XFeatureCall__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14807:1: ( rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14808:2: rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_1__0__Impl_in_rule__XFeatureCall__Group_1__029819);
+ rule__XFeatureCall__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_1__1_in_rule__XFeatureCall__Group_1__029822);
+ rule__XFeatureCall__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_1__0"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14815:1: rule__XFeatureCall__Group_1__0__Impl : ( '<' ) ;
+ public final void rule__XFeatureCall__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14819:1: ( ( '<' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14820:1: ( '<' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14820:1: ( '<' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14821:1: '<'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0());
+ }
+ match(input,25,FOLLOW_25_in_rule__XFeatureCall__Group_1__0__Impl29850); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14834:1: rule__XFeatureCall__Group_1__1 : rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 ;
+ public final void rule__XFeatureCall__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14838:1: ( rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14839:2: rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_1__1__Impl_in_rule__XFeatureCall__Group_1__129881);
+ rule__XFeatureCall__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_1__2_in_rule__XFeatureCall__Group_1__129884);
+ rule__XFeatureCall__Group_1__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_1__1"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14846:1: rule__XFeatureCall__Group_1__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) ;
+ public final void rule__XFeatureCall__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14850:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14851:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14851:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14852:1: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14853:1: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14853:2: rule__XFeatureCall__TypeArgumentsAssignment_1_1
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__TypeArgumentsAssignment_1_1_in_rule__XFeatureCall__Group_1__1__Impl29911);
+ rule__XFeatureCall__TypeArgumentsAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_1__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14863:1: rule__XFeatureCall__Group_1__2 : rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 ;
+ public final void rule__XFeatureCall__Group_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14867:1: ( rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14868:2: rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_1__2__Impl_in_rule__XFeatureCall__Group_1__229941);
+ rule__XFeatureCall__Group_1__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_1__3_in_rule__XFeatureCall__Group_1__229944);
+ rule__XFeatureCall__Group_1__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_1__2"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_1__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14875:1: rule__XFeatureCall__Group_1__2__Impl : ( ( rule__XFeatureCall__Group_1_2__0 )* ) ;
+ public final void rule__XFeatureCall__Group_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14879:1: ( ( ( rule__XFeatureCall__Group_1_2__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14880:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14880:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14881:1: ( rule__XFeatureCall__Group_1_2__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getGroup_1_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14882:1: ( rule__XFeatureCall__Group_1_2__0 )*
+ loop96:
+ do {
+ int alt96=2;
+ int LA96_0 = input.LA(1);
+
+ if ( (LA96_0==59) ) {
+ alt96=1;
+ }
+
+
+ switch (alt96) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14882:2: rule__XFeatureCall__Group_1_2__0
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_1_2__0_in_rule__XFeatureCall__Group_1__2__Impl29971);
+ rule__XFeatureCall__Group_1_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop96;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getGroup_1_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_1__2__Impl"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_1__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14892:1: rule__XFeatureCall__Group_1__3 : rule__XFeatureCall__Group_1__3__Impl ;
+ public final void rule__XFeatureCall__Group_1__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14896:1: ( rule__XFeatureCall__Group_1__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14897:2: rule__XFeatureCall__Group_1__3__Impl
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_1__3__Impl_in_rule__XFeatureCall__Group_1__330002);
+ rule__XFeatureCall__Group_1__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_1__3"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_1__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14903:1: rule__XFeatureCall__Group_1__3__Impl : ( '>' ) ;
+ public final void rule__XFeatureCall__Group_1__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14907:1: ( ( '>' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14908:1: ( '>' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14908:1: ( '>' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14909:1: '>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3());
+ }
+ match(input,24,FOLLOW_24_in_rule__XFeatureCall__Group_1__3__Impl30030); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_1__3__Impl"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_1_2__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14930:1: rule__XFeatureCall__Group_1_2__0 : rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 ;
+ public final void rule__XFeatureCall__Group_1_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14934:1: ( rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14935:2: rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_1_2__0__Impl_in_rule__XFeatureCall__Group_1_2__030069);
+ rule__XFeatureCall__Group_1_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_1_2__1_in_rule__XFeatureCall__Group_1_2__030072);
+ rule__XFeatureCall__Group_1_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_1_2__0"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_1_2__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14942:1: rule__XFeatureCall__Group_1_2__0__Impl : ( ',' ) ;
+ public final void rule__XFeatureCall__Group_1_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14946:1: ( ( ',' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14947:1: ( ',' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14947:1: ( ',' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14948:1: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0());
+ }
+ match(input,59,FOLLOW_59_in_rule__XFeatureCall__Group_1_2__0__Impl30100); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_1_2__0__Impl"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_1_2__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14961:1: rule__XFeatureCall__Group_1_2__1 : rule__XFeatureCall__Group_1_2__1__Impl ;
+ public final void rule__XFeatureCall__Group_1_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14965:1: ( rule__XFeatureCall__Group_1_2__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14966:2: rule__XFeatureCall__Group_1_2__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_1_2__1__Impl_in_rule__XFeatureCall__Group_1_2__130131);
+ rule__XFeatureCall__Group_1_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_1_2__1"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_1_2__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14972:1: rule__XFeatureCall__Group_1_2__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) ;
+ public final void rule__XFeatureCall__Group_1_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14976:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14977:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14977:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14978:1: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14979:1: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14979:2: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__TypeArgumentsAssignment_1_2_1_in_rule__XFeatureCall__Group_1_2__1__Impl30158);
+ rule__XFeatureCall__TypeArgumentsAssignment_1_2_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_1_2__1__Impl"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_3__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14993:1: rule__XFeatureCall__Group_3__0 : rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 ;
+ public final void rule__XFeatureCall__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14997:1: ( rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14998:2: rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_3__0__Impl_in_rule__XFeatureCall__Group_3__030192);
+ rule__XFeatureCall__Group_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_3__1_in_rule__XFeatureCall__Group_3__030195);
+ rule__XFeatureCall__Group_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_3__0"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_3__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15005:1: rule__XFeatureCall__Group_3__0__Impl : ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) ;
+ public final void rule__XFeatureCall__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15009:1: ( ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15010:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15010:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15011:1: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15012:1: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15012:2: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__ExplicitOperationCallAssignment_3_0_in_rule__XFeatureCall__Group_3__0__Impl30222);
+ rule__XFeatureCall__ExplicitOperationCallAssignment_3_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_3__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15022:1: rule__XFeatureCall__Group_3__1 : rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 ;
+ public final void rule__XFeatureCall__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15026:1: ( rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15027:2: rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_3__1__Impl_in_rule__XFeatureCall__Group_3__130252);
+ rule__XFeatureCall__Group_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_3__2_in_rule__XFeatureCall__Group_3__130255);
+ rule__XFeatureCall__Group_3__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_3__1"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_3__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15034:1: rule__XFeatureCall__Group_3__1__Impl : ( ( rule__XFeatureCall__Alternatives_3_1 )? ) ;
+ public final void rule__XFeatureCall__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15038:1: ( ( ( rule__XFeatureCall__Alternatives_3_1 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15039:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15039:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15040:1: ( rule__XFeatureCall__Alternatives_3_1 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15041:1: ( rule__XFeatureCall__Alternatives_3_1 )?
+ int alt97=2;
+ int LA97_0 = input.LA(1);
+
+ if ( ((LA97_0>=RULE_ID && LA97_0<=RULE_STRING)||LA97_0==25||LA97_0==29||(LA97_0>=33 && LA97_0<=34)||LA97_0==39||(LA97_0>=42 && LA97_0<=47)||LA97_0==49||(LA97_0>=73 && LA97_0<=74)||(LA97_0>=77 && LA97_0<=78)||LA97_0==80||(LA97_0>=83 && LA97_0<=91)||LA97_0==98||LA97_0==100) ) {
+ alt97=1;
+ }
+ switch (alt97) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15041:2: rule__XFeatureCall__Alternatives_3_1
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Alternatives_3_1_in_rule__XFeatureCall__Group_3__1__Impl30282);
+ rule__XFeatureCall__Alternatives_3_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_3__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15051:1: rule__XFeatureCall__Group_3__2 : rule__XFeatureCall__Group_3__2__Impl ;
+ public final void rule__XFeatureCall__Group_3__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15055:1: ( rule__XFeatureCall__Group_3__2__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15056:2: rule__XFeatureCall__Group_3__2__Impl
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_3__2__Impl_in_rule__XFeatureCall__Group_3__230313);
+ rule__XFeatureCall__Group_3__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_3__2"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_3__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15062:1: rule__XFeatureCall__Group_3__2__Impl : ( ')' ) ;
+ public final void rule__XFeatureCall__Group_3__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15066:1: ( ( ')' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15067:1: ( ')' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15067:1: ( ')' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15068:1: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2());
+ }
+ match(input,72,FOLLOW_72_in_rule__XFeatureCall__Group_3__2__Impl30341); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_3__2__Impl"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_3_1_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15087:1: rule__XFeatureCall__Group_3_1_1__0 : rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 ;
+ public final void rule__XFeatureCall__Group_3_1_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15091:1: ( rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15092:2: rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_3_1_1__0__Impl_in_rule__XFeatureCall__Group_3_1_1__030378);
+ rule__XFeatureCall__Group_3_1_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_3_1_1__1_in_rule__XFeatureCall__Group_3_1_1__030381);
+ rule__XFeatureCall__Group_3_1_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_3_1_1__0"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_3_1_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15099:1: rule__XFeatureCall__Group_3_1_1__0__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) ;
+ public final void rule__XFeatureCall__Group_3_1_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15103:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15104:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15104:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15105:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15106:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15106:2: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0_in_rule__XFeatureCall__Group_3_1_1__0__Impl30408);
+ rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_3_1_1__0__Impl"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_3_1_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15116:1: rule__XFeatureCall__Group_3_1_1__1 : rule__XFeatureCall__Group_3_1_1__1__Impl ;
+ public final void rule__XFeatureCall__Group_3_1_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15120:1: ( rule__XFeatureCall__Group_3_1_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15121:2: rule__XFeatureCall__Group_3_1_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_3_1_1__1__Impl_in_rule__XFeatureCall__Group_3_1_1__130438);
+ rule__XFeatureCall__Group_3_1_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_3_1_1__1"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_3_1_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15127:1: rule__XFeatureCall__Group_3_1_1__1__Impl : ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) ;
+ public final void rule__XFeatureCall__Group_3_1_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15131:1: ( ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15132:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15132:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15133:1: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15134:1: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
+ loop98:
+ do {
+ int alt98=2;
+ int LA98_0 = input.LA(1);
+
+ if ( (LA98_0==59) ) {
+ alt98=1;
+ }
+
+
+ switch (alt98) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15134:2: rule__XFeatureCall__Group_3_1_1_1__0
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_3_1_1_1__0_in_rule__XFeatureCall__Group_3_1_1__1__Impl30465);
+ rule__XFeatureCall__Group_3_1_1_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop98;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_3_1_1__1__Impl"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15148:1: rule__XFeatureCall__Group_3_1_1_1__0 : rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 ;
+ public final void rule__XFeatureCall__Group_3_1_1_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15152:1: ( rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15153:2: rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_3_1_1_1__0__Impl_in_rule__XFeatureCall__Group_3_1_1_1__030500);
+ rule__XFeatureCall__Group_3_1_1_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_3_1_1_1__1_in_rule__XFeatureCall__Group_3_1_1_1__030503);
+ rule__XFeatureCall__Group_3_1_1_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_3_1_1_1__0"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15160:1: rule__XFeatureCall__Group_3_1_1_1__0__Impl : ( ',' ) ;
+ public final void rule__XFeatureCall__Group_3_1_1_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15164:1: ( ( ',' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15165:1: ( ',' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15165:1: ( ',' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15166:1: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0());
+ }
+ match(input,59,FOLLOW_59_in_rule__XFeatureCall__Group_3_1_1_1__0__Impl30531); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_3_1_1_1__0__Impl"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15179:1: rule__XFeatureCall__Group_3_1_1_1__1 : rule__XFeatureCall__Group_3_1_1_1__1__Impl ;
+ public final void rule__XFeatureCall__Group_3_1_1_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15183:1: ( rule__XFeatureCall__Group_3_1_1_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15184:2: rule__XFeatureCall__Group_3_1_1_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_3_1_1_1__1__Impl_in_rule__XFeatureCall__Group_3_1_1_1__130562);
+ rule__XFeatureCall__Group_3_1_1_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_3_1_1_1__1"
+
+
+ // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15190:1: rule__XFeatureCall__Group_3_1_1_1__1__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) ;
+ public final void rule__XFeatureCall__Group_3_1_1_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15194:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15195:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15195:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15196:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15197:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15197:2: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1_in_rule__XFeatureCall__Group_3_1_1_1__1__Impl30589);
+ rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__Group_3_1_1_1__1__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15211:1: rule__XConstructorCall__Group__0 : rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 ;
+ public final void rule__XConstructorCall__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15215:1: ( rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15216:2: rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group__0__Impl_in_rule__XConstructorCall__Group__030623);
+ rule__XConstructorCall__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XConstructorCall__Group__1_in_rule__XConstructorCall__Group__030626);
+ rule__XConstructorCall__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group__0"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15223:1: rule__XConstructorCall__Group__0__Impl : ( () ) ;
+ public final void rule__XConstructorCall__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15227:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15228:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15228:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15229:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15230:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15232:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15242:1: rule__XConstructorCall__Group__1 : rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 ;
+ public final void rule__XConstructorCall__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15246:1: ( rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15247:2: rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group__1__Impl_in_rule__XConstructorCall__Group__130684);
+ rule__XConstructorCall__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XConstructorCall__Group__2_in_rule__XConstructorCall__Group__130687);
+ rule__XConstructorCall__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group__1"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15254:1: rule__XConstructorCall__Group__1__Impl : ( 'new' ) ;
+ public final void rule__XConstructorCall__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15258:1: ( ( 'new' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15259:1: ( 'new' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15259:1: ( 'new' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15260:1: 'new'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getNewKeyword_1());
+ }
+ match(input,86,FOLLOW_86_in_rule__XConstructorCall__Group__1__Impl30715); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getNewKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15273:1: rule__XConstructorCall__Group__2 : rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 ;
+ public final void rule__XConstructorCall__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15277:1: ( rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15278:2: rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group__2__Impl_in_rule__XConstructorCall__Group__230746);
+ rule__XConstructorCall__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XConstructorCall__Group__3_in_rule__XConstructorCall__Group__230749);
+ rule__XConstructorCall__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group__2"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15285:1: rule__XConstructorCall__Group__2__Impl : ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) ;
+ public final void rule__XConstructorCall__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15289:1: ( ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15290:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15290:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15291:1: ( rule__XConstructorCall__ConstructorAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15292:1: ( rule__XConstructorCall__ConstructorAssignment_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15292:2: rule__XConstructorCall__ConstructorAssignment_2
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__ConstructorAssignment_2_in_rule__XConstructorCall__Group__2__Impl30776);
+ rule__XConstructorCall__ConstructorAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15302:1: rule__XConstructorCall__Group__3 : rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 ;
+ public final void rule__XConstructorCall__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15306:1: ( rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15307:2: rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group__3__Impl_in_rule__XConstructorCall__Group__330806);
+ rule__XConstructorCall__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XConstructorCall__Group__4_in_rule__XConstructorCall__Group__330809);
+ rule__XConstructorCall__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group__3"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15314:1: rule__XConstructorCall__Group__3__Impl : ( ( rule__XConstructorCall__Group_3__0 )? ) ;
+ public final void rule__XConstructorCall__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15318:1: ( ( ( rule__XConstructorCall__Group_3__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15319:1: ( ( rule__XConstructorCall__Group_3__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15319:1: ( ( rule__XConstructorCall__Group_3__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15320:1: ( rule__XConstructorCall__Group_3__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getGroup_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15321:1: ( rule__XConstructorCall__Group_3__0 )?
+ int alt99=2;
+ alt99 = dfa99.predict(input);
+ switch (alt99) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15321:2: rule__XConstructorCall__Group_3__0
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_3__0_in_rule__XConstructorCall__Group__3__Impl30836);
+ rule__XConstructorCall__Group_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getGroup_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group__3__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15331:1: rule__XConstructorCall__Group__4 : rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 ;
+ public final void rule__XConstructorCall__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15335:1: ( rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15336:2: rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group__4__Impl_in_rule__XConstructorCall__Group__430867);
+ rule__XConstructorCall__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XConstructorCall__Group__5_in_rule__XConstructorCall__Group__430870);
+ rule__XConstructorCall__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group__4"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15343:1: rule__XConstructorCall__Group__4__Impl : ( ( rule__XConstructorCall__Group_4__0 )? ) ;
+ public final void rule__XConstructorCall__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15347:1: ( ( ( rule__XConstructorCall__Group_4__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15348:1: ( ( rule__XConstructorCall__Group_4__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15348:1: ( ( rule__XConstructorCall__Group_4__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15349:1: ( rule__XConstructorCall__Group_4__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getGroup_4());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15350:1: ( rule__XConstructorCall__Group_4__0 )?
+ int alt100=2;
+ alt100 = dfa100.predict(input);
+ switch (alt100) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15350:2: rule__XConstructorCall__Group_4__0
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_4__0_in_rule__XConstructorCall__Group__4__Impl30897);
+ rule__XConstructorCall__Group_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getGroup_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group__4__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group__5"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15360:1: rule__XConstructorCall__Group__5 : rule__XConstructorCall__Group__5__Impl ;
+ public final void rule__XConstructorCall__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15364:1: ( rule__XConstructorCall__Group__5__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15365:2: rule__XConstructorCall__Group__5__Impl
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group__5__Impl_in_rule__XConstructorCall__Group__530928);
+ rule__XConstructorCall__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group__5"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group__5__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15371:1: rule__XConstructorCall__Group__5__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) ;
+ public final void rule__XConstructorCall__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15375:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15376:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15376:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15377:1: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15378:1: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
+ int alt101=2;
+ alt101 = dfa101.predict(input);
+ switch (alt101) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15378:2: rule__XConstructorCall__ArgumentsAssignment_5
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__ArgumentsAssignment_5_in_rule__XConstructorCall__Group__5__Impl30955);
+ rule__XConstructorCall__ArgumentsAssignment_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group__5__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_3__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15400:1: rule__XConstructorCall__Group_3__0 : rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 ;
+ public final void rule__XConstructorCall__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15404:1: ( rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15405:2: rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_3__0__Impl_in_rule__XConstructorCall__Group_3__030998);
+ rule__XConstructorCall__Group_3__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_3__1_in_rule__XConstructorCall__Group_3__031001);
+ rule__XConstructorCall__Group_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_3__0"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_3__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15412:1: rule__XConstructorCall__Group_3__0__Impl : ( ( '<' ) ) ;
+ public final void rule__XConstructorCall__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15416:1: ( ( ( '<' ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15417:1: ( ( '<' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15417:1: ( ( '<' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15418:1: ( '<' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15419:1: ( '<' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15420:2: '<'
+ {
+ match(input,25,FOLLOW_25_in_rule__XConstructorCall__Group_3__0__Impl31030); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_3__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15431:1: rule__XConstructorCall__Group_3__1 : rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 ;
+ public final void rule__XConstructorCall__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15435:1: ( rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15436:2: rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_3__1__Impl_in_rule__XConstructorCall__Group_3__131062);
+ rule__XConstructorCall__Group_3__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_3__2_in_rule__XConstructorCall__Group_3__131065);
+ rule__XConstructorCall__Group_3__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_3__1"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_3__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15443:1: rule__XConstructorCall__Group_3__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) ;
+ public final void rule__XConstructorCall__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15447:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15448:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15448:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15449:1: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15450:1: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15450:2: rule__XConstructorCall__TypeArgumentsAssignment_3_1
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__TypeArgumentsAssignment_3_1_in_rule__XConstructorCall__Group_3__1__Impl31092);
+ rule__XConstructorCall__TypeArgumentsAssignment_3_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_3__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15460:1: rule__XConstructorCall__Group_3__2 : rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 ;
+ public final void rule__XConstructorCall__Group_3__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15464:1: ( rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15465:2: rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_3__2__Impl_in_rule__XConstructorCall__Group_3__231122);
+ rule__XConstructorCall__Group_3__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_3__3_in_rule__XConstructorCall__Group_3__231125);
+ rule__XConstructorCall__Group_3__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_3__2"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_3__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15472:1: rule__XConstructorCall__Group_3__2__Impl : ( ( rule__XConstructorCall__Group_3_2__0 )* ) ;
+ public final void rule__XConstructorCall__Group_3__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15476:1: ( ( ( rule__XConstructorCall__Group_3_2__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15477:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15477:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15478:1: ( rule__XConstructorCall__Group_3_2__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getGroup_3_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15479:1: ( rule__XConstructorCall__Group_3_2__0 )*
+ loop102:
+ do {
+ int alt102=2;
+ int LA102_0 = input.LA(1);
+
+ if ( (LA102_0==59) ) {
+ alt102=1;
+ }
+
+
+ switch (alt102) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15479:2: rule__XConstructorCall__Group_3_2__0
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_3_2__0_in_rule__XConstructorCall__Group_3__2__Impl31152);
+ rule__XConstructorCall__Group_3_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop102;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getGroup_3_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_3__2__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_3__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15489:1: rule__XConstructorCall__Group_3__3 : rule__XConstructorCall__Group_3__3__Impl ;
+ public final void rule__XConstructorCall__Group_3__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15493:1: ( rule__XConstructorCall__Group_3__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15494:2: rule__XConstructorCall__Group_3__3__Impl
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_3__3__Impl_in_rule__XConstructorCall__Group_3__331183);
+ rule__XConstructorCall__Group_3__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_3__3"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_3__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15500:1: rule__XConstructorCall__Group_3__3__Impl : ( '>' ) ;
+ public final void rule__XConstructorCall__Group_3__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15504:1: ( ( '>' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15505:1: ( '>' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15505:1: ( '>' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15506:1: '>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3());
+ }
+ match(input,24,FOLLOW_24_in_rule__XConstructorCall__Group_3__3__Impl31211); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_3__3__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_3_2__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15527:1: rule__XConstructorCall__Group_3_2__0 : rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 ;
+ public final void rule__XConstructorCall__Group_3_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15531:1: ( rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15532:2: rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_3_2__0__Impl_in_rule__XConstructorCall__Group_3_2__031250);
+ rule__XConstructorCall__Group_3_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_3_2__1_in_rule__XConstructorCall__Group_3_2__031253);
+ rule__XConstructorCall__Group_3_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_3_2__0"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_3_2__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15539:1: rule__XConstructorCall__Group_3_2__0__Impl : ( ',' ) ;
+ public final void rule__XConstructorCall__Group_3_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15543:1: ( ( ',' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15544:1: ( ',' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15544:1: ( ',' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15545:1: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0());
+ }
+ match(input,59,FOLLOW_59_in_rule__XConstructorCall__Group_3_2__0__Impl31281); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_3_2__0__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_3_2__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15558:1: rule__XConstructorCall__Group_3_2__1 : rule__XConstructorCall__Group_3_2__1__Impl ;
+ public final void rule__XConstructorCall__Group_3_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15562:1: ( rule__XConstructorCall__Group_3_2__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15563:2: rule__XConstructorCall__Group_3_2__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_3_2__1__Impl_in_rule__XConstructorCall__Group_3_2__131312);
+ rule__XConstructorCall__Group_3_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_3_2__1"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_3_2__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15569:1: rule__XConstructorCall__Group_3_2__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) ;
+ public final void rule__XConstructorCall__Group_3_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15573:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15574:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15574:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15575:1: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15576:1: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15576:2: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__TypeArgumentsAssignment_3_2_1_in_rule__XConstructorCall__Group_3_2__1__Impl31339);
+ rule__XConstructorCall__TypeArgumentsAssignment_3_2_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_3_2__1__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_4__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15590:1: rule__XConstructorCall__Group_4__0 : rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 ;
+ public final void rule__XConstructorCall__Group_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15594:1: ( rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15595:2: rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_4__0__Impl_in_rule__XConstructorCall__Group_4__031373);
+ rule__XConstructorCall__Group_4__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_4__1_in_rule__XConstructorCall__Group_4__031376);
+ rule__XConstructorCall__Group_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_4__0"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_4__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15602:1: rule__XConstructorCall__Group_4__0__Impl : ( ( '(' ) ) ;
+ public final void rule__XConstructorCall__Group_4__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15606:1: ( ( ( '(' ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15607:1: ( ( '(' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15607:1: ( ( '(' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15608:1: ( '(' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getLeftParenthesisKeyword_4_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15609:1: ( '(' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15610:2: '('
+ {
+ match(input,77,FOLLOW_77_in_rule__XConstructorCall__Group_4__0__Impl31405); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getLeftParenthesisKeyword_4_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_4__0__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_4__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15621:1: rule__XConstructorCall__Group_4__1 : rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 ;
+ public final void rule__XConstructorCall__Group_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15625:1: ( rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15626:2: rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_4__1__Impl_in_rule__XConstructorCall__Group_4__131437);
+ rule__XConstructorCall__Group_4__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_4__2_in_rule__XConstructorCall__Group_4__131440);
+ rule__XConstructorCall__Group_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_4__1"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_4__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15633:1: rule__XConstructorCall__Group_4__1__Impl : ( ( rule__XConstructorCall__Alternatives_4_1 )? ) ;
+ public final void rule__XConstructorCall__Group_4__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15637:1: ( ( ( rule__XConstructorCall__Alternatives_4_1 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15638:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15638:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15639:1: ( rule__XConstructorCall__Alternatives_4_1 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15640:1: ( rule__XConstructorCall__Alternatives_4_1 )?
+ int alt103=2;
+ int LA103_0 = input.LA(1);
+
+ if ( ((LA103_0>=RULE_ID && LA103_0<=RULE_STRING)||LA103_0==25||LA103_0==29||(LA103_0>=33 && LA103_0<=34)||LA103_0==39||(LA103_0>=42 && LA103_0<=47)||LA103_0==49||(LA103_0>=73 && LA103_0<=74)||(LA103_0>=77 && LA103_0<=78)||LA103_0==80||(LA103_0>=83 && LA103_0<=91)||LA103_0==98||LA103_0==100) ) {
+ alt103=1;
+ }
+ switch (alt103) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15640:2: rule__XConstructorCall__Alternatives_4_1
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Alternatives_4_1_in_rule__XConstructorCall__Group_4__1__Impl31467);
+ rule__XConstructorCall__Alternatives_4_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_4__1__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_4__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15650:1: rule__XConstructorCall__Group_4__2 : rule__XConstructorCall__Group_4__2__Impl ;
+ public final void rule__XConstructorCall__Group_4__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15654:1: ( rule__XConstructorCall__Group_4__2__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15655:2: rule__XConstructorCall__Group_4__2__Impl
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_4__2__Impl_in_rule__XConstructorCall__Group_4__231498);
+ rule__XConstructorCall__Group_4__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_4__2"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_4__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15661:1: rule__XConstructorCall__Group_4__2__Impl : ( ')' ) ;
+ public final void rule__XConstructorCall__Group_4__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15665:1: ( ( ')' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15666:1: ( ')' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15666:1: ( ')' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15667:1: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2());
+ }
+ match(input,72,FOLLOW_72_in_rule__XConstructorCall__Group_4__2__Impl31526); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_4__2__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_4_1_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15686:1: rule__XConstructorCall__Group_4_1_1__0 : rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 ;
+ public final void rule__XConstructorCall__Group_4_1_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15690:1: ( rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15691:2: rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_4_1_1__0__Impl_in_rule__XConstructorCall__Group_4_1_1__031563);
+ rule__XConstructorCall__Group_4_1_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_4_1_1__1_in_rule__XConstructorCall__Group_4_1_1__031566);
+ rule__XConstructorCall__Group_4_1_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_4_1_1__0"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_4_1_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15698:1: rule__XConstructorCall__Group_4_1_1__0__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) ;
+ public final void rule__XConstructorCall__Group_4_1_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15702:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15703:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15703:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15704:1: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15705:1: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15705:2: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__ArgumentsAssignment_4_1_1_0_in_rule__XConstructorCall__Group_4_1_1__0__Impl31593);
+ rule__XConstructorCall__ArgumentsAssignment_4_1_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_4_1_1__0__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_4_1_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15715:1: rule__XConstructorCall__Group_4_1_1__1 : rule__XConstructorCall__Group_4_1_1__1__Impl ;
+ public final void rule__XConstructorCall__Group_4_1_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15719:1: ( rule__XConstructorCall__Group_4_1_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15720:2: rule__XConstructorCall__Group_4_1_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_4_1_1__1__Impl_in_rule__XConstructorCall__Group_4_1_1__131623);
+ rule__XConstructorCall__Group_4_1_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_4_1_1__1"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_4_1_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15726:1: rule__XConstructorCall__Group_4_1_1__1__Impl : ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) ;
+ public final void rule__XConstructorCall__Group_4_1_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15730:1: ( ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15731:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15731:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15732:1: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15733:1: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
+ loop104:
+ do {
+ int alt104=2;
+ int LA104_0 = input.LA(1);
+
+ if ( (LA104_0==59) ) {
+ alt104=1;
+ }
+
+
+ switch (alt104) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15733:2: rule__XConstructorCall__Group_4_1_1_1__0
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_4_1_1_1__0_in_rule__XConstructorCall__Group_4_1_1__1__Impl31650);
+ rule__XConstructorCall__Group_4_1_1_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop104;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_4_1_1__1__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15747:1: rule__XConstructorCall__Group_4_1_1_1__0 : rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 ;
+ public final void rule__XConstructorCall__Group_4_1_1_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15751:1: ( rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15752:2: rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_4_1_1_1__0__Impl_in_rule__XConstructorCall__Group_4_1_1_1__031685);
+ rule__XConstructorCall__Group_4_1_1_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_4_1_1_1__1_in_rule__XConstructorCall__Group_4_1_1_1__031688);
+ rule__XConstructorCall__Group_4_1_1_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_4_1_1_1__0"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15759:1: rule__XConstructorCall__Group_4_1_1_1__0__Impl : ( ',' ) ;
+ public final void rule__XConstructorCall__Group_4_1_1_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15763:1: ( ( ',' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15764:1: ( ',' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15764:1: ( ',' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15765:1: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0());
+ }
+ match(input,59,FOLLOW_59_in_rule__XConstructorCall__Group_4_1_1_1__0__Impl31716); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_4_1_1_1__0__Impl"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15778:1: rule__XConstructorCall__Group_4_1_1_1__1 : rule__XConstructorCall__Group_4_1_1_1__1__Impl ;
+ public final void rule__XConstructorCall__Group_4_1_1_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15782:1: ( rule__XConstructorCall__Group_4_1_1_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15783:2: rule__XConstructorCall__Group_4_1_1_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_4_1_1_1__1__Impl_in_rule__XConstructorCall__Group_4_1_1_1__131747);
+ rule__XConstructorCall__Group_4_1_1_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_4_1_1_1__1"
+
+
+ // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15789:1: rule__XConstructorCall__Group_4_1_1_1__1__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) ;
+ public final void rule__XConstructorCall__Group_4_1_1_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15793:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15794:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15794:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15795:1: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15796:1: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15796:2: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1_in_rule__XConstructorCall__Group_4_1_1_1__1__Impl31774);
+ rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__Group_4_1_1_1__1__Impl"
+
+
+ // $ANTLR start "rule__XBooleanLiteral__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15810:1: rule__XBooleanLiteral__Group__0 : rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 ;
+ public final void rule__XBooleanLiteral__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15814:1: ( rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15815:2: rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1
+ {
+ pushFollow(FOLLOW_rule__XBooleanLiteral__Group__0__Impl_in_rule__XBooleanLiteral__Group__031808);
+ rule__XBooleanLiteral__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XBooleanLiteral__Group__1_in_rule__XBooleanLiteral__Group__031811);
+ rule__XBooleanLiteral__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBooleanLiteral__Group__0"
+
+
+ // $ANTLR start "rule__XBooleanLiteral__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15822:1: rule__XBooleanLiteral__Group__0__Impl : ( () ) ;
+ public final void rule__XBooleanLiteral__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15826:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15827:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15827:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15828:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15829:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15831:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBooleanLiteral__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XBooleanLiteral__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15841:1: rule__XBooleanLiteral__Group__1 : rule__XBooleanLiteral__Group__1__Impl ;
+ public final void rule__XBooleanLiteral__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15845:1: ( rule__XBooleanLiteral__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15846:2: rule__XBooleanLiteral__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XBooleanLiteral__Group__1__Impl_in_rule__XBooleanLiteral__Group__131869);
+ rule__XBooleanLiteral__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBooleanLiteral__Group__1"
+
+
+ // $ANTLR start "rule__XBooleanLiteral__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15852:1: rule__XBooleanLiteral__Group__1__Impl : ( ( rule__XBooleanLiteral__Alternatives_1 ) ) ;
+ public final void rule__XBooleanLiteral__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15856:1: ( ( ( rule__XBooleanLiteral__Alternatives_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15857:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15857:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15858:1: ( rule__XBooleanLiteral__Alternatives_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15859:1: ( rule__XBooleanLiteral__Alternatives_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15859:2: rule__XBooleanLiteral__Alternatives_1
+ {
+ pushFollow(FOLLOW_rule__XBooleanLiteral__Alternatives_1_in_rule__XBooleanLiteral__Group__1__Impl31896);
+ rule__XBooleanLiteral__Alternatives_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBooleanLiteral__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XNullLiteral__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15873:1: rule__XNullLiteral__Group__0 : rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 ;
+ public final void rule__XNullLiteral__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15877:1: ( rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15878:2: rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1
+ {
+ pushFollow(FOLLOW_rule__XNullLiteral__Group__0__Impl_in_rule__XNullLiteral__Group__031930);
+ rule__XNullLiteral__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XNullLiteral__Group__1_in_rule__XNullLiteral__Group__031933);
+ rule__XNullLiteral__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XNullLiteral__Group__0"
+
+
+ // $ANTLR start "rule__XNullLiteral__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15885:1: rule__XNullLiteral__Group__0__Impl : ( () ) ;
+ public final void rule__XNullLiteral__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15889:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15890:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15890:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15891:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15892:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15894:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XNullLiteral__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XNullLiteral__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15904:1: rule__XNullLiteral__Group__1 : rule__XNullLiteral__Group__1__Impl ;
+ public final void rule__XNullLiteral__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15908:1: ( rule__XNullLiteral__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15909:2: rule__XNullLiteral__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XNullLiteral__Group__1__Impl_in_rule__XNullLiteral__Group__131991);
+ rule__XNullLiteral__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XNullLiteral__Group__1"
+
+
+ // $ANTLR start "rule__XNullLiteral__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15915:1: rule__XNullLiteral__Group__1__Impl : ( 'null' ) ;
+ public final void rule__XNullLiteral__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15919:1: ( ( 'null' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15920:1: ( 'null' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15920:1: ( 'null' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15921:1: 'null'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXNullLiteralAccess().getNullKeyword_1());
+ }
+ match(input,87,FOLLOW_87_in_rule__XNullLiteral__Group__1__Impl32019); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXNullLiteralAccess().getNullKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XNullLiteral__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XNumberLiteral__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15938:1: rule__XNumberLiteral__Group__0 : rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 ;
+ public final void rule__XNumberLiteral__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15942:1: ( rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15943:2: rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1
+ {
+ pushFollow(FOLLOW_rule__XNumberLiteral__Group__0__Impl_in_rule__XNumberLiteral__Group__032054);
+ rule__XNumberLiteral__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XNumberLiteral__Group__1_in_rule__XNumberLiteral__Group__032057);
+ rule__XNumberLiteral__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XNumberLiteral__Group__0"
+
+
+ // $ANTLR start "rule__XNumberLiteral__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15950:1: rule__XNumberLiteral__Group__0__Impl : ( () ) ;
+ public final void rule__XNumberLiteral__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15954:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15955:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15955:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15956:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15957:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15959:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XNumberLiteral__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XNumberLiteral__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15969:1: rule__XNumberLiteral__Group__1 : rule__XNumberLiteral__Group__1__Impl ;
+ public final void rule__XNumberLiteral__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15973:1: ( rule__XNumberLiteral__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15974:2: rule__XNumberLiteral__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XNumberLiteral__Group__1__Impl_in_rule__XNumberLiteral__Group__132115);
+ rule__XNumberLiteral__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XNumberLiteral__Group__1"
+
+
+ // $ANTLR start "rule__XNumberLiteral__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15980:1: rule__XNumberLiteral__Group__1__Impl : ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) ;
+ public final void rule__XNumberLiteral__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15984:1: ( ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15985:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15985:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15986:1: ( rule__XNumberLiteral__ValueAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15987:1: ( rule__XNumberLiteral__ValueAssignment_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15987:2: rule__XNumberLiteral__ValueAssignment_1
+ {
+ pushFollow(FOLLOW_rule__XNumberLiteral__ValueAssignment_1_in_rule__XNumberLiteral__Group__1__Impl32142);
+ rule__XNumberLiteral__ValueAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XNumberLiteral__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XStringLiteral__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16001:1: rule__XStringLiteral__Group__0 : rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 ;
+ public final void rule__XStringLiteral__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16005:1: ( rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16006:2: rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1
+ {
+ pushFollow(FOLLOW_rule__XStringLiteral__Group__0__Impl_in_rule__XStringLiteral__Group__032176);
+ rule__XStringLiteral__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XStringLiteral__Group__1_in_rule__XStringLiteral__Group__032179);
+ rule__XStringLiteral__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XStringLiteral__Group__0"
+
+
+ // $ANTLR start "rule__XStringLiteral__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16013:1: rule__XStringLiteral__Group__0__Impl : ( () ) ;
+ public final void rule__XStringLiteral__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16017:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16018:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16018:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16019:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16020:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16022:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XStringLiteral__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XStringLiteral__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16032:1: rule__XStringLiteral__Group__1 : rule__XStringLiteral__Group__1__Impl ;
+ public final void rule__XStringLiteral__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16036:1: ( rule__XStringLiteral__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16037:2: rule__XStringLiteral__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XStringLiteral__Group__1__Impl_in_rule__XStringLiteral__Group__132237);
+ rule__XStringLiteral__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XStringLiteral__Group__1"
+
+
+ // $ANTLR start "rule__XStringLiteral__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16043:1: rule__XStringLiteral__Group__1__Impl : ( ( rule__XStringLiteral__ValueAssignment_1 ) ) ;
+ public final void rule__XStringLiteral__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16047:1: ( ( ( rule__XStringLiteral__ValueAssignment_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16048:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16048:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16049:1: ( rule__XStringLiteral__ValueAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXStringLiteralAccess().getValueAssignment_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16050:1: ( rule__XStringLiteral__ValueAssignment_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16050:2: rule__XStringLiteral__ValueAssignment_1
+ {
+ pushFollow(FOLLOW_rule__XStringLiteral__ValueAssignment_1_in_rule__XStringLiteral__Group__1__Impl32264);
+ rule__XStringLiteral__ValueAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXStringLiteralAccess().getValueAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XStringLiteral__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XTypeLiteral__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16064:1: rule__XTypeLiteral__Group__0 : rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 ;
+ public final void rule__XTypeLiteral__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16068:1: ( rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16069:2: rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1
+ {
+ pushFollow(FOLLOW_rule__XTypeLiteral__Group__0__Impl_in_rule__XTypeLiteral__Group__032298);
+ rule__XTypeLiteral__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XTypeLiteral__Group__1_in_rule__XTypeLiteral__Group__032301);
+ rule__XTypeLiteral__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTypeLiteral__Group__0"
+
+
+ // $ANTLR start "rule__XTypeLiteral__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16076:1: rule__XTypeLiteral__Group__0__Impl : ( () ) ;
+ public final void rule__XTypeLiteral__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16080:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16081:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16081:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16082:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16083:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16085:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTypeLiteral__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XTypeLiteral__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16095:1: rule__XTypeLiteral__Group__1 : rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 ;
+ public final void rule__XTypeLiteral__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16099:1: ( rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16100:2: rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2
+ {
+ pushFollow(FOLLOW_rule__XTypeLiteral__Group__1__Impl_in_rule__XTypeLiteral__Group__132359);
+ rule__XTypeLiteral__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XTypeLiteral__Group__2_in_rule__XTypeLiteral__Group__132362);
+ rule__XTypeLiteral__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTypeLiteral__Group__1"
+
+
+ // $ANTLR start "rule__XTypeLiteral__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16107:1: rule__XTypeLiteral__Group__1__Impl : ( 'typeof' ) ;
+ public final void rule__XTypeLiteral__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16111:1: ( ( 'typeof' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16112:1: ( 'typeof' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16112:1: ( 'typeof' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16113:1: 'typeof'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1());
+ }
+ match(input,88,FOLLOW_88_in_rule__XTypeLiteral__Group__1__Impl32390); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTypeLiteral__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XTypeLiteral__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16126:1: rule__XTypeLiteral__Group__2 : rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 ;
+ public final void rule__XTypeLiteral__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16130:1: ( rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16131:2: rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3
+ {
+ pushFollow(FOLLOW_rule__XTypeLiteral__Group__2__Impl_in_rule__XTypeLiteral__Group__232421);
+ rule__XTypeLiteral__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XTypeLiteral__Group__3_in_rule__XTypeLiteral__Group__232424);
+ rule__XTypeLiteral__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTypeLiteral__Group__2"
+
+
+ // $ANTLR start "rule__XTypeLiteral__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16138:1: rule__XTypeLiteral__Group__2__Impl : ( '(' ) ;
+ public final void rule__XTypeLiteral__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16142:1: ( ( '(' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16143:1: ( '(' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16143:1: ( '(' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16144:1: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2());
+ }
+ match(input,77,FOLLOW_77_in_rule__XTypeLiteral__Group__2__Impl32452); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTypeLiteral__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XTypeLiteral__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16157:1: rule__XTypeLiteral__Group__3 : rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 ;
+ public final void rule__XTypeLiteral__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16161:1: ( rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16162:2: rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4
+ {
+ pushFollow(FOLLOW_rule__XTypeLiteral__Group__3__Impl_in_rule__XTypeLiteral__Group__332483);
+ rule__XTypeLiteral__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XTypeLiteral__Group__4_in_rule__XTypeLiteral__Group__332486);
+ rule__XTypeLiteral__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTypeLiteral__Group__3"
+
+
+ // $ANTLR start "rule__XTypeLiteral__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16169:1: rule__XTypeLiteral__Group__3__Impl : ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) ;
+ public final void rule__XTypeLiteral__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16173:1: ( ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16174:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16174:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16175:1: ( rule__XTypeLiteral__TypeAssignment_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16176:1: ( rule__XTypeLiteral__TypeAssignment_3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16176:2: rule__XTypeLiteral__TypeAssignment_3
+ {
+ pushFollow(FOLLOW_rule__XTypeLiteral__TypeAssignment_3_in_rule__XTypeLiteral__Group__3__Impl32513);
+ rule__XTypeLiteral__TypeAssignment_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTypeLiteral__Group__3__Impl"
+
+
+ // $ANTLR start "rule__XTypeLiteral__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16186:1: rule__XTypeLiteral__Group__4 : rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 ;
+ public final void rule__XTypeLiteral__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16190:1: ( rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16191:2: rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5
+ {
+ pushFollow(FOLLOW_rule__XTypeLiteral__Group__4__Impl_in_rule__XTypeLiteral__Group__432543);
+ rule__XTypeLiteral__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XTypeLiteral__Group__5_in_rule__XTypeLiteral__Group__432546);
+ rule__XTypeLiteral__Group__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTypeLiteral__Group__4"
+
+
+ // $ANTLR start "rule__XTypeLiteral__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16198:1: rule__XTypeLiteral__Group__4__Impl : ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) ;
+ public final void rule__XTypeLiteral__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16202:1: ( ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16203:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16203:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16204:1: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16205:1: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
+ loop105:
+ do {
+ int alt105=2;
+ int LA105_0 = input.LA(1);
+
+ if ( (LA105_0==74) ) {
+ alt105=1;
+ }
+
+
+ switch (alt105) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16205:2: rule__XTypeLiteral__ArrayDimensionsAssignment_4
+ {
+ pushFollow(FOLLOW_rule__XTypeLiteral__ArrayDimensionsAssignment_4_in_rule__XTypeLiteral__Group__4__Impl32573);
+ rule__XTypeLiteral__ArrayDimensionsAssignment_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop105;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTypeLiteral__Group__4__Impl"
+
+
+ // $ANTLR start "rule__XTypeLiteral__Group__5"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16215:1: rule__XTypeLiteral__Group__5 : rule__XTypeLiteral__Group__5__Impl ;
+ public final void rule__XTypeLiteral__Group__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16219:1: ( rule__XTypeLiteral__Group__5__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16220:2: rule__XTypeLiteral__Group__5__Impl
+ {
+ pushFollow(FOLLOW_rule__XTypeLiteral__Group__5__Impl_in_rule__XTypeLiteral__Group__532604);
+ rule__XTypeLiteral__Group__5__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTypeLiteral__Group__5"
+
+
+ // $ANTLR start "rule__XTypeLiteral__Group__5__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16226:1: rule__XTypeLiteral__Group__5__Impl : ( ')' ) ;
+ public final void rule__XTypeLiteral__Group__5__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16230:1: ( ( ')' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16231:1: ( ')' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16231:1: ( ')' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16232:1: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5());
+ }
+ match(input,72,FOLLOW_72_in_rule__XTypeLiteral__Group__5__Impl32632); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTypeLiteral__Group__5__Impl"
+
+
+ // $ANTLR start "rule__XThrowExpression__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16257:1: rule__XThrowExpression__Group__0 : rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 ;
+ public final void rule__XThrowExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16261:1: ( rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16262:2: rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1
+ {
+ pushFollow(FOLLOW_rule__XThrowExpression__Group__0__Impl_in_rule__XThrowExpression__Group__032675);
+ rule__XThrowExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XThrowExpression__Group__1_in_rule__XThrowExpression__Group__032678);
+ rule__XThrowExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XThrowExpression__Group__0"
+
+
+ // $ANTLR start "rule__XThrowExpression__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16269:1: rule__XThrowExpression__Group__0__Impl : ( () ) ;
+ public final void rule__XThrowExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16273:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16274:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16274:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16275:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16276:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16278:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XThrowExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XThrowExpression__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16288:1: rule__XThrowExpression__Group__1 : rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 ;
+ public final void rule__XThrowExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16292:1: ( rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16293:2: rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2
+ {
+ pushFollow(FOLLOW_rule__XThrowExpression__Group__1__Impl_in_rule__XThrowExpression__Group__132736);
+ rule__XThrowExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XThrowExpression__Group__2_in_rule__XThrowExpression__Group__132739);
+ rule__XThrowExpression__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XThrowExpression__Group__1"
+
+
+ // $ANTLR start "rule__XThrowExpression__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16300:1: rule__XThrowExpression__Group__1__Impl : ( 'throw' ) ;
+ public final void rule__XThrowExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16304:1: ( ( 'throw' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16305:1: ( 'throw' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16305:1: ( 'throw' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16306:1: 'throw'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1());
+ }
+ match(input,89,FOLLOW_89_in_rule__XThrowExpression__Group__1__Impl32767); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XThrowExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XThrowExpression__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16319:1: rule__XThrowExpression__Group__2 : rule__XThrowExpression__Group__2__Impl ;
+ public final void rule__XThrowExpression__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16323:1: ( rule__XThrowExpression__Group__2__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16324:2: rule__XThrowExpression__Group__2__Impl
+ {
+ pushFollow(FOLLOW_rule__XThrowExpression__Group__2__Impl_in_rule__XThrowExpression__Group__232798);
+ rule__XThrowExpression__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XThrowExpression__Group__2"
+
+
+ // $ANTLR start "rule__XThrowExpression__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16330:1: rule__XThrowExpression__Group__2__Impl : ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) ;
+ public final void rule__XThrowExpression__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16334:1: ( ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16335:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16335:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16336:1: ( rule__XThrowExpression__ExpressionAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16337:1: ( rule__XThrowExpression__ExpressionAssignment_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16337:2: rule__XThrowExpression__ExpressionAssignment_2
+ {
+ pushFollow(FOLLOW_rule__XThrowExpression__ExpressionAssignment_2_in_rule__XThrowExpression__Group__2__Impl32825);
+ rule__XThrowExpression__ExpressionAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XThrowExpression__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XReturnExpression__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16353:1: rule__XReturnExpression__Group__0 : rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 ;
+ public final void rule__XReturnExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16357:1: ( rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16358:2: rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1
+ {
+ pushFollow(FOLLOW_rule__XReturnExpression__Group__0__Impl_in_rule__XReturnExpression__Group__032861);
+ rule__XReturnExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XReturnExpression__Group__1_in_rule__XReturnExpression__Group__032864);
+ rule__XReturnExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XReturnExpression__Group__0"
+
+
+ // $ANTLR start "rule__XReturnExpression__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16365:1: rule__XReturnExpression__Group__0__Impl : ( () ) ;
+ public final void rule__XReturnExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16369:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16370:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16370:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16371:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16372:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16374:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XReturnExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XReturnExpression__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16384:1: rule__XReturnExpression__Group__1 : rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 ;
+ public final void rule__XReturnExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16388:1: ( rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16389:2: rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2
+ {
+ pushFollow(FOLLOW_rule__XReturnExpression__Group__1__Impl_in_rule__XReturnExpression__Group__132922);
+ rule__XReturnExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XReturnExpression__Group__2_in_rule__XReturnExpression__Group__132925);
+ rule__XReturnExpression__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XReturnExpression__Group__1"
+
+
+ // $ANTLR start "rule__XReturnExpression__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16396:1: rule__XReturnExpression__Group__1__Impl : ( 'return' ) ;
+ public final void rule__XReturnExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16400:1: ( ( 'return' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16401:1: ( 'return' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16401:1: ( 'return' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16402:1: 'return'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1());
+ }
+ match(input,90,FOLLOW_90_in_rule__XReturnExpression__Group__1__Impl32953); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XReturnExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XReturnExpression__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16415:1: rule__XReturnExpression__Group__2 : rule__XReturnExpression__Group__2__Impl ;
+ public final void rule__XReturnExpression__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16419:1: ( rule__XReturnExpression__Group__2__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16420:2: rule__XReturnExpression__Group__2__Impl
+ {
+ pushFollow(FOLLOW_rule__XReturnExpression__Group__2__Impl_in_rule__XReturnExpression__Group__232984);
+ rule__XReturnExpression__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XReturnExpression__Group__2"
+
+
+ // $ANTLR start "rule__XReturnExpression__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16426:1: rule__XReturnExpression__Group__2__Impl : ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) ;
+ public final void rule__XReturnExpression__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16430:1: ( ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16431:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16431:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16432:1: ( rule__XReturnExpression__ExpressionAssignment_2 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16433:1: ( rule__XReturnExpression__ExpressionAssignment_2 )?
+ int alt106=2;
+ alt106 = dfa106.predict(input);
+ switch (alt106) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16433:2: rule__XReturnExpression__ExpressionAssignment_2
+ {
+ pushFollow(FOLLOW_rule__XReturnExpression__ExpressionAssignment_2_in_rule__XReturnExpression__Group__2__Impl33011);
+ rule__XReturnExpression__ExpressionAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XReturnExpression__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16449:1: rule__XTryCatchFinallyExpression__Group__0 : rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 ;
+ public final void rule__XTryCatchFinallyExpression__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16453:1: ( rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16454:2: rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group__0__Impl_in_rule__XTryCatchFinallyExpression__Group__033048);
+ rule__XTryCatchFinallyExpression__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group__1_in_rule__XTryCatchFinallyExpression__Group__033051);
+ rule__XTryCatchFinallyExpression__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group__0"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16461:1: rule__XTryCatchFinallyExpression__Group__0__Impl : ( () ) ;
+ public final void rule__XTryCatchFinallyExpression__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16465:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16466:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16466:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16467:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16468:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16470:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16480:1: rule__XTryCatchFinallyExpression__Group__1 : rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 ;
+ public final void rule__XTryCatchFinallyExpression__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16484:1: ( rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16485:2: rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group__1__Impl_in_rule__XTryCatchFinallyExpression__Group__133109);
+ rule__XTryCatchFinallyExpression__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group__2_in_rule__XTryCatchFinallyExpression__Group__133112);
+ rule__XTryCatchFinallyExpression__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group__1"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16492:1: rule__XTryCatchFinallyExpression__Group__1__Impl : ( 'try' ) ;
+ public final void rule__XTryCatchFinallyExpression__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16496:1: ( ( 'try' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16497:1: ( 'try' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16497:1: ( 'try' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16498:1: 'try'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1());
+ }
+ match(input,91,FOLLOW_91_in_rule__XTryCatchFinallyExpression__Group__1__Impl33140); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16511:1: rule__XTryCatchFinallyExpression__Group__2 : rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 ;
+ public final void rule__XTryCatchFinallyExpression__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16515:1: ( rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16516:2: rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group__2__Impl_in_rule__XTryCatchFinallyExpression__Group__233171);
+ rule__XTryCatchFinallyExpression__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group__3_in_rule__XTryCatchFinallyExpression__Group__233174);
+ rule__XTryCatchFinallyExpression__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group__2"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16523:1: rule__XTryCatchFinallyExpression__Group__2__Impl : ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) ;
+ public final void rule__XTryCatchFinallyExpression__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16527:1: ( ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16528:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16528:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16529:1: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16530:1: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16530:2: rule__XTryCatchFinallyExpression__ExpressionAssignment_2
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__ExpressionAssignment_2_in_rule__XTryCatchFinallyExpression__Group__2__Impl33201);
+ rule__XTryCatchFinallyExpression__ExpressionAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16540:1: rule__XTryCatchFinallyExpression__Group__3 : rule__XTryCatchFinallyExpression__Group__3__Impl ;
+ public final void rule__XTryCatchFinallyExpression__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16544:1: ( rule__XTryCatchFinallyExpression__Group__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16545:2: rule__XTryCatchFinallyExpression__Group__3__Impl
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group__3__Impl_in_rule__XTryCatchFinallyExpression__Group__333231);
+ rule__XTryCatchFinallyExpression__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group__3"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16551:1: rule__XTryCatchFinallyExpression__Group__3__Impl : ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) ;
+ public final void rule__XTryCatchFinallyExpression__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16555:1: ( ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16556:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16556:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16557:1: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16558:1: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16558:2: rule__XTryCatchFinallyExpression__Alternatives_3
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Alternatives_3_in_rule__XTryCatchFinallyExpression__Group__3__Impl33258);
+ rule__XTryCatchFinallyExpression__Alternatives_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group__3__Impl"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16576:1: rule__XTryCatchFinallyExpression__Group_3_0__0 : rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 ;
+ public final void rule__XTryCatchFinallyExpression__Group_3_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16580:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16581:2: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0__0__Impl_in_rule__XTryCatchFinallyExpression__Group_3_0__033296);
+ rule__XTryCatchFinallyExpression__Group_3_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0__1_in_rule__XTryCatchFinallyExpression__Group_3_0__033299);
+ rule__XTryCatchFinallyExpression__Group_3_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0__0"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16588:1: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl : ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) ;
+ public final void rule__XTryCatchFinallyExpression__Group_3_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16592:1: ( ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16593:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16593:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16594:1: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16594:1: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16595:1: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16596:1: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16596:2: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0_in_rule__XTryCatchFinallyExpression__Group_3_0__0__Impl33328);
+ rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0());
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16599:1: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16600:1: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16601:1: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
+ loop107:
+ do {
+ int alt107=2;
+ int LA107_0 = input.LA(1);
+
+ if ( (LA107_0==93) ) {
+ int LA107_2 = input.LA(2);
+
+ if ( (synpred143_InternalEmfParsleyDsl()) ) {
+ alt107=1;
+ }
+
+
+ }
+
+
+ switch (alt107) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16601:2: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0_in_rule__XTryCatchFinallyExpression__Group_3_0__0__Impl33340);
+ rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop107;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0__0__Impl"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16612:1: rule__XTryCatchFinallyExpression__Group_3_0__1 : rule__XTryCatchFinallyExpression__Group_3_0__1__Impl ;
+ public final void rule__XTryCatchFinallyExpression__Group_3_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16616:1: ( rule__XTryCatchFinallyExpression__Group_3_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16617:2: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0__1__Impl_in_rule__XTryCatchFinallyExpression__Group_3_0__133373);
+ rule__XTryCatchFinallyExpression__Group_3_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0__1"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16623:1: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl : ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) ;
+ public final void rule__XTryCatchFinallyExpression__Group_3_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16627:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16628:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16628:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16629:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16630:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
+ int alt108=2;
+ int LA108_0 = input.LA(1);
+
+ if ( (LA108_0==92) ) {
+ int LA108_1 = input.LA(2);
+
+ if ( (synpred144_InternalEmfParsleyDsl()) ) {
+ alt108=1;
+ }
+ }
+ switch (alt108) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16630:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0_1__0_in_rule__XTryCatchFinallyExpression__Group_3_0__1__Impl33400);
+ rule__XTryCatchFinallyExpression__Group_3_0_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0__1__Impl"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16644:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0 : rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 ;
+ public final void rule__XTryCatchFinallyExpression__Group_3_0_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16648:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16649:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl_in_rule__XTryCatchFinallyExpression__Group_3_0_1__033435);
+ rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0_1__1_in_rule__XTryCatchFinallyExpression__Group_3_0_1__033438);
+ rule__XTryCatchFinallyExpression__Group_3_0_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0_1__0"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16656:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl : ( ( 'finally' ) ) ;
+ public final void rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16660:1: ( ( ( 'finally' ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16661:1: ( ( 'finally' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16661:1: ( ( 'finally' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16662:1: ( 'finally' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16663:1: ( 'finally' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16664:2: 'finally'
+ {
+ match(input,92,FOLLOW_92_in_rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl33467); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16675:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1 : rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl ;
+ public final void rule__XTryCatchFinallyExpression__Group_3_0_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16679:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16680:2: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl_in_rule__XTryCatchFinallyExpression__Group_3_0_1__133499);
+ rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0_1__1"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16686:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) ;
+ public final void rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16690:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16691:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16691:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16692:1: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16693:1: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16693:2: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1_in_rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl33526);
+ rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16707:1: rule__XTryCatchFinallyExpression__Group_3_1__0 : rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 ;
+ public final void rule__XTryCatchFinallyExpression__Group_3_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16711:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16712:2: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group_3_1__0__Impl_in_rule__XTryCatchFinallyExpression__Group_3_1__033560);
+ rule__XTryCatchFinallyExpression__Group_3_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group_3_1__1_in_rule__XTryCatchFinallyExpression__Group_3_1__033563);
+ rule__XTryCatchFinallyExpression__Group_3_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_1__0"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16719:1: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl : ( 'finally' ) ;
+ public final void rule__XTryCatchFinallyExpression__Group_3_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16723:1: ( ( 'finally' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16724:1: ( 'finally' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16724:1: ( 'finally' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16725:1: 'finally'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0());
+ }
+ match(input,92,FOLLOW_92_in_rule__XTryCatchFinallyExpression__Group_3_1__0__Impl33591); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_1__0__Impl"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16738:1: rule__XTryCatchFinallyExpression__Group_3_1__1 : rule__XTryCatchFinallyExpression__Group_3_1__1__Impl ;
+ public final void rule__XTryCatchFinallyExpression__Group_3_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16742:1: ( rule__XTryCatchFinallyExpression__Group_3_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16743:2: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group_3_1__1__Impl_in_rule__XTryCatchFinallyExpression__Group_3_1__133622);
+ rule__XTryCatchFinallyExpression__Group_3_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_1__1"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16749:1: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) ;
+ public final void rule__XTryCatchFinallyExpression__Group_3_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16753:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16754:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16754:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16755:1: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16756:1: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16756:2: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1_in_rule__XTryCatchFinallyExpression__Group_3_1__1__Impl33649);
+ rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_1__1__Impl"
+
+
+ // $ANTLR start "rule__XCatchClause__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16770:1: rule__XCatchClause__Group__0 : rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 ;
+ public final void rule__XCatchClause__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16774:1: ( rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16775:2: rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1
+ {
+ pushFollow(FOLLOW_rule__XCatchClause__Group__0__Impl_in_rule__XCatchClause__Group__033683);
+ rule__XCatchClause__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XCatchClause__Group__1_in_rule__XCatchClause__Group__033686);
+ rule__XCatchClause__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCatchClause__Group__0"
+
+
+ // $ANTLR start "rule__XCatchClause__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16782:1: rule__XCatchClause__Group__0__Impl : ( ( 'catch' ) ) ;
+ public final void rule__XCatchClause__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16786:1: ( ( ( 'catch' ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16787:1: ( ( 'catch' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16787:1: ( ( 'catch' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16788:1: ( 'catch' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16789:1: ( 'catch' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16790:2: 'catch'
+ {
+ match(input,93,FOLLOW_93_in_rule__XCatchClause__Group__0__Impl33715); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCatchClause__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XCatchClause__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16801:1: rule__XCatchClause__Group__1 : rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 ;
+ public final void rule__XCatchClause__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16805:1: ( rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16806:2: rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2
+ {
+ pushFollow(FOLLOW_rule__XCatchClause__Group__1__Impl_in_rule__XCatchClause__Group__133747);
+ rule__XCatchClause__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XCatchClause__Group__2_in_rule__XCatchClause__Group__133750);
+ rule__XCatchClause__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCatchClause__Group__1"
+
+
+ // $ANTLR start "rule__XCatchClause__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16813:1: rule__XCatchClause__Group__1__Impl : ( '(' ) ;
+ public final void rule__XCatchClause__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16817:1: ( ( '(' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16818:1: ( '(' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16818:1: ( '(' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16819:1: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1());
+ }
+ match(input,77,FOLLOW_77_in_rule__XCatchClause__Group__1__Impl33778); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCatchClause__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XCatchClause__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16832:1: rule__XCatchClause__Group__2 : rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 ;
+ public final void rule__XCatchClause__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16836:1: ( rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16837:2: rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3
+ {
+ pushFollow(FOLLOW_rule__XCatchClause__Group__2__Impl_in_rule__XCatchClause__Group__233809);
+ rule__XCatchClause__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XCatchClause__Group__3_in_rule__XCatchClause__Group__233812);
+ rule__XCatchClause__Group__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCatchClause__Group__2"
+
+
+ // $ANTLR start "rule__XCatchClause__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16844:1: rule__XCatchClause__Group__2__Impl : ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) ;
+ public final void rule__XCatchClause__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16848:1: ( ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16849:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16849:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16850:1: ( rule__XCatchClause__DeclaredParamAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16851:1: ( rule__XCatchClause__DeclaredParamAssignment_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16851:2: rule__XCatchClause__DeclaredParamAssignment_2
+ {
+ pushFollow(FOLLOW_rule__XCatchClause__DeclaredParamAssignment_2_in_rule__XCatchClause__Group__2__Impl33839);
+ rule__XCatchClause__DeclaredParamAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCatchClause__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XCatchClause__Group__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16861:1: rule__XCatchClause__Group__3 : rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 ;
+ public final void rule__XCatchClause__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16865:1: ( rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16866:2: rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4
+ {
+ pushFollow(FOLLOW_rule__XCatchClause__Group__3__Impl_in_rule__XCatchClause__Group__333869);
+ rule__XCatchClause__Group__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XCatchClause__Group__4_in_rule__XCatchClause__Group__333872);
+ rule__XCatchClause__Group__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCatchClause__Group__3"
+
+
+ // $ANTLR start "rule__XCatchClause__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16873:1: rule__XCatchClause__Group__3__Impl : ( ')' ) ;
+ public final void rule__XCatchClause__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16877:1: ( ( ')' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16878:1: ( ')' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16878:1: ( ')' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16879:1: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3());
+ }
+ match(input,72,FOLLOW_72_in_rule__XCatchClause__Group__3__Impl33900); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCatchClause__Group__3__Impl"
+
+
+ // $ANTLR start "rule__XCatchClause__Group__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16892:1: rule__XCatchClause__Group__4 : rule__XCatchClause__Group__4__Impl ;
+ public final void rule__XCatchClause__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16896:1: ( rule__XCatchClause__Group__4__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16897:2: rule__XCatchClause__Group__4__Impl
+ {
+ pushFollow(FOLLOW_rule__XCatchClause__Group__4__Impl_in_rule__XCatchClause__Group__433931);
+ rule__XCatchClause__Group__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCatchClause__Group__4"
+
+
+ // $ANTLR start "rule__XCatchClause__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16903:1: rule__XCatchClause__Group__4__Impl : ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) ;
+ public final void rule__XCatchClause__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16907:1: ( ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16908:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16908:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16909:1: ( rule__XCatchClause__ExpressionAssignment_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16910:1: ( rule__XCatchClause__ExpressionAssignment_4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16910:2: rule__XCatchClause__ExpressionAssignment_4
+ {
+ pushFollow(FOLLOW_rule__XCatchClause__ExpressionAssignment_4_in_rule__XCatchClause__Group__4__Impl33958);
+ rule__XCatchClause__ExpressionAssignment_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCatchClause__Group__4__Impl"
+
+
+ // $ANTLR start "rule__QualifiedName__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16930:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
+ public final void rule__QualifiedName__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16934:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16935:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
+ {
+ pushFollow(FOLLOW_rule__QualifiedName__Group__0__Impl_in_rule__QualifiedName__Group__033998);
+ rule__QualifiedName__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__QualifiedName__Group__1_in_rule__QualifiedName__Group__034001);
+ rule__QualifiedName__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedName__Group__0"
+
+
+ // $ANTLR start "rule__QualifiedName__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16942:1: rule__QualifiedName__Group__0__Impl : ( ruleValidID ) ;
+ public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16946:1: ( ( ruleValidID ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16947:1: ( ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16947:1: ( ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16948:1: ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleValidID_in_rule__QualifiedName__Group__0__Impl34028);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedName__Group__0__Impl"
+
+
+ // $ANTLR start "rule__QualifiedName__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16959:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
+ public final void rule__QualifiedName__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16963:1: ( rule__QualifiedName__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16964:2: rule__QualifiedName__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__QualifiedName__Group__1__Impl_in_rule__QualifiedName__Group__134057);
+ rule__QualifiedName__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedName__Group__1"
+
+
+ // $ANTLR start "rule__QualifiedName__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16970:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
+ public final void rule__QualifiedName__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16974:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16975:1: ( ( rule__QualifiedName__Group_1__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16975:1: ( ( rule__QualifiedName__Group_1__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16976:1: ( rule__QualifiedName__Group_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameAccess().getGroup_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16977:1: ( rule__QualifiedName__Group_1__0 )*
+ loop109:
+ do {
+ int alt109=2;
+ int LA109_0 = input.LA(1);
+
+ if ( (LA109_0==40) ) {
+ int LA109_2 = input.LA(2);
+
+ if ( (LA109_2==RULE_ID) ) {
+ int LA109_3 = input.LA(3);
+
+ if ( (synpred145_InternalEmfParsleyDsl()) ) {
+ alt109=1;
+ }
+
+
+ }
+
+
+ }
+
+
+ switch (alt109) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16977:2: rule__QualifiedName__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__QualifiedName__Group_1__0_in_rule__QualifiedName__Group__1__Impl34084);
+ rule__QualifiedName__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop109;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedName__Group__1__Impl"
+
+
+ // $ANTLR start "rule__QualifiedName__Group_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16991:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
+ public final void rule__QualifiedName__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16995:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16996:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
+ {
+ pushFollow(FOLLOW_rule__QualifiedName__Group_1__0__Impl_in_rule__QualifiedName__Group_1__034119);
+ rule__QualifiedName__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__QualifiedName__Group_1__1_in_rule__QualifiedName__Group_1__034122);
+ rule__QualifiedName__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedName__Group_1__0"
+
+
+ // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17003:1: rule__QualifiedName__Group_1__0__Impl : ( ( '.' ) ) ;
+ public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17007:1: ( ( ( '.' ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17008:1: ( ( '.' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17008:1: ( ( '.' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17009:1: ( '.' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17010:1: ( '.' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17011:2: '.'
+ {
+ match(input,40,FOLLOW_40_in_rule__QualifiedName__Group_1__0__Impl34151); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedName__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__QualifiedName__Group_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17022:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
+ public final void rule__QualifiedName__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17026:1: ( rule__QualifiedName__Group_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17027:2: rule__QualifiedName__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__QualifiedName__Group_1__1__Impl_in_rule__QualifiedName__Group_1__134183);
+ rule__QualifiedName__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedName__Group_1__1"
+
+
+ // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17033:1: rule__QualifiedName__Group_1__1__Impl : ( ruleValidID ) ;
+ public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17037:1: ( ( ruleValidID ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17038:1: ( ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17038:1: ( ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17039:1: ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1());
+ }
+ pushFollow(FOLLOW_ruleValidID_in_rule__QualifiedName__Group_1__1__Impl34210);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedName__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__Number__Group_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17054:1: rule__Number__Group_1__0 : rule__Number__Group_1__0__Impl rule__Number__Group_1__1 ;
+ public final void rule__Number__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17058:1: ( rule__Number__Group_1__0__Impl rule__Number__Group_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17059:2: rule__Number__Group_1__0__Impl rule__Number__Group_1__1
+ {
+ pushFollow(FOLLOW_rule__Number__Group_1__0__Impl_in_rule__Number__Group_1__034243);
+ rule__Number__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__Number__Group_1__1_in_rule__Number__Group_1__034246);
+ rule__Number__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Number__Group_1__0"
+
+
+ // $ANTLR start "rule__Number__Group_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17066:1: rule__Number__Group_1__0__Impl : ( ( rule__Number__Alternatives_1_0 ) ) ;
+ public final void rule__Number__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17070:1: ( ( ( rule__Number__Alternatives_1_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17071:1: ( ( rule__Number__Alternatives_1_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17071:1: ( ( rule__Number__Alternatives_1_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17072:1: ( rule__Number__Alternatives_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNumberAccess().getAlternatives_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17073:1: ( rule__Number__Alternatives_1_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17073:2: rule__Number__Alternatives_1_0
+ {
+ pushFollow(FOLLOW_rule__Number__Alternatives_1_0_in_rule__Number__Group_1__0__Impl34273);
+ rule__Number__Alternatives_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNumberAccess().getAlternatives_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Number__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__Number__Group_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17083:1: rule__Number__Group_1__1 : rule__Number__Group_1__1__Impl ;
+ public final void rule__Number__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17087:1: ( rule__Number__Group_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17088:2: rule__Number__Group_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__Number__Group_1__1__Impl_in_rule__Number__Group_1__134303);
+ rule__Number__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Number__Group_1__1"
+
+
+ // $ANTLR start "rule__Number__Group_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17094:1: rule__Number__Group_1__1__Impl : ( ( rule__Number__Group_1_1__0 )? ) ;
+ public final void rule__Number__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17098:1: ( ( ( rule__Number__Group_1_1__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17099:1: ( ( rule__Number__Group_1_1__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17099:1: ( ( rule__Number__Group_1_1__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17100:1: ( rule__Number__Group_1_1__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNumberAccess().getGroup_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17101:1: ( rule__Number__Group_1_1__0 )?
+ int alt110=2;
+ int LA110_0 = input.LA(1);
+
+ if ( (LA110_0==40) ) {
+ int LA110_1 = input.LA(2);
+
+ if ( ((LA110_1>=RULE_INT && LA110_1<=RULE_DECIMAL)) ) {
+ alt110=1;
+ }
+ }
+ switch (alt110) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17101:2: rule__Number__Group_1_1__0
+ {
+ pushFollow(FOLLOW_rule__Number__Group_1_1__0_in_rule__Number__Group_1__1__Impl34330);
+ rule__Number__Group_1_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNumberAccess().getGroup_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Number__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__Number__Group_1_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17115:1: rule__Number__Group_1_1__0 : rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 ;
+ public final void rule__Number__Group_1_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17119:1: ( rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17120:2: rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1
+ {
+ pushFollow(FOLLOW_rule__Number__Group_1_1__0__Impl_in_rule__Number__Group_1_1__034365);
+ rule__Number__Group_1_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__Number__Group_1_1__1_in_rule__Number__Group_1_1__034368);
+ rule__Number__Group_1_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Number__Group_1_1__0"
+
+
+ // $ANTLR start "rule__Number__Group_1_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17127:1: rule__Number__Group_1_1__0__Impl : ( '.' ) ;
+ public final void rule__Number__Group_1_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17131:1: ( ( '.' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17132:1: ( '.' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17132:1: ( '.' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17133:1: '.'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0());
+ }
+ match(input,40,FOLLOW_40_in_rule__Number__Group_1_1__0__Impl34396); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Number__Group_1_1__0__Impl"
+
+
+ // $ANTLR start "rule__Number__Group_1_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17146:1: rule__Number__Group_1_1__1 : rule__Number__Group_1_1__1__Impl ;
+ public final void rule__Number__Group_1_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17150:1: ( rule__Number__Group_1_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17151:2: rule__Number__Group_1_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__Number__Group_1_1__1__Impl_in_rule__Number__Group_1_1__134427);
+ rule__Number__Group_1_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Number__Group_1_1__1"
+
+
+ // $ANTLR start "rule__Number__Group_1_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17157:1: rule__Number__Group_1_1__1__Impl : ( ( rule__Number__Alternatives_1_1_1 ) ) ;
+ public final void rule__Number__Group_1_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17161:1: ( ( ( rule__Number__Alternatives_1_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17162:1: ( ( rule__Number__Alternatives_1_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17162:1: ( ( rule__Number__Alternatives_1_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17163:1: ( rule__Number__Alternatives_1_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getNumberAccess().getAlternatives_1_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17164:1: ( rule__Number__Alternatives_1_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17164:2: rule__Number__Alternatives_1_1_1
+ {
+ pushFollow(FOLLOW_rule__Number__Alternatives_1_1_1_in_rule__Number__Group_1_1__1__Impl34454);
+ rule__Number__Alternatives_1_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getNumberAccess().getAlternatives_1_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Number__Group_1_1__1__Impl"
+
+
+ // $ANTLR start "rule__JvmTypeReference__Group_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17179:1: rule__JvmTypeReference__Group_0__0 : rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 ;
+ public final void rule__JvmTypeReference__Group_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17183:1: ( rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17184:2: rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1
+ {
+ pushFollow(FOLLOW_rule__JvmTypeReference__Group_0__0__Impl_in_rule__JvmTypeReference__Group_0__034489);
+ rule__JvmTypeReference__Group_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__JvmTypeReference__Group_0__1_in_rule__JvmTypeReference__Group_0__034492);
+ rule__JvmTypeReference__Group_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmTypeReference__Group_0__0"
+
+
+ // $ANTLR start "rule__JvmTypeReference__Group_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17191:1: rule__JvmTypeReference__Group_0__0__Impl : ( ruleJvmParameterizedTypeReference ) ;
+ public final void rule__JvmTypeReference__Group_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17195:1: ( ( ruleJvmParameterizedTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17196:1: ( ruleJvmParameterizedTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17196:1: ( ruleJvmParameterizedTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17197:1: ruleJvmParameterizedTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0());
+ }
+ pushFollow(FOLLOW_ruleJvmParameterizedTypeReference_in_rule__JvmTypeReference__Group_0__0__Impl34519);
+ ruleJvmParameterizedTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmTypeReference__Group_0__0__Impl"
+
+
+ // $ANTLR start "rule__JvmTypeReference__Group_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17208:1: rule__JvmTypeReference__Group_0__1 : rule__JvmTypeReference__Group_0__1__Impl ;
+ public final void rule__JvmTypeReference__Group_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17212:1: ( rule__JvmTypeReference__Group_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17213:2: rule__JvmTypeReference__Group_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__JvmTypeReference__Group_0__1__Impl_in_rule__JvmTypeReference__Group_0__134548);
+ rule__JvmTypeReference__Group_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmTypeReference__Group_0__1"
+
+
+ // $ANTLR start "rule__JvmTypeReference__Group_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17219:1: rule__JvmTypeReference__Group_0__1__Impl : ( ( rule__JvmTypeReference__Group_0_1__0 )* ) ;
+ public final void rule__JvmTypeReference__Group_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17223:1: ( ( ( rule__JvmTypeReference__Group_0_1__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17224:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17224:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17225:1: ( rule__JvmTypeReference__Group_0_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17226:1: ( rule__JvmTypeReference__Group_0_1__0 )*
+ loop111:
+ do {
+ int alt111=2;
+ int LA111_0 = input.LA(1);
+
+ if ( (LA111_0==74) ) {
+ int LA111_2 = input.LA(2);
+
+ if ( (LA111_2==75) ) {
+ int LA111_3 = input.LA(3);
+
+ if ( (synpred147_InternalEmfParsleyDsl()) ) {
+ alt111=1;
+ }
+
+
+ }
+
+
+ }
+
+
+ switch (alt111) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17226:2: rule__JvmTypeReference__Group_0_1__0
+ {
+ pushFollow(FOLLOW_rule__JvmTypeReference__Group_0_1__0_in_rule__JvmTypeReference__Group_0__1__Impl34575);
+ rule__JvmTypeReference__Group_0_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop111;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmTypeReference__Group_0__1__Impl"
+
+
+ // $ANTLR start "rule__JvmTypeReference__Group_0_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17240:1: rule__JvmTypeReference__Group_0_1__0 : rule__JvmTypeReference__Group_0_1__0__Impl ;
+ public final void rule__JvmTypeReference__Group_0_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17244:1: ( rule__JvmTypeReference__Group_0_1__0__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17245:2: rule__JvmTypeReference__Group_0_1__0__Impl
+ {
+ pushFollow(FOLLOW_rule__JvmTypeReference__Group_0_1__0__Impl_in_rule__JvmTypeReference__Group_0_1__034610);
+ rule__JvmTypeReference__Group_0_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmTypeReference__Group_0_1__0"
+
+
+ // $ANTLR start "rule__JvmTypeReference__Group_0_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17251:1: rule__JvmTypeReference__Group_0_1__0__Impl : ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) ;
+ public final void rule__JvmTypeReference__Group_0_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17255:1: ( ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17256:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17256:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17257:1: ( rule__JvmTypeReference__Group_0_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17258:1: ( rule__JvmTypeReference__Group_0_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17258:2: rule__JvmTypeReference__Group_0_1_0__0
+ {
+ pushFollow(FOLLOW_rule__JvmTypeReference__Group_0_1_0__0_in_rule__JvmTypeReference__Group_0_1__0__Impl34637);
+ rule__JvmTypeReference__Group_0_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmTypeReference__Group_0_1__0__Impl"
+
+
+ // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17270:1: rule__JvmTypeReference__Group_0_1_0__0 : rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 ;
+ public final void rule__JvmTypeReference__Group_0_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17274:1: ( rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17275:2: rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1
+ {
+ pushFollow(FOLLOW_rule__JvmTypeReference__Group_0_1_0__0__Impl_in_rule__JvmTypeReference__Group_0_1_0__034669);
+ rule__JvmTypeReference__Group_0_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__JvmTypeReference__Group_0_1_0__1_in_rule__JvmTypeReference__Group_0_1_0__034672);
+ rule__JvmTypeReference__Group_0_1_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmTypeReference__Group_0_1_0__0"
+
+
+ // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17282:1: rule__JvmTypeReference__Group_0_1_0__0__Impl : ( () ) ;
+ public final void rule__JvmTypeReference__Group_0_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17286:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17287:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17287:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17288:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17289:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17291:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmTypeReference__Group_0_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17301:1: rule__JvmTypeReference__Group_0_1_0__1 : rule__JvmTypeReference__Group_0_1_0__1__Impl ;
+ public final void rule__JvmTypeReference__Group_0_1_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17305:1: ( rule__JvmTypeReference__Group_0_1_0__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17306:2: rule__JvmTypeReference__Group_0_1_0__1__Impl
+ {
+ pushFollow(FOLLOW_rule__JvmTypeReference__Group_0_1_0__1__Impl_in_rule__JvmTypeReference__Group_0_1_0__134730);
+ rule__JvmTypeReference__Group_0_1_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmTypeReference__Group_0_1_0__1"
+
+
+ // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17312:1: rule__JvmTypeReference__Group_0_1_0__1__Impl : ( ruleArrayBrackets ) ;
+ public final void rule__JvmTypeReference__Group_0_1_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17316:1: ( ( ruleArrayBrackets ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17317:1: ( ruleArrayBrackets )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17317:1: ( ruleArrayBrackets )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17318:1: ruleArrayBrackets
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1());
+ }
+ pushFollow(FOLLOW_ruleArrayBrackets_in_rule__JvmTypeReference__Group_0_1_0__1__Impl34757);
+ ruleArrayBrackets();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmTypeReference__Group_0_1_0__1__Impl"
+
+
+ // $ANTLR start "rule__ArrayBrackets__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17333:1: rule__ArrayBrackets__Group__0 : rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 ;
+ public final void rule__ArrayBrackets__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17337:1: ( rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17338:2: rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1
+ {
+ pushFollow(FOLLOW_rule__ArrayBrackets__Group__0__Impl_in_rule__ArrayBrackets__Group__034790);
+ rule__ArrayBrackets__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__ArrayBrackets__Group__1_in_rule__ArrayBrackets__Group__034793);
+ rule__ArrayBrackets__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ArrayBrackets__Group__0"
+
+
+ // $ANTLR start "rule__ArrayBrackets__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17345:1: rule__ArrayBrackets__Group__0__Impl : ( '[' ) ;
+ public final void rule__ArrayBrackets__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17349:1: ( ( '[' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17350:1: ( '[' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17350:1: ( '[' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17351:1: '['
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0());
+ }
+ match(input,74,FOLLOW_74_in_rule__ArrayBrackets__Group__0__Impl34821); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ArrayBrackets__Group__0__Impl"
+
+
+ // $ANTLR start "rule__ArrayBrackets__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17364:1: rule__ArrayBrackets__Group__1 : rule__ArrayBrackets__Group__1__Impl ;
+ public final void rule__ArrayBrackets__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17368:1: ( rule__ArrayBrackets__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17369:2: rule__ArrayBrackets__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__ArrayBrackets__Group__1__Impl_in_rule__ArrayBrackets__Group__134852);
+ rule__ArrayBrackets__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ArrayBrackets__Group__1"
+
+
+ // $ANTLR start "rule__ArrayBrackets__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17375:1: rule__ArrayBrackets__Group__1__Impl : ( ']' ) ;
+ public final void rule__ArrayBrackets__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17379:1: ( ( ']' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17380:1: ( ']' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17380:1: ( ']' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17381:1: ']'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1());
+ }
+ match(input,75,FOLLOW_75_in_rule__ArrayBrackets__Group__1__Impl34880); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ArrayBrackets__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17398:1: rule__XFunctionTypeRef__Group__0 : rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 ;
+ public final void rule__XFunctionTypeRef__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17402:1: ( rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17403:2: rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1
+ {
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group__0__Impl_in_rule__XFunctionTypeRef__Group__034915);
+ rule__XFunctionTypeRef__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group__1_in_rule__XFunctionTypeRef__Group__034918);
+ rule__XFunctionTypeRef__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group__0"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17410:1: rule__XFunctionTypeRef__Group__0__Impl : ( ( rule__XFunctionTypeRef__Group_0__0 )? ) ;
+ public final void rule__XFunctionTypeRef__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17414:1: ( ( ( rule__XFunctionTypeRef__Group_0__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17415:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17415:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17416:1: ( rule__XFunctionTypeRef__Group_0__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17417:1: ( rule__XFunctionTypeRef__Group_0__0 )?
+ int alt112=2;
+ int LA112_0 = input.LA(1);
+
+ if ( (LA112_0==77) ) {
+ alt112=1;
+ }
+ switch (alt112) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17417:2: rule__XFunctionTypeRef__Group_0__0
+ {
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group_0__0_in_rule__XFunctionTypeRef__Group__0__Impl34945);
+ rule__XFunctionTypeRef__Group_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFunctionTypeRefAccess().getGroup_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17427:1: rule__XFunctionTypeRef__Group__1 : rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 ;
+ public final void rule__XFunctionTypeRef__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17431:1: ( rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17432:2: rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2
+ {
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group__1__Impl_in_rule__XFunctionTypeRef__Group__134976);
+ rule__XFunctionTypeRef__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group__2_in_rule__XFunctionTypeRef__Group__134979);
+ rule__XFunctionTypeRef__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group__1"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17439:1: rule__XFunctionTypeRef__Group__1__Impl : ( '=>' ) ;
+ public final void rule__XFunctionTypeRef__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17443:1: ( ( '=>' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17444:1: ( '=>' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17444:1: ( '=>' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17445:1: '=>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1());
+ }
+ match(input,29,FOLLOW_29_in_rule__XFunctionTypeRef__Group__1__Impl35007); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17458:1: rule__XFunctionTypeRef__Group__2 : rule__XFunctionTypeRef__Group__2__Impl ;
+ public final void rule__XFunctionTypeRef__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17462:1: ( rule__XFunctionTypeRef__Group__2__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17463:2: rule__XFunctionTypeRef__Group__2__Impl
+ {
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group__2__Impl_in_rule__XFunctionTypeRef__Group__235038);
+ rule__XFunctionTypeRef__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group__2"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17469:1: rule__XFunctionTypeRef__Group__2__Impl : ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) ;
+ public final void rule__XFunctionTypeRef__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17473:1: ( ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17474:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17474:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17475:1: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17476:1: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17476:2: rule__XFunctionTypeRef__ReturnTypeAssignment_2
+ {
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__ReturnTypeAssignment_2_in_rule__XFunctionTypeRef__Group__2__Impl35065);
+ rule__XFunctionTypeRef__ReturnTypeAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17492:1: rule__XFunctionTypeRef__Group_0__0 : rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 ;
+ public final void rule__XFunctionTypeRef__Group_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17496:1: ( rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17497:2: rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1
+ {
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group_0__0__Impl_in_rule__XFunctionTypeRef__Group_0__035101);
+ rule__XFunctionTypeRef__Group_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group_0__1_in_rule__XFunctionTypeRef__Group_0__035104);
+ rule__XFunctionTypeRef__Group_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group_0__0"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17504:1: rule__XFunctionTypeRef__Group_0__0__Impl : ( '(' ) ;
+ public final void rule__XFunctionTypeRef__Group_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17508:1: ( ( '(' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17509:1: ( '(' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17509:1: ( '(' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17510:1: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0());
+ }
+ match(input,77,FOLLOW_77_in_rule__XFunctionTypeRef__Group_0__0__Impl35132); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group_0__0__Impl"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17523:1: rule__XFunctionTypeRef__Group_0__1 : rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 ;
+ public final void rule__XFunctionTypeRef__Group_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17527:1: ( rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17528:2: rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2
+ {
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group_0__1__Impl_in_rule__XFunctionTypeRef__Group_0__135163);
+ rule__XFunctionTypeRef__Group_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group_0__2_in_rule__XFunctionTypeRef__Group_0__135166);
+ rule__XFunctionTypeRef__Group_0__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group_0__1"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17535:1: rule__XFunctionTypeRef__Group_0__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) ;
+ public final void rule__XFunctionTypeRef__Group_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17539:1: ( ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17540:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17540:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17541:1: ( rule__XFunctionTypeRef__Group_0_1__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17542:1: ( rule__XFunctionTypeRef__Group_0_1__0 )?
+ int alt113=2;
+ int LA113_0 = input.LA(1);
+
+ if ( (LA113_0==RULE_ID||LA113_0==29||LA113_0==77) ) {
+ alt113=1;
+ }
+ switch (alt113) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17542:2: rule__XFunctionTypeRef__Group_0_1__0
+ {
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group_0_1__0_in_rule__XFunctionTypeRef__Group_0__1__Impl35193);
+ rule__XFunctionTypeRef__Group_0_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group_0__1__Impl"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group_0__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17552:1: rule__XFunctionTypeRef__Group_0__2 : rule__XFunctionTypeRef__Group_0__2__Impl ;
+ public final void rule__XFunctionTypeRef__Group_0__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17556:1: ( rule__XFunctionTypeRef__Group_0__2__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17557:2: rule__XFunctionTypeRef__Group_0__2__Impl
+ {
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group_0__2__Impl_in_rule__XFunctionTypeRef__Group_0__235224);
+ rule__XFunctionTypeRef__Group_0__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group_0__2"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group_0__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17563:1: rule__XFunctionTypeRef__Group_0__2__Impl : ( ')' ) ;
+ public final void rule__XFunctionTypeRef__Group_0__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17567:1: ( ( ')' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17568:1: ( ')' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17568:1: ( ')' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17569:1: ')'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2());
+ }
+ match(input,72,FOLLOW_72_in_rule__XFunctionTypeRef__Group_0__2__Impl35252); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group_0__2__Impl"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17588:1: rule__XFunctionTypeRef__Group_0_1__0 : rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 ;
+ public final void rule__XFunctionTypeRef__Group_0_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17592:1: ( rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17593:2: rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1
+ {
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group_0_1__0__Impl_in_rule__XFunctionTypeRef__Group_0_1__035289);
+ rule__XFunctionTypeRef__Group_0_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group_0_1__1_in_rule__XFunctionTypeRef__Group_0_1__035292);
+ rule__XFunctionTypeRef__Group_0_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group_0_1__0"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17600:1: rule__XFunctionTypeRef__Group_0_1__0__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) ;
+ public final void rule__XFunctionTypeRef__Group_0_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17604:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17605:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17605:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17606:1: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17607:1: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17607:2: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
+ {
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0_in_rule__XFunctionTypeRef__Group_0_1__0__Impl35319);
+ rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group_0_1__0__Impl"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17617:1: rule__XFunctionTypeRef__Group_0_1__1 : rule__XFunctionTypeRef__Group_0_1__1__Impl ;
+ public final void rule__XFunctionTypeRef__Group_0_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17621:1: ( rule__XFunctionTypeRef__Group_0_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17622:2: rule__XFunctionTypeRef__Group_0_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group_0_1__1__Impl_in_rule__XFunctionTypeRef__Group_0_1__135349);
+ rule__XFunctionTypeRef__Group_0_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group_0_1__1"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17628:1: rule__XFunctionTypeRef__Group_0_1__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) ;
+ public final void rule__XFunctionTypeRef__Group_0_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17632:1: ( ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17633:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17633:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17634:1: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17635:1: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
+ loop114:
+ do {
+ int alt114=2;
+ int LA114_0 = input.LA(1);
+
+ if ( (LA114_0==59) ) {
+ alt114=1;
+ }
+
+
+ switch (alt114) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17635:2: rule__XFunctionTypeRef__Group_0_1_1__0
+ {
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group_0_1_1__0_in_rule__XFunctionTypeRef__Group_0_1__1__Impl35376);
+ rule__XFunctionTypeRef__Group_0_1_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop114;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group_0_1__1__Impl"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17649:1: rule__XFunctionTypeRef__Group_0_1_1__0 : rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 ;
+ public final void rule__XFunctionTypeRef__Group_0_1_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17653:1: ( rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17654:2: rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1
+ {
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group_0_1_1__0__Impl_in_rule__XFunctionTypeRef__Group_0_1_1__035411);
+ rule__XFunctionTypeRef__Group_0_1_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group_0_1_1__1_in_rule__XFunctionTypeRef__Group_0_1_1__035414);
+ rule__XFunctionTypeRef__Group_0_1_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group_0_1_1__0"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17661:1: rule__XFunctionTypeRef__Group_0_1_1__0__Impl : ( ',' ) ;
+ public final void rule__XFunctionTypeRef__Group_0_1_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17665:1: ( ( ',' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17666:1: ( ',' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17666:1: ( ',' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17667:1: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0());
+ }
+ match(input,59,FOLLOW_59_in_rule__XFunctionTypeRef__Group_0_1_1__0__Impl35442); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group_0_1_1__0__Impl"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17680:1: rule__XFunctionTypeRef__Group_0_1_1__1 : rule__XFunctionTypeRef__Group_0_1_1__1__Impl ;
+ public final void rule__XFunctionTypeRef__Group_0_1_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17684:1: ( rule__XFunctionTypeRef__Group_0_1_1__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17685:2: rule__XFunctionTypeRef__Group_0_1_1__1__Impl
+ {
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__Group_0_1_1__1__Impl_in_rule__XFunctionTypeRef__Group_0_1_1__135473);
+ rule__XFunctionTypeRef__Group_0_1_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group_0_1_1__1"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17691:1: rule__XFunctionTypeRef__Group_0_1_1__1__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) ;
+ public final void rule__XFunctionTypeRef__Group_0_1_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17695:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17696:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17696:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17697:1: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17698:1: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17698:2: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
+ {
+ pushFollow(FOLLOW_rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1_in_rule__XFunctionTypeRef__Group_0_1_1__1__Impl35500);
+ rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__Group_0_1_1__1__Impl"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17712:1: rule__JvmParameterizedTypeReference__Group__0 : rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 ;
+ public final void rule__JvmParameterizedTypeReference__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17716:1: ( rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17717:2: rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1
+ {
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group__0__Impl_in_rule__JvmParameterizedTypeReference__Group__035534);
+ rule__JvmParameterizedTypeReference__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group__1_in_rule__JvmParameterizedTypeReference__Group__035537);
+ rule__JvmParameterizedTypeReference__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__Group__0"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17724:1: rule__JvmParameterizedTypeReference__Group__0__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) ;
+ public final void rule__JvmParameterizedTypeReference__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17728:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17729:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17729:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17730:1: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17731:1: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17731:2: rule__JvmParameterizedTypeReference__TypeAssignment_0
+ {
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__TypeAssignment_0_in_rule__JvmParameterizedTypeReference__Group__0__Impl35564);
+ rule__JvmParameterizedTypeReference__TypeAssignment_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__Group__0__Impl"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17741:1: rule__JvmParameterizedTypeReference__Group__1 : rule__JvmParameterizedTypeReference__Group__1__Impl ;
+ public final void rule__JvmParameterizedTypeReference__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17745:1: ( rule__JvmParameterizedTypeReference__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17746:2: rule__JvmParameterizedTypeReference__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group__1__Impl_in_rule__JvmParameterizedTypeReference__Group__135594);
+ rule__JvmParameterizedTypeReference__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__Group__1"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17752:1: rule__JvmParameterizedTypeReference__Group__1__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) ;
+ public final void rule__JvmParameterizedTypeReference__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17756:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17757:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17757:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17758:1: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17759:1: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
+ int alt115=2;
+ alt115 = dfa115.predict(input);
+ switch (alt115) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17759:2: rule__JvmParameterizedTypeReference__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group_1__0_in_rule__JvmParameterizedTypeReference__Group__1__Impl35621);
+ rule__JvmParameterizedTypeReference__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__Group__1__Impl"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17773:1: rule__JvmParameterizedTypeReference__Group_1__0 : rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 ;
+ public final void rule__JvmParameterizedTypeReference__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17777:1: ( rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17778:2: rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1
+ {
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group_1__0__Impl_in_rule__JvmParameterizedTypeReference__Group_1__035656);
+ rule__JvmParameterizedTypeReference__Group_1__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group_1__1_in_rule__JvmParameterizedTypeReference__Group_1__035659);
+ rule__JvmParameterizedTypeReference__Group_1__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__0"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17785:1: rule__JvmParameterizedTypeReference__Group_1__0__Impl : ( ( '<' ) ) ;
+ public final void rule__JvmParameterizedTypeReference__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17789:1: ( ( ( '<' ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17790:1: ( ( '<' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17790:1: ( ( '<' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17791:1: ( '<' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17792:1: ( '<' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17793:2: '<'
+ {
+ match(input,25,FOLLOW_25_in_rule__JvmParameterizedTypeReference__Group_1__0__Impl35688); if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17804:1: rule__JvmParameterizedTypeReference__Group_1__1 : rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 ;
+ public final void rule__JvmParameterizedTypeReference__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17808:1: ( rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17809:2: rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2
+ {
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group_1__1__Impl_in_rule__JvmParameterizedTypeReference__Group_1__135720);
+ rule__JvmParameterizedTypeReference__Group_1__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group_1__2_in_rule__JvmParameterizedTypeReference__Group_1__135723);
+ rule__JvmParameterizedTypeReference__Group_1__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__1"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17816:1: rule__JvmParameterizedTypeReference__Group_1__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) ;
+ public final void rule__JvmParameterizedTypeReference__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17820:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17821:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17821:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17822:1: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17823:1: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17823:2: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
+ {
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1_in_rule__JvmParameterizedTypeReference__Group_1__1__Impl35750);
+ rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17833:1: rule__JvmParameterizedTypeReference__Group_1__2 : rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 ;
+ public final void rule__JvmParameterizedTypeReference__Group_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17837:1: ( rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17838:2: rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3
+ {
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group_1__2__Impl_in_rule__JvmParameterizedTypeReference__Group_1__235780);
+ rule__JvmParameterizedTypeReference__Group_1__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group_1__3_in_rule__JvmParameterizedTypeReference__Group_1__235783);
+ rule__JvmParameterizedTypeReference__Group_1__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__2"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17845:1: rule__JvmParameterizedTypeReference__Group_1__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) ;
+ public final void rule__JvmParameterizedTypeReference__Group_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17849:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17850:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17850:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17851:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17852:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
+ loop116:
+ do {
+ int alt116=2;
+ int LA116_0 = input.LA(1);
+
+ if ( (LA116_0==59) ) {
+ alt116=1;
+ }
+
+
+ switch (alt116) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17852:2: rule__JvmParameterizedTypeReference__Group_1_2__0
+ {
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group_1_2__0_in_rule__JvmParameterizedTypeReference__Group_1__2__Impl35810);
+ rule__JvmParameterizedTypeReference__Group_1_2__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ default :
+ break loop116;
+ }
+ } while (true);
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__2__Impl"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17862:1: rule__JvmParameterizedTypeReference__Group_1__3 : rule__JvmParameterizedTypeReference__Group_1__3__Impl ;
+ public final void rule__JvmParameterizedTypeReference__Group_1__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17866:1: ( rule__JvmParameterizedTypeReference__Group_1__3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17867:2: rule__JvmParameterizedTypeReference__Group_1__3__Impl
+ {
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group_1__3__Impl_in_rule__JvmParameterizedTypeReference__Group_1__335841);
+ rule__JvmParameterizedTypeReference__Group_1__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__3"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17873:1: rule__JvmParameterizedTypeReference__Group_1__3__Impl : ( '>' ) ;
+ public final void rule__JvmParameterizedTypeReference__Group_1__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17877:1: ( ( '>' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17878:1: ( '>' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17878:1: ( '>' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17879:1: '>'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3());
+ }
+ match(input,24,FOLLOW_24_in_rule__JvmParameterizedTypeReference__Group_1__3__Impl35869); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__3__Impl"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17900:1: rule__JvmParameterizedTypeReference__Group_1_2__0 : rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 ;
+ public final void rule__JvmParameterizedTypeReference__Group_1_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17904:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17905:2: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1
+ {
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group_1_2__0__Impl_in_rule__JvmParameterizedTypeReference__Group_1_2__035908);
+ rule__JvmParameterizedTypeReference__Group_1_2__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group_1_2__1_in_rule__JvmParameterizedTypeReference__Group_1_2__035911);
+ rule__JvmParameterizedTypeReference__Group_1_2__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_2__0"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17912:1: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl : ( ',' ) ;
+ public final void rule__JvmParameterizedTypeReference__Group_1_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17916:1: ( ( ',' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17917:1: ( ',' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17917:1: ( ',' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17918:1: ','
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0());
+ }
+ match(input,59,FOLLOW_59_in_rule__JvmParameterizedTypeReference__Group_1_2__0__Impl35939); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_2__0__Impl"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17931:1: rule__JvmParameterizedTypeReference__Group_1_2__1 : rule__JvmParameterizedTypeReference__Group_1_2__1__Impl ;
+ public final void rule__JvmParameterizedTypeReference__Group_1_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17935:1: ( rule__JvmParameterizedTypeReference__Group_1_2__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17936:2: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
+ {
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group_1_2__1__Impl_in_rule__JvmParameterizedTypeReference__Group_1_2__135970);
+ rule__JvmParameterizedTypeReference__Group_1_2__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_2__1"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17942:1: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) ;
+ public final void rule__JvmParameterizedTypeReference__Group_1_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17946:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17947:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17947:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17948:1: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17949:1: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17949:2: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
+ {
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1_in_rule__JvmParameterizedTypeReference__Group_1_2__1__Impl35997);
+ rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_2__1__Impl"
+
+
+ // $ANTLR start "rule__JvmWildcardTypeReference__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17963:1: rule__JvmWildcardTypeReference__Group__0 : rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 ;
+ public final void rule__JvmWildcardTypeReference__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17967:1: ( rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17968:2: rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1
+ {
+ pushFollow(FOLLOW_rule__JvmWildcardTypeReference__Group__0__Impl_in_rule__JvmWildcardTypeReference__Group__036031);
+ rule__JvmWildcardTypeReference__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__JvmWildcardTypeReference__Group__1_in_rule__JvmWildcardTypeReference__Group__036034);
+ rule__JvmWildcardTypeReference__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmWildcardTypeReference__Group__0"
+
+
+ // $ANTLR start "rule__JvmWildcardTypeReference__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17975:1: rule__JvmWildcardTypeReference__Group__0__Impl : ( () ) ;
+ public final void rule__JvmWildcardTypeReference__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17979:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17980:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17980:1: ( () )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17981:1: ()
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17982:1: ()
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17984:1:
+ {
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmWildcardTypeReference__Group__0__Impl"
+
+
+ // $ANTLR start "rule__JvmWildcardTypeReference__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17994:1: rule__JvmWildcardTypeReference__Group__1 : rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 ;
+ public final void rule__JvmWildcardTypeReference__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17998:1: ( rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17999:2: rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2
+ {
+ pushFollow(FOLLOW_rule__JvmWildcardTypeReference__Group__1__Impl_in_rule__JvmWildcardTypeReference__Group__136092);
+ rule__JvmWildcardTypeReference__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__JvmWildcardTypeReference__Group__2_in_rule__JvmWildcardTypeReference__Group__136095);
+ rule__JvmWildcardTypeReference__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmWildcardTypeReference__Group__1"
+
+
+ // $ANTLR start "rule__JvmWildcardTypeReference__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18006:1: rule__JvmWildcardTypeReference__Group__1__Impl : ( '?' ) ;
+ public final void rule__JvmWildcardTypeReference__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18010:1: ( ( '?' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18011:1: ( '?' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18011:1: ( '?' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18012:1: '?'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1());
+ }
+ match(input,94,FOLLOW_94_in_rule__JvmWildcardTypeReference__Group__1__Impl36123); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmWildcardTypeReference__Group__1__Impl"
+
+
+ // $ANTLR start "rule__JvmWildcardTypeReference__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18025:1: rule__JvmWildcardTypeReference__Group__2 : rule__JvmWildcardTypeReference__Group__2__Impl ;
+ public final void rule__JvmWildcardTypeReference__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18029:1: ( rule__JvmWildcardTypeReference__Group__2__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18030:2: rule__JvmWildcardTypeReference__Group__2__Impl
+ {
+ pushFollow(FOLLOW_rule__JvmWildcardTypeReference__Group__2__Impl_in_rule__JvmWildcardTypeReference__Group__236154);
+ rule__JvmWildcardTypeReference__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmWildcardTypeReference__Group__2"
+
+
+ // $ANTLR start "rule__JvmWildcardTypeReference__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18036:1: rule__JvmWildcardTypeReference__Group__2__Impl : ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) ;
+ public final void rule__JvmWildcardTypeReference__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18040:1: ( ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18041:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18041:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18042:1: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18043:1: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
+ int alt117=2;
+ int LA117_0 = input.LA(1);
+
+ if ( (LA117_0==42||LA117_0==46) ) {
+ alt117=1;
+ }
+ switch (alt117) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18043:2: rule__JvmWildcardTypeReference__Alternatives_2
+ {
+ pushFollow(FOLLOW_rule__JvmWildcardTypeReference__Alternatives_2_in_rule__JvmWildcardTypeReference__Group__2__Impl36181);
+ rule__JvmWildcardTypeReference__Alternatives_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmWildcardTypeReference__Group__2__Impl"
+
+
+ // $ANTLR start "rule__JvmUpperBound__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18059:1: rule__JvmUpperBound__Group__0 : rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 ;
+ public final void rule__JvmUpperBound__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18063:1: ( rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18064:2: rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1
+ {
+ pushFollow(FOLLOW_rule__JvmUpperBound__Group__0__Impl_in_rule__JvmUpperBound__Group__036218);
+ rule__JvmUpperBound__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__JvmUpperBound__Group__1_in_rule__JvmUpperBound__Group__036221);
+ rule__JvmUpperBound__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmUpperBound__Group__0"
+
+
+ // $ANTLR start "rule__JvmUpperBound__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18071:1: rule__JvmUpperBound__Group__0__Impl : ( 'extends' ) ;
+ public final void rule__JvmUpperBound__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18075:1: ( ( 'extends' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18076:1: ( 'extends' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18076:1: ( 'extends' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18077:1: 'extends'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0());
+ }
+ match(input,42,FOLLOW_42_in_rule__JvmUpperBound__Group__0__Impl36249); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmUpperBound__Group__0__Impl"
+
+
+ // $ANTLR start "rule__JvmUpperBound__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18090:1: rule__JvmUpperBound__Group__1 : rule__JvmUpperBound__Group__1__Impl ;
+ public final void rule__JvmUpperBound__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18094:1: ( rule__JvmUpperBound__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18095:2: rule__JvmUpperBound__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__JvmUpperBound__Group__1__Impl_in_rule__JvmUpperBound__Group__136280);
+ rule__JvmUpperBound__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmUpperBound__Group__1"
+
+
+ // $ANTLR start "rule__JvmUpperBound__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18101:1: rule__JvmUpperBound__Group__1__Impl : ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) ;
+ public final void rule__JvmUpperBound__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18105:1: ( ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18106:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18106:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18107:1: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18108:1: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18108:2: rule__JvmUpperBound__TypeReferenceAssignment_1
+ {
+ pushFollow(FOLLOW_rule__JvmUpperBound__TypeReferenceAssignment_1_in_rule__JvmUpperBound__Group__1__Impl36307);
+ rule__JvmUpperBound__TypeReferenceAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmUpperBound__Group__1__Impl"
+
+
+ // $ANTLR start "rule__JvmUpperBoundAnded__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18122:1: rule__JvmUpperBoundAnded__Group__0 : rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 ;
+ public final void rule__JvmUpperBoundAnded__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18126:1: ( rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18127:2: rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1
+ {
+ pushFollow(FOLLOW_rule__JvmUpperBoundAnded__Group__0__Impl_in_rule__JvmUpperBoundAnded__Group__036341);
+ rule__JvmUpperBoundAnded__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__JvmUpperBoundAnded__Group__1_in_rule__JvmUpperBoundAnded__Group__036344);
+ rule__JvmUpperBoundAnded__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmUpperBoundAnded__Group__0"
+
+
+ // $ANTLR start "rule__JvmUpperBoundAnded__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18134:1: rule__JvmUpperBoundAnded__Group__0__Impl : ( '&' ) ;
+ public final void rule__JvmUpperBoundAnded__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18138:1: ( ( '&' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18139:1: ( '&' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18139:1: ( '&' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18140:1: '&'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0());
+ }
+ match(input,95,FOLLOW_95_in_rule__JvmUpperBoundAnded__Group__0__Impl36372); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmUpperBoundAnded__Group__0__Impl"
+
+
+ // $ANTLR start "rule__JvmUpperBoundAnded__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18153:1: rule__JvmUpperBoundAnded__Group__1 : rule__JvmUpperBoundAnded__Group__1__Impl ;
+ public final void rule__JvmUpperBoundAnded__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18157:1: ( rule__JvmUpperBoundAnded__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18158:2: rule__JvmUpperBoundAnded__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__JvmUpperBoundAnded__Group__1__Impl_in_rule__JvmUpperBoundAnded__Group__136403);
+ rule__JvmUpperBoundAnded__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmUpperBoundAnded__Group__1"
+
+
+ // $ANTLR start "rule__JvmUpperBoundAnded__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18164:1: rule__JvmUpperBoundAnded__Group__1__Impl : ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) ;
+ public final void rule__JvmUpperBoundAnded__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18168:1: ( ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18169:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18169:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18170:1: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18171:1: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18171:2: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
+ {
+ pushFollow(FOLLOW_rule__JvmUpperBoundAnded__TypeReferenceAssignment_1_in_rule__JvmUpperBoundAnded__Group__1__Impl36430);
+ rule__JvmUpperBoundAnded__TypeReferenceAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmUpperBoundAnded__Group__1__Impl"
+
+
+ // $ANTLR start "rule__JvmLowerBound__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18185:1: rule__JvmLowerBound__Group__0 : rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 ;
+ public final void rule__JvmLowerBound__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18189:1: ( rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18190:2: rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1
+ {
+ pushFollow(FOLLOW_rule__JvmLowerBound__Group__0__Impl_in_rule__JvmLowerBound__Group__036464);
+ rule__JvmLowerBound__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__JvmLowerBound__Group__1_in_rule__JvmLowerBound__Group__036467);
+ rule__JvmLowerBound__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmLowerBound__Group__0"
+
+
+ // $ANTLR start "rule__JvmLowerBound__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18197:1: rule__JvmLowerBound__Group__0__Impl : ( 'super' ) ;
+ public final void rule__JvmLowerBound__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18201:1: ( ( 'super' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18202:1: ( 'super' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18202:1: ( 'super' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18203:1: 'super'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0());
+ }
+ match(input,46,FOLLOW_46_in_rule__JvmLowerBound__Group__0__Impl36495); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmLowerBound__Group__0__Impl"
+
+
+ // $ANTLR start "rule__JvmLowerBound__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18216:1: rule__JvmLowerBound__Group__1 : rule__JvmLowerBound__Group__1__Impl ;
+ public final void rule__JvmLowerBound__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18220:1: ( rule__JvmLowerBound__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18221:2: rule__JvmLowerBound__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__JvmLowerBound__Group__1__Impl_in_rule__JvmLowerBound__Group__136526);
+ rule__JvmLowerBound__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmLowerBound__Group__1"
+
+
+ // $ANTLR start "rule__JvmLowerBound__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18227:1: rule__JvmLowerBound__Group__1__Impl : ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) ;
+ public final void rule__JvmLowerBound__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18231:1: ( ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18232:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18232:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18233:1: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18234:1: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18234:2: rule__JvmLowerBound__TypeReferenceAssignment_1
+ {
+ pushFollow(FOLLOW_rule__JvmLowerBound__TypeReferenceAssignment_1_in_rule__JvmLowerBound__Group__1__Impl36553);
+ rule__JvmLowerBound__TypeReferenceAssignment_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmLowerBound__Group__1__Impl"
+
+
+ // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18250:1: rule__QualifiedNameWithWildcard__Group__0 : rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 ;
+ public final void rule__QualifiedNameWithWildcard__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18254:1: ( rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18255:2: rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1
+ {
+ pushFollow(FOLLOW_rule__QualifiedNameWithWildcard__Group__0__Impl_in_rule__QualifiedNameWithWildcard__Group__036589);
+ rule__QualifiedNameWithWildcard__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__QualifiedNameWithWildcard__Group__1_in_rule__QualifiedNameWithWildcard__Group__036592);
+ rule__QualifiedNameWithWildcard__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedNameWithWildcard__Group__0"
+
+
+ // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18262:1: rule__QualifiedNameWithWildcard__Group__0__Impl : ( ruleQualifiedName ) ;
+ public final void rule__QualifiedNameWithWildcard__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18266:1: ( ( ruleQualifiedName ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18267:1: ( ruleQualifiedName )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18267:1: ( ruleQualifiedName )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18268:1: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_rule__QualifiedNameWithWildcard__Group__0__Impl36619);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedNameWithWildcard__Group__0__Impl"
+
+
+ // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18279:1: rule__QualifiedNameWithWildcard__Group__1 : rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 ;
+ public final void rule__QualifiedNameWithWildcard__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18283:1: ( rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18284:2: rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2
+ {
+ pushFollow(FOLLOW_rule__QualifiedNameWithWildcard__Group__1__Impl_in_rule__QualifiedNameWithWildcard__Group__136648);
+ rule__QualifiedNameWithWildcard__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__QualifiedNameWithWildcard__Group__2_in_rule__QualifiedNameWithWildcard__Group__136651);
+ rule__QualifiedNameWithWildcard__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedNameWithWildcard__Group__1"
+
+
+ // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18291:1: rule__QualifiedNameWithWildcard__Group__1__Impl : ( '.' ) ;
+ public final void rule__QualifiedNameWithWildcard__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18295:1: ( ( '.' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18296:1: ( '.' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18296:1: ( '.' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18297:1: '.'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1());
+ }
+ match(input,40,FOLLOW_40_in_rule__QualifiedNameWithWildcard__Group__1__Impl36679); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedNameWithWildcard__Group__1__Impl"
+
+
+ // $ANTLR start "rule__QualifiedNameWithWildcard__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18310:1: rule__QualifiedNameWithWildcard__Group__2 : rule__QualifiedNameWithWildcard__Group__2__Impl ;
+ public final void rule__QualifiedNameWithWildcard__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18314:1: ( rule__QualifiedNameWithWildcard__Group__2__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18315:2: rule__QualifiedNameWithWildcard__Group__2__Impl
+ {
+ pushFollow(FOLLOW_rule__QualifiedNameWithWildcard__Group__2__Impl_in_rule__QualifiedNameWithWildcard__Group__236710);
+ rule__QualifiedNameWithWildcard__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedNameWithWildcard__Group__2"
+
+
+ // $ANTLR start "rule__QualifiedNameWithWildcard__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18321:1: rule__QualifiedNameWithWildcard__Group__2__Impl : ( '*' ) ;
+ public final void rule__QualifiedNameWithWildcard__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18325:1: ( ( '*' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18326:1: ( '*' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18326:1: ( '*' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18327:1: '*'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2());
+ }
+ match(input,35,FOLLOW_35_in_rule__QualifiedNameWithWildcard__Group__2__Impl36738); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__QualifiedNameWithWildcard__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XImportDeclaration__Group__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18346:1: rule__XImportDeclaration__Group__0 : rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 ;
+ public final void rule__XImportDeclaration__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18350:1: ( rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18351:2: rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1
+ {
+ pushFollow(FOLLOW_rule__XImportDeclaration__Group__0__Impl_in_rule__XImportDeclaration__Group__036775);
+ rule__XImportDeclaration__Group__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XImportDeclaration__Group__1_in_rule__XImportDeclaration__Group__036778);
+ rule__XImportDeclaration__Group__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__Group__0"
+
+
+ // $ANTLR start "rule__XImportDeclaration__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18358:1: rule__XImportDeclaration__Group__0__Impl : ( 'import' ) ;
+ public final void rule__XImportDeclaration__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18362:1: ( ( 'import' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18363:1: ( 'import' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18363:1: ( 'import' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18364:1: 'import'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getImportKeyword_0());
+ }
+ match(input,44,FOLLOW_44_in_rule__XImportDeclaration__Group__0__Impl36806); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getImportKeyword_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__Group__0__Impl"
+
+
+ // $ANTLR start "rule__XImportDeclaration__Group__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18377:1: rule__XImportDeclaration__Group__1 : rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 ;
+ public final void rule__XImportDeclaration__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18381:1: ( rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18382:2: rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2
+ {
+ pushFollow(FOLLOW_rule__XImportDeclaration__Group__1__Impl_in_rule__XImportDeclaration__Group__136837);
+ rule__XImportDeclaration__Group__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XImportDeclaration__Group__2_in_rule__XImportDeclaration__Group__136840);
+ rule__XImportDeclaration__Group__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__Group__1"
+
+
+ // $ANTLR start "rule__XImportDeclaration__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18389:1: rule__XImportDeclaration__Group__1__Impl : ( ( rule__XImportDeclaration__Alternatives_1 ) ) ;
+ public final void rule__XImportDeclaration__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18393:1: ( ( ( rule__XImportDeclaration__Alternatives_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18394:1: ( ( rule__XImportDeclaration__Alternatives_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18394:1: ( ( rule__XImportDeclaration__Alternatives_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18395:1: ( rule__XImportDeclaration__Alternatives_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getAlternatives_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18396:1: ( rule__XImportDeclaration__Alternatives_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18396:2: rule__XImportDeclaration__Alternatives_1
+ {
+ pushFollow(FOLLOW_rule__XImportDeclaration__Alternatives_1_in_rule__XImportDeclaration__Group__1__Impl36867);
+ rule__XImportDeclaration__Alternatives_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getAlternatives_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__Group__1__Impl"
+
+
+ // $ANTLR start "rule__XImportDeclaration__Group__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18406:1: rule__XImportDeclaration__Group__2 : rule__XImportDeclaration__Group__2__Impl ;
+ public final void rule__XImportDeclaration__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18410:1: ( rule__XImportDeclaration__Group__2__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18411:2: rule__XImportDeclaration__Group__2__Impl
+ {
+ pushFollow(FOLLOW_rule__XImportDeclaration__Group__2__Impl_in_rule__XImportDeclaration__Group__236897);
+ rule__XImportDeclaration__Group__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__Group__2"
+
+
+ // $ANTLR start "rule__XImportDeclaration__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18417:1: rule__XImportDeclaration__Group__2__Impl : ( ( ';' )? ) ;
+ public final void rule__XImportDeclaration__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18421:1: ( ( ( ';' )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18422:1: ( ( ';' )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18422:1: ( ( ';' )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18423:1: ( ';' )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18424:1: ( ';' )?
+ int alt118=2;
+ int LA118_0 = input.LA(1);
+
+ if ( (LA118_0==76) ) {
+ alt118=1;
+ }
+ switch (alt118) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18425:2: ';'
+ {
+ match(input,76,FOLLOW_76_in_rule__XImportDeclaration__Group__2__Impl36926); if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__Group__2__Impl"
+
+
+ // $ANTLR start "rule__XImportDeclaration__Group_1_0__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18442:1: rule__XImportDeclaration__Group_1_0__0 : rule__XImportDeclaration__Group_1_0__0__Impl rule__XImportDeclaration__Group_1_0__1 ;
+ public final void rule__XImportDeclaration__Group_1_0__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18446:1: ( rule__XImportDeclaration__Group_1_0__0__Impl rule__XImportDeclaration__Group_1_0__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18447:2: rule__XImportDeclaration__Group_1_0__0__Impl rule__XImportDeclaration__Group_1_0__1
+ {
+ pushFollow(FOLLOW_rule__XImportDeclaration__Group_1_0__0__Impl_in_rule__XImportDeclaration__Group_1_0__036965);
+ rule__XImportDeclaration__Group_1_0__0__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XImportDeclaration__Group_1_0__1_in_rule__XImportDeclaration__Group_1_0__036968);
+ rule__XImportDeclaration__Group_1_0__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__Group_1_0__0"
+
+
+ // $ANTLR start "rule__XImportDeclaration__Group_1_0__0__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18454:1: rule__XImportDeclaration__Group_1_0__0__Impl : ( ( rule__XImportDeclaration__StaticAssignment_1_0_0 ) ) ;
+ public final void rule__XImportDeclaration__Group_1_0__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18458:1: ( ( ( rule__XImportDeclaration__StaticAssignment_1_0_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18459:1: ( ( rule__XImportDeclaration__StaticAssignment_1_0_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18459:1: ( ( rule__XImportDeclaration__StaticAssignment_1_0_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18460:1: ( rule__XImportDeclaration__StaticAssignment_1_0_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18461:1: ( rule__XImportDeclaration__StaticAssignment_1_0_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18461:2: rule__XImportDeclaration__StaticAssignment_1_0_0
+ {
+ pushFollow(FOLLOW_rule__XImportDeclaration__StaticAssignment_1_0_0_in_rule__XImportDeclaration__Group_1_0__0__Impl36995);
+ rule__XImportDeclaration__StaticAssignment_1_0_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__Group_1_0__0__Impl"
+
+
+ // $ANTLR start "rule__XImportDeclaration__Group_1_0__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18471:1: rule__XImportDeclaration__Group_1_0__1 : rule__XImportDeclaration__Group_1_0__1__Impl rule__XImportDeclaration__Group_1_0__2 ;
+ public final void rule__XImportDeclaration__Group_1_0__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18475:1: ( rule__XImportDeclaration__Group_1_0__1__Impl rule__XImportDeclaration__Group_1_0__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18476:2: rule__XImportDeclaration__Group_1_0__1__Impl rule__XImportDeclaration__Group_1_0__2
+ {
+ pushFollow(FOLLOW_rule__XImportDeclaration__Group_1_0__1__Impl_in_rule__XImportDeclaration__Group_1_0__137025);
+ rule__XImportDeclaration__Group_1_0__1__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XImportDeclaration__Group_1_0__2_in_rule__XImportDeclaration__Group_1_0__137028);
+ rule__XImportDeclaration__Group_1_0__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__Group_1_0__1"
+
+
+ // $ANTLR start "rule__XImportDeclaration__Group_1_0__1__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18483:1: rule__XImportDeclaration__Group_1_0__1__Impl : ( ( rule__XImportDeclaration__ExtensionAssignment_1_0_1 )? ) ;
+ public final void rule__XImportDeclaration__Group_1_0__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18487:1: ( ( ( rule__XImportDeclaration__ExtensionAssignment_1_0_1 )? ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18488:1: ( ( rule__XImportDeclaration__ExtensionAssignment_1_0_1 )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18488:1: ( ( rule__XImportDeclaration__ExtensionAssignment_1_0_1 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18489:1: ( rule__XImportDeclaration__ExtensionAssignment_1_0_1 )?
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_1_0_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18490:1: ( rule__XImportDeclaration__ExtensionAssignment_1_0_1 )?
+ int alt119=2;
+ int LA119_0 = input.LA(1);
+
+ if ( (LA119_0==45) ) {
+ alt119=1;
+ }
+ switch (alt119) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18490:2: rule__XImportDeclaration__ExtensionAssignment_1_0_1
+ {
+ pushFollow(FOLLOW_rule__XImportDeclaration__ExtensionAssignment_1_0_1_in_rule__XImportDeclaration__Group_1_0__1__Impl37055);
+ rule__XImportDeclaration__ExtensionAssignment_1_0_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_1_0_1());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__Group_1_0__1__Impl"
+
+
+ // $ANTLR start "rule__XImportDeclaration__Group_1_0__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18500:1: rule__XImportDeclaration__Group_1_0__2 : rule__XImportDeclaration__Group_1_0__2__Impl rule__XImportDeclaration__Group_1_0__3 ;
+ public final void rule__XImportDeclaration__Group_1_0__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18504:1: ( rule__XImportDeclaration__Group_1_0__2__Impl rule__XImportDeclaration__Group_1_0__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18505:2: rule__XImportDeclaration__Group_1_0__2__Impl rule__XImportDeclaration__Group_1_0__3
+ {
+ pushFollow(FOLLOW_rule__XImportDeclaration__Group_1_0__2__Impl_in_rule__XImportDeclaration__Group_1_0__237086);
+ rule__XImportDeclaration__Group_1_0__2__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XImportDeclaration__Group_1_0__3_in_rule__XImportDeclaration__Group_1_0__237089);
+ rule__XImportDeclaration__Group_1_0__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__Group_1_0__2"
+
+
+ // $ANTLR start "rule__XImportDeclaration__Group_1_0__2__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18512:1: rule__XImportDeclaration__Group_1_0__2__Impl : ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 ) ) ;
+ public final void rule__XImportDeclaration__Group_1_0__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18516:1: ( ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18517:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18517:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18518:1: ( rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_0_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18519:1: ( rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18519:2: rule__XImportDeclaration__ImportedTypeAssignment_1_0_2
+ {
+ pushFollow(FOLLOW_rule__XImportDeclaration__ImportedTypeAssignment_1_0_2_in_rule__XImportDeclaration__Group_1_0__2__Impl37116);
+ rule__XImportDeclaration__ImportedTypeAssignment_1_0_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_0_2());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__Group_1_0__2__Impl"
+
+
+ // $ANTLR start "rule__XImportDeclaration__Group_1_0__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18529:1: rule__XImportDeclaration__Group_1_0__3 : rule__XImportDeclaration__Group_1_0__3__Impl rule__XImportDeclaration__Group_1_0__4 ;
+ public final void rule__XImportDeclaration__Group_1_0__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18533:1: ( rule__XImportDeclaration__Group_1_0__3__Impl rule__XImportDeclaration__Group_1_0__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18534:2: rule__XImportDeclaration__Group_1_0__3__Impl rule__XImportDeclaration__Group_1_0__4
+ {
+ pushFollow(FOLLOW_rule__XImportDeclaration__Group_1_0__3__Impl_in_rule__XImportDeclaration__Group_1_0__337146);
+ rule__XImportDeclaration__Group_1_0__3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ pushFollow(FOLLOW_rule__XImportDeclaration__Group_1_0__4_in_rule__XImportDeclaration__Group_1_0__337149);
+ rule__XImportDeclaration__Group_1_0__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__Group_1_0__3"
+
+
+ // $ANTLR start "rule__XImportDeclaration__Group_1_0__3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18541:1: rule__XImportDeclaration__Group_1_0__3__Impl : ( '.' ) ;
+ public final void rule__XImportDeclaration__Group_1_0__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18545:1: ( ( '.' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18546:1: ( '.' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18546:1: ( '.' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18547:1: '.'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getFullStopKeyword_1_0_3());
+ }
+ match(input,40,FOLLOW_40_in_rule__XImportDeclaration__Group_1_0__3__Impl37177); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getFullStopKeyword_1_0_3());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__Group_1_0__3__Impl"
+
+
+ // $ANTLR start "rule__XImportDeclaration__Group_1_0__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18560:1: rule__XImportDeclaration__Group_1_0__4 : rule__XImportDeclaration__Group_1_0__4__Impl ;
+ public final void rule__XImportDeclaration__Group_1_0__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18564:1: ( rule__XImportDeclaration__Group_1_0__4__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18565:2: rule__XImportDeclaration__Group_1_0__4__Impl
+ {
+ pushFollow(FOLLOW_rule__XImportDeclaration__Group_1_0__4__Impl_in_rule__XImportDeclaration__Group_1_0__437208);
+ rule__XImportDeclaration__Group_1_0__4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__Group_1_0__4"
+
+
+ // $ANTLR start "rule__XImportDeclaration__Group_1_0__4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18571:1: rule__XImportDeclaration__Group_1_0__4__Impl : ( '*' ) ;
+ public final void rule__XImportDeclaration__Group_1_0__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18575:1: ( ( '*' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18576:1: ( '*' )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18576:1: ( '*' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18577:1: '*'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getAsteriskKeyword_1_0_4());
+ }
+ match(input,35,FOLLOW_35_in_rule__XImportDeclaration__Group_1_0__4__Impl37236); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getAsteriskKeyword_1_0_4());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__Group_1_0__4__Impl"
+
+
+ // $ANTLR start "rule__Module__UnorderedGroup_4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18601:1: rule__Module__UnorderedGroup_4 : ( rule__Module__UnorderedGroup_4__0 )? ;
+ public final void rule__Module__UnorderedGroup_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18606:1: ( ( rule__Module__UnorderedGroup_4__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18607:2: ( rule__Module__UnorderedGroup_4__0 )?
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18607:2: ( rule__Module__UnorderedGroup_4__0 )?
+ int alt120=2;
+ int LA120_0 = input.LA(1);
+
+ if ( LA120_0 ==52 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0) ) {
+ alt120=1;
+ }
+ else if ( LA120_0 ==55 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1) ) {
+ alt120=1;
+ }
+ else if ( LA120_0 ==57 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2) ) {
+ alt120=1;
+ }
+ else if ( LA120_0 ==60 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3) ) {
+ alt120=1;
+ }
+ else if ( LA120_0 ==63 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4) ) {
+ alt120=1;
+ }
+ else if ( LA120_0 ==64 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5) ) {
+ alt120=1;
+ }
+ else if ( LA120_0 ==51 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6) ) {
+ alt120=1;
+ }
+ switch (alt120) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:0:0: rule__Module__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__0_in_rule__Module__UnorderedGroup_437278);
+ rule__Module__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__UnorderedGroup_4"
+
+
+ // $ANTLR start "rule__Module__UnorderedGroup_4__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18617:1: rule__Module__UnorderedGroup_4__Impl : ( ({...}? => ( ( ( rule__Module__LabelProviderAssignment_4_0 ) ) ) ) | ({...}? => ( ( ( rule__Module__PropertyDescriptionProviderAssignment_4_1 ) ) ) ) | ({...}? => ( ( ( rule__Module__FeaturesProviderAssignment_4_2 ) ) ) ) | ({...}? => ( ( ( rule__Module__FormControlFactoryAssignment_4_3 ) ) ) ) | ({...}? => ( ( ( rule__Module__ProposalCreatorAssignment_4_4 ) ) ) ) | ({...}? => ( ( ( rule__Module__ViewerContentProviderAssignment_4_5 ) ) ) ) | ({...}? => ( ( ( rule__Module__Group_4_6__0 ) ) ) ) ) ;
+ public final void rule__Module__UnorderedGroup_4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18622:1: ( ( ({...}? => ( ( ( rule__Module__LabelProviderAssignment_4_0 ) ) ) ) | ({...}? => ( ( ( rule__Module__PropertyDescriptionProviderAssignment_4_1 ) ) ) ) | ({...}? => ( ( ( rule__Module__FeaturesProviderAssignment_4_2 ) ) ) ) | ({...}? => ( ( ( rule__Module__FormControlFactoryAssignment_4_3 ) ) ) ) | ({...}? => ( ( ( rule__Module__ProposalCreatorAssignment_4_4 ) ) ) ) | ({...}? => ( ( ( rule__Module__ViewerContentProviderAssignment_4_5 ) ) ) ) | ({...}? => ( ( ( rule__Module__Group_4_6__0 ) ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18623:3: ( ({...}? => ( ( ( rule__Module__LabelProviderAssignment_4_0 ) ) ) ) | ({...}? => ( ( ( rule__Module__PropertyDescriptionProviderAssignment_4_1 ) ) ) ) | ({...}? => ( ( ( rule__Module__FeaturesProviderAssignment_4_2 ) ) ) ) | ({...}? => ( ( ( rule__Module__FormControlFactoryAssignment_4_3 ) ) ) ) | ({...}? => ( ( ( rule__Module__ProposalCreatorAssignment_4_4 ) ) ) ) | ({...}? => ( ( ( rule__Module__ViewerContentProviderAssignment_4_5 ) ) ) ) | ({...}? => ( ( ( rule__Module__Group_4_6__0 ) ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18623:3: ( ({...}? => ( ( ( rule__Module__LabelProviderAssignment_4_0 ) ) ) ) | ({...}? => ( ( ( rule__Module__PropertyDescriptionProviderAssignment_4_1 ) ) ) ) | ({...}? => ( ( ( rule__Module__FeaturesProviderAssignment_4_2 ) ) ) ) | ({...}? => ( ( ( rule__Module__FormControlFactoryAssignment_4_3 ) ) ) ) | ({...}? => ( ( ( rule__Module__ProposalCreatorAssignment_4_4 ) ) ) ) | ({...}? => ( ( ( rule__Module__ViewerContentProviderAssignment_4_5 ) ) ) ) | ({...}? => ( ( ( rule__Module__Group_4_6__0 ) ) ) ) )
+ int alt121=7;
+ int LA121_0 = input.LA(1);
+
+ if ( LA121_0 ==52 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0) ) {
+ alt121=1;
+ }
+ else if ( LA121_0 ==55 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1) ) {
+ alt121=2;
+ }
+ else if ( LA121_0 ==57 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2) ) {
+ alt121=3;
+ }
+ else if ( LA121_0 ==60 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3) ) {
+ alt121=4;
+ }
+ else if ( LA121_0 ==63 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4) ) {
+ alt121=5;
+ }
+ else if ( LA121_0 ==64 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5) ) {
+ alt121=6;
+ }
+ else if ( LA121_0 ==51 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6) ) {
+ alt121=7;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 121, 0, input);
+
+ throw nvae;
+ }
+ switch (alt121) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18625:4: ({...}? => ( ( ( rule__Module__LabelProviderAssignment_4_0 ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18625:4: ({...}? => ( ( ( rule__Module__LabelProviderAssignment_4_0 ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18626:5: {...}? => ( ( ( rule__Module__LabelProviderAssignment_4_0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Module__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0)");
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18626:103: ( ( ( rule__Module__LabelProviderAssignment_4_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18627:6: ( ( rule__Module__LabelProviderAssignment_4_0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0);
+ selected = true;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18633:6: ( ( rule__Module__LabelProviderAssignment_4_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18635:7: ( rule__Module__LabelProviderAssignment_4_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getLabelProviderAssignment_4_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18636:7: ( rule__Module__LabelProviderAssignment_4_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18636:8: rule__Module__LabelProviderAssignment_4_0
+ {
+ pushFollow(FOLLOW_rule__Module__LabelProviderAssignment_4_0_in_rule__Module__UnorderedGroup_4__Impl37365);
+ rule__Module__LabelProviderAssignment_4_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getLabelProviderAssignment_4_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18642:4: ({...}? => ( ( ( rule__Module__PropertyDescriptionProviderAssignment_4_1 ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18642:4: ({...}? => ( ( ( rule__Module__PropertyDescriptionProviderAssignment_4_1 ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18643:5: {...}? => ( ( ( rule__Module__PropertyDescriptionProviderAssignment_4_1 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Module__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1)");
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18643:103: ( ( ( rule__Module__PropertyDescriptionProviderAssignment_4_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18644:6: ( ( rule__Module__PropertyDescriptionProviderAssignment_4_1 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1);
+ selected = true;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18650:6: ( ( rule__Module__PropertyDescriptionProviderAssignment_4_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18652:7: ( rule__Module__PropertyDescriptionProviderAssignment_4_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getPropertyDescriptionProviderAssignment_4_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18653:7: ( rule__Module__PropertyDescriptionProviderAssignment_4_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18653:8: rule__Module__PropertyDescriptionProviderAssignment_4_1
+ {
+ pushFollow(FOLLOW_rule__Module__PropertyDescriptionProviderAssignment_4_1_in_rule__Module__UnorderedGroup_4__Impl37456);
+ rule__Module__PropertyDescriptionProviderAssignment_4_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getPropertyDescriptionProviderAssignment_4_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18659:4: ({...}? => ( ( ( rule__Module__FeaturesProviderAssignment_4_2 ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18659:4: ({...}? => ( ( ( rule__Module__FeaturesProviderAssignment_4_2 ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18660:5: {...}? => ( ( ( rule__Module__FeaturesProviderAssignment_4_2 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Module__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2)");
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18660:103: ( ( ( rule__Module__FeaturesProviderAssignment_4_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18661:6: ( ( rule__Module__FeaturesProviderAssignment_4_2 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2);
+ selected = true;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18667:6: ( ( rule__Module__FeaturesProviderAssignment_4_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18669:7: ( rule__Module__FeaturesProviderAssignment_4_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getFeaturesProviderAssignment_4_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18670:7: ( rule__Module__FeaturesProviderAssignment_4_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18670:8: rule__Module__FeaturesProviderAssignment_4_2
+ {
+ pushFollow(FOLLOW_rule__Module__FeaturesProviderAssignment_4_2_in_rule__Module__UnorderedGroup_4__Impl37547);
+ rule__Module__FeaturesProviderAssignment_4_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getFeaturesProviderAssignment_4_2());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18676:4: ({...}? => ( ( ( rule__Module__FormControlFactoryAssignment_4_3 ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18676:4: ({...}? => ( ( ( rule__Module__FormControlFactoryAssignment_4_3 ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18677:5: {...}? => ( ( ( rule__Module__FormControlFactoryAssignment_4_3 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Module__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3)");
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18677:103: ( ( ( rule__Module__FormControlFactoryAssignment_4_3 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18678:6: ( ( rule__Module__FormControlFactoryAssignment_4_3 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3);
+ selected = true;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18684:6: ( ( rule__Module__FormControlFactoryAssignment_4_3 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18686:7: ( rule__Module__FormControlFactoryAssignment_4_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getFormControlFactoryAssignment_4_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18687:7: ( rule__Module__FormControlFactoryAssignment_4_3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18687:8: rule__Module__FormControlFactoryAssignment_4_3
+ {
+ pushFollow(FOLLOW_rule__Module__FormControlFactoryAssignment_4_3_in_rule__Module__UnorderedGroup_4__Impl37638);
+ rule__Module__FormControlFactoryAssignment_4_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getFormControlFactoryAssignment_4_3());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18693:4: ({...}? => ( ( ( rule__Module__ProposalCreatorAssignment_4_4 ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18693:4: ({...}? => ( ( ( rule__Module__ProposalCreatorAssignment_4_4 ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18694:5: {...}? => ( ( ( rule__Module__ProposalCreatorAssignment_4_4 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Module__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4)");
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18694:103: ( ( ( rule__Module__ProposalCreatorAssignment_4_4 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18695:6: ( ( rule__Module__ProposalCreatorAssignment_4_4 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4);
+ selected = true;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18701:6: ( ( rule__Module__ProposalCreatorAssignment_4_4 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18703:7: ( rule__Module__ProposalCreatorAssignment_4_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getProposalCreatorAssignment_4_4());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18704:7: ( rule__Module__ProposalCreatorAssignment_4_4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18704:8: rule__Module__ProposalCreatorAssignment_4_4
+ {
+ pushFollow(FOLLOW_rule__Module__ProposalCreatorAssignment_4_4_in_rule__Module__UnorderedGroup_4__Impl37729);
+ rule__Module__ProposalCreatorAssignment_4_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getProposalCreatorAssignment_4_4());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18710:4: ({...}? => ( ( ( rule__Module__ViewerContentProviderAssignment_4_5 ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18710:4: ({...}? => ( ( ( rule__Module__ViewerContentProviderAssignment_4_5 ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18711:5: {...}? => ( ( ( rule__Module__ViewerContentProviderAssignment_4_5 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Module__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5)");
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18711:103: ( ( ( rule__Module__ViewerContentProviderAssignment_4_5 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18712:6: ( ( rule__Module__ViewerContentProviderAssignment_4_5 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5);
+ selected = true;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18718:6: ( ( rule__Module__ViewerContentProviderAssignment_4_5 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18720:7: ( rule__Module__ViewerContentProviderAssignment_4_5 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getViewerContentProviderAssignment_4_5());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18721:7: ( rule__Module__ViewerContentProviderAssignment_4_5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18721:8: rule__Module__ViewerContentProviderAssignment_4_5
+ {
+ pushFollow(FOLLOW_rule__Module__ViewerContentProviderAssignment_4_5_in_rule__Module__UnorderedGroup_4__Impl37820);
+ rule__Module__ViewerContentProviderAssignment_4_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getViewerContentProviderAssignment_4_5());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18727:4: ({...}? => ( ( ( rule__Module__Group_4_6__0 ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18727:4: ({...}? => ( ( ( rule__Module__Group_4_6__0 ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18728:5: {...}? => ( ( ( rule__Module__Group_4_6__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__Module__UnorderedGroup_4__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6)");
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18728:103: ( ( ( rule__Module__Group_4_6__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18729:6: ( ( rule__Module__Group_4_6__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6);
+ selected = true;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18735:6: ( ( rule__Module__Group_4_6__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18737:7: ( rule__Module__Group_4_6__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getGroup_4_6());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18738:7: ( rule__Module__Group_4_6__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18738:8: rule__Module__Group_4_6__0
+ {
+ pushFollow(FOLLOW_rule__Module__Group_4_6__0_in_rule__Module__UnorderedGroup_4__Impl37911);
+ rule__Module__Group_4_6__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getGroup_4_6());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__UnorderedGroup_4__Impl"
+
+
+ // $ANTLR start "rule__Module__UnorderedGroup_4__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18753:1: rule__Module__UnorderedGroup_4__0 : rule__Module__UnorderedGroup_4__Impl ( rule__Module__UnorderedGroup_4__1 )? ;
+ public final void rule__Module__UnorderedGroup_4__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18757:1: ( rule__Module__UnorderedGroup_4__Impl ( rule__Module__UnorderedGroup_4__1 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18758:2: rule__Module__UnorderedGroup_4__Impl ( rule__Module__UnorderedGroup_4__1 )?
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__Impl_in_rule__Module__UnorderedGroup_4__037970);
+ rule__Module__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18759:2: ( rule__Module__UnorderedGroup_4__1 )?
+ int alt122=2;
+ int LA122_0 = input.LA(1);
+
+ if ( LA122_0 ==52 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0) ) {
+ alt122=1;
+ }
+ else if ( LA122_0 ==55 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1) ) {
+ alt122=1;
+ }
+ else if ( LA122_0 ==57 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2) ) {
+ alt122=1;
+ }
+ else if ( LA122_0 ==60 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3) ) {
+ alt122=1;
+ }
+ else if ( LA122_0 ==63 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4) ) {
+ alt122=1;
+ }
+ else if ( LA122_0 ==64 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5) ) {
+ alt122=1;
+ }
+ else if ( LA122_0 ==51 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6) ) {
+ alt122=1;
+ }
+ switch (alt122) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:0:0: rule__Module__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__1_in_rule__Module__UnorderedGroup_4__037973);
+ rule__Module__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__UnorderedGroup_4__0"
+
+
+ // $ANTLR start "rule__Module__UnorderedGroup_4__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18766:1: rule__Module__UnorderedGroup_4__1 : rule__Module__UnorderedGroup_4__Impl ( rule__Module__UnorderedGroup_4__2 )? ;
+ public final void rule__Module__UnorderedGroup_4__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18770:1: ( rule__Module__UnorderedGroup_4__Impl ( rule__Module__UnorderedGroup_4__2 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18771:2: rule__Module__UnorderedGroup_4__Impl ( rule__Module__UnorderedGroup_4__2 )?
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__Impl_in_rule__Module__UnorderedGroup_4__137998);
+ rule__Module__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18772:2: ( rule__Module__UnorderedGroup_4__2 )?
+ int alt123=2;
+ int LA123_0 = input.LA(1);
+
+ if ( LA123_0 ==52 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0) ) {
+ alt123=1;
+ }
+ else if ( LA123_0 ==55 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1) ) {
+ alt123=1;
+ }
+ else if ( LA123_0 ==57 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2) ) {
+ alt123=1;
+ }
+ else if ( LA123_0 ==60 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3) ) {
+ alt123=1;
+ }
+ else if ( LA123_0 ==63 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4) ) {
+ alt123=1;
+ }
+ else if ( LA123_0 ==64 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5) ) {
+ alt123=1;
+ }
+ else if ( LA123_0 ==51 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6) ) {
+ alt123=1;
+ }
+ switch (alt123) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:0:0: rule__Module__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__2_in_rule__Module__UnorderedGroup_4__138001);
+ rule__Module__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__UnorderedGroup_4__1"
+
+
+ // $ANTLR start "rule__Module__UnorderedGroup_4__2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18779:1: rule__Module__UnorderedGroup_4__2 : rule__Module__UnorderedGroup_4__Impl ( rule__Module__UnorderedGroup_4__3 )? ;
+ public final void rule__Module__UnorderedGroup_4__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18783:1: ( rule__Module__UnorderedGroup_4__Impl ( rule__Module__UnorderedGroup_4__3 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18784:2: rule__Module__UnorderedGroup_4__Impl ( rule__Module__UnorderedGroup_4__3 )?
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__Impl_in_rule__Module__UnorderedGroup_4__238026);
+ rule__Module__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18785:2: ( rule__Module__UnorderedGroup_4__3 )?
+ int alt124=2;
+ int LA124_0 = input.LA(1);
+
+ if ( LA124_0 ==52 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0) ) {
+ alt124=1;
+ }
+ else if ( LA124_0 ==55 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1) ) {
+ alt124=1;
+ }
+ else if ( LA124_0 ==57 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2) ) {
+ alt124=1;
+ }
+ else if ( LA124_0 ==60 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3) ) {
+ alt124=1;
+ }
+ else if ( LA124_0 ==63 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4) ) {
+ alt124=1;
+ }
+ else if ( LA124_0 ==64 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5) ) {
+ alt124=1;
+ }
+ else if ( LA124_0 ==51 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6) ) {
+ alt124=1;
+ }
+ switch (alt124) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:0:0: rule__Module__UnorderedGroup_4__3
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__3_in_rule__Module__UnorderedGroup_4__238029);
+ rule__Module__UnorderedGroup_4__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__UnorderedGroup_4__2"
+
+
+ // $ANTLR start "rule__Module__UnorderedGroup_4__3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18792:1: rule__Module__UnorderedGroup_4__3 : rule__Module__UnorderedGroup_4__Impl ( rule__Module__UnorderedGroup_4__4 )? ;
+ public final void rule__Module__UnorderedGroup_4__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18796:1: ( rule__Module__UnorderedGroup_4__Impl ( rule__Module__UnorderedGroup_4__4 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18797:2: rule__Module__UnorderedGroup_4__Impl ( rule__Module__UnorderedGroup_4__4 )?
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__Impl_in_rule__Module__UnorderedGroup_4__338054);
+ rule__Module__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18798:2: ( rule__Module__UnorderedGroup_4__4 )?
+ int alt125=2;
+ int LA125_0 = input.LA(1);
+
+ if ( LA125_0 ==52 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0) ) {
+ alt125=1;
+ }
+ else if ( LA125_0 ==55 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1) ) {
+ alt125=1;
+ }
+ else if ( LA125_0 ==57 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2) ) {
+ alt125=1;
+ }
+ else if ( LA125_0 ==60 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3) ) {
+ alt125=1;
+ }
+ else if ( LA125_0 ==63 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4) ) {
+ alt125=1;
+ }
+ else if ( LA125_0 ==64 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5) ) {
+ alt125=1;
+ }
+ else if ( LA125_0 ==51 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6) ) {
+ alt125=1;
+ }
+ switch (alt125) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:0:0: rule__Module__UnorderedGroup_4__4
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__4_in_rule__Module__UnorderedGroup_4__338057);
+ rule__Module__UnorderedGroup_4__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__UnorderedGroup_4__3"
+
+
+ // $ANTLR start "rule__Module__UnorderedGroup_4__4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18805:1: rule__Module__UnorderedGroup_4__4 : rule__Module__UnorderedGroup_4__Impl ( rule__Module__UnorderedGroup_4__5 )? ;
+ public final void rule__Module__UnorderedGroup_4__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18809:1: ( rule__Module__UnorderedGroup_4__Impl ( rule__Module__UnorderedGroup_4__5 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18810:2: rule__Module__UnorderedGroup_4__Impl ( rule__Module__UnorderedGroup_4__5 )?
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__Impl_in_rule__Module__UnorderedGroup_4__438082);
+ rule__Module__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18811:2: ( rule__Module__UnorderedGroup_4__5 )?
+ int alt126=2;
+ int LA126_0 = input.LA(1);
+
+ if ( LA126_0 ==52 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0) ) {
+ alt126=1;
+ }
+ else if ( LA126_0 ==55 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1) ) {
+ alt126=1;
+ }
+ else if ( LA126_0 ==57 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2) ) {
+ alt126=1;
+ }
+ else if ( LA126_0 ==60 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3) ) {
+ alt126=1;
+ }
+ else if ( LA126_0 ==63 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4) ) {
+ alt126=1;
+ }
+ else if ( LA126_0 ==64 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5) ) {
+ alt126=1;
+ }
+ else if ( LA126_0 ==51 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6) ) {
+ alt126=1;
+ }
+ switch (alt126) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:0:0: rule__Module__UnorderedGroup_4__5
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__5_in_rule__Module__UnorderedGroup_4__438085);
+ rule__Module__UnorderedGroup_4__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__UnorderedGroup_4__4"
+
+
+ // $ANTLR start "rule__Module__UnorderedGroup_4__5"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18818:1: rule__Module__UnorderedGroup_4__5 : rule__Module__UnorderedGroup_4__Impl ( rule__Module__UnorderedGroup_4__6 )? ;
+ public final void rule__Module__UnorderedGroup_4__5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18822:1: ( rule__Module__UnorderedGroup_4__Impl ( rule__Module__UnorderedGroup_4__6 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18823:2: rule__Module__UnorderedGroup_4__Impl ( rule__Module__UnorderedGroup_4__6 )?
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__Impl_in_rule__Module__UnorderedGroup_4__538110);
+ rule__Module__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18824:2: ( rule__Module__UnorderedGroup_4__6 )?
+ int alt127=2;
+ int LA127_0 = input.LA(1);
+
+ if ( LA127_0 ==52 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0) ) {
+ alt127=1;
+ }
+ else if ( LA127_0 ==55 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1) ) {
+ alt127=1;
+ }
+ else if ( LA127_0 ==57 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2) ) {
+ alt127=1;
+ }
+ else if ( LA127_0 ==60 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3) ) {
+ alt127=1;
+ }
+ else if ( LA127_0 ==63 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4) ) {
+ alt127=1;
+ }
+ else if ( LA127_0 ==64 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5) ) {
+ alt127=1;
+ }
+ else if ( LA127_0 ==51 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6) ) {
+ alt127=1;
+ }
+ switch (alt127) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:0:0: rule__Module__UnorderedGroup_4__6
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__6_in_rule__Module__UnorderedGroup_4__538113);
+ rule__Module__UnorderedGroup_4__6();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__UnorderedGroup_4__5"
+
+
+ // $ANTLR start "rule__Module__UnorderedGroup_4__6"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18831:1: rule__Module__UnorderedGroup_4__6 : rule__Module__UnorderedGroup_4__Impl ;
+ public final void rule__Module__UnorderedGroup_4__6() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18835:1: ( rule__Module__UnorderedGroup_4__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18836:2: rule__Module__UnorderedGroup_4__Impl
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__Impl_in_rule__Module__UnorderedGroup_4__638138);
+ rule__Module__UnorderedGroup_4__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__UnorderedGroup_4__6"
+
+
+ // $ANTLR start "rule__LabelProvider__UnorderedGroup_3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18857:1: rule__LabelProvider__UnorderedGroup_3 : ( rule__LabelProvider__UnorderedGroup_3__0 )? ;
+ public final void rule__LabelProvider__UnorderedGroup_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ getUnorderedGroupHelper().enter(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3());
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18862:1: ( ( rule__LabelProvider__UnorderedGroup_3__0 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18863:2: ( rule__LabelProvider__UnorderedGroup_3__0 )?
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18863:2: ( rule__LabelProvider__UnorderedGroup_3__0 )?
+ int alt128=2;
+ int LA128_0 = input.LA(1);
+
+ if ( LA128_0 ==53 && getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 0) ) {
+ alt128=1;
+ }
+ else if ( LA128_0 ==54 && getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 1) ) {
+ alt128=1;
+ }
+ switch (alt128) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:0:0: rule__LabelProvider__UnorderedGroup_3__0
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__UnorderedGroup_3__0_in_rule__LabelProvider__UnorderedGroup_338176);
+ rule__LabelProvider__UnorderedGroup_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ getUnorderedGroupHelper().leave(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__UnorderedGroup_3"
+
+
+ // $ANTLR start "rule__LabelProvider__UnorderedGroup_3__Impl"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18873:1: rule__LabelProvider__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__LabelProvider__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__LabelProvider__Group_3_1__0 ) ) ) ) ) ;
+ public final void rule__LabelProvider__UnorderedGroup_3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+ boolean selected = false;
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18878:1: ( ( ({...}? => ( ( ( rule__LabelProvider__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__LabelProvider__Group_3_1__0 ) ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18879:3: ( ({...}? => ( ( ( rule__LabelProvider__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__LabelProvider__Group_3_1__0 ) ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18879:3: ( ({...}? => ( ( ( rule__LabelProvider__Group_3_0__0 ) ) ) ) | ({...}? => ( ( ( rule__LabelProvider__Group_3_1__0 ) ) ) ) )
+ int alt129=2;
+ int LA129_0 = input.LA(1);
+
+ if ( LA129_0 ==53 && getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 0) ) {
+ alt129=1;
+ }
+ else if ( LA129_0 ==54 && getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 1) ) {
+ alt129=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 129, 0, input);
+
+ throw nvae;
+ }
+ switch (alt129) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18881:4: ({...}? => ( ( ( rule__LabelProvider__Group_3_0__0 ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18881:4: ({...}? => ( ( ( rule__LabelProvider__Group_3_0__0 ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18882:5: {...}? => ( ( ( rule__LabelProvider__Group_3_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__LabelProvider__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 0)");
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18882:110: ( ( ( rule__LabelProvider__Group_3_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18883:6: ( ( rule__LabelProvider__Group_3_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 0);
+ selected = true;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18889:6: ( ( rule__LabelProvider__Group_3_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18891:7: ( rule__LabelProvider__Group_3_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getGroup_3_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18892:7: ( rule__LabelProvider__Group_3_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18892:8: rule__LabelProvider__Group_3_0__0
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__Group_3_0__0_in_rule__LabelProvider__UnorderedGroup_3__Impl38263);
+ rule__LabelProvider__Group_3_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderAccess().getGroup_3_0());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18898:4: ({...}? => ( ( ( rule__LabelProvider__Group_3_1__0 ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18898:4: ({...}? => ( ( ( rule__LabelProvider__Group_3_1__0 ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18899:5: {...}? => ( ( ( rule__LabelProvider__Group_3_1__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "rule__LabelProvider__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 1)");
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18899:110: ( ( ( rule__LabelProvider__Group_3_1__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18900:6: ( ( rule__LabelProvider__Group_3_1__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 1);
+ selected = true;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18906:6: ( ( rule__LabelProvider__Group_3_1__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18908:7: ( rule__LabelProvider__Group_3_1__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getGroup_3_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18909:7: ( rule__LabelProvider__Group_3_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18909:8: rule__LabelProvider__Group_3_1__0
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__Group_3_1__0_in_rule__LabelProvider__UnorderedGroup_3__Impl38354);
+ rule__LabelProvider__Group_3_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderAccess().getGroup_3_1());
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ if (selected)
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3());
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__UnorderedGroup_3__Impl"
+
+
+ // $ANTLR start "rule__LabelProvider__UnorderedGroup_3__0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18924:1: rule__LabelProvider__UnorderedGroup_3__0 : rule__LabelProvider__UnorderedGroup_3__Impl ( rule__LabelProvider__UnorderedGroup_3__1 )? ;
+ public final void rule__LabelProvider__UnorderedGroup_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18928:1: ( rule__LabelProvider__UnorderedGroup_3__Impl ( rule__LabelProvider__UnorderedGroup_3__1 )? )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18929:2: rule__LabelProvider__UnorderedGroup_3__Impl ( rule__LabelProvider__UnorderedGroup_3__1 )?
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__UnorderedGroup_3__Impl_in_rule__LabelProvider__UnorderedGroup_3__038413);
+ rule__LabelProvider__UnorderedGroup_3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18930:2: ( rule__LabelProvider__UnorderedGroup_3__1 )?
+ int alt130=2;
+ int LA130_0 = input.LA(1);
+
+ if ( LA130_0 ==53 && getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 0) ) {
+ alt130=1;
+ }
+ else if ( LA130_0 ==54 && getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 1) ) {
+ alt130=1;
+ }
+ switch (alt130) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:0:0: rule__LabelProvider__UnorderedGroup_3__1
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__UnorderedGroup_3__1_in_rule__LabelProvider__UnorderedGroup_3__038416);
+ rule__LabelProvider__UnorderedGroup_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__UnorderedGroup_3__0"
+
+
+ // $ANTLR start "rule__LabelProvider__UnorderedGroup_3__1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18937:1: rule__LabelProvider__UnorderedGroup_3__1 : rule__LabelProvider__UnorderedGroup_3__Impl ;
+ public final void rule__LabelProvider__UnorderedGroup_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18941:1: ( rule__LabelProvider__UnorderedGroup_3__Impl )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18942:2: rule__LabelProvider__UnorderedGroup_3__Impl
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__UnorderedGroup_3__Impl_in_rule__LabelProvider__UnorderedGroup_3__138441);
+ rule__LabelProvider__UnorderedGroup_3__Impl();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__UnorderedGroup_3__1"
+
+
+ // $ANTLR start "rule__Model__ImportSectionAssignment_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18953:1: rule__Model__ImportSectionAssignment_0 : ( ruleXImportSection ) ;
+ public final void rule__Model__ImportSectionAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18957:1: ( ( ruleXImportSection ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18958:1: ( ruleXImportSection )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18958:1: ( ruleXImportSection )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18959:1: ruleXImportSection
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModelAccess().getImportSectionXImportSectionParserRuleCall_0_0());
+ }
+ pushFollow(FOLLOW_ruleXImportSection_in_rule__Model__ImportSectionAssignment_038473);
+ ruleXImportSection();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModelAccess().getImportSectionXImportSectionParserRuleCall_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Model__ImportSectionAssignment_0"
+
+
+ // $ANTLR start "rule__Model__ModuleAssignment_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18968:1: rule__Model__ModuleAssignment_1 : ( ruleModule ) ;
+ public final void rule__Model__ModuleAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18972:1: ( ( ruleModule ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18973:1: ( ruleModule )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18973:1: ( ruleModule )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18974:1: ruleModule
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModelAccess().getModuleModuleParserRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_ruleModule_in_rule__Model__ModuleAssignment_138504);
+ ruleModule();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModelAccess().getModuleModuleParserRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Model__ModuleAssignment_1"
+
+
+ // $ANTLR start "rule__Module__NameAssignment_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18983:1: rule__Module__NameAssignment_1 : ( ruleQualifiedName ) ;
+ public final void rule__Module__NameAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18987:1: ( ( ruleQualifiedName ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18988:1: ( ruleQualifiedName )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18988:1: ( ruleQualifiedName )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18989:1: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getNameQualifiedNameParserRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_rule__Module__NameAssignment_138535);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getNameQualifiedNameParserRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__NameAssignment_1"
+
+
+ // $ANTLR start "rule__Module__ExtendsClauseAssignment_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18998:1: rule__Module__ExtendsClauseAssignment_2 : ( ruleExtendsClause ) ;
+ public final void rule__Module__ExtendsClauseAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19002:1: ( ( ruleExtendsClause ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19003:1: ( ruleExtendsClause )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19003:1: ( ruleExtendsClause )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19004:1: ruleExtendsClause
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getExtendsClauseExtendsClauseParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_ruleExtendsClause_in_rule__Module__ExtendsClauseAssignment_238566);
+ ruleExtendsClause();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getExtendsClauseExtendsClauseParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__ExtendsClauseAssignment_2"
+
+
+ // $ANTLR start "rule__Module__LabelProviderAssignment_4_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19013:1: rule__Module__LabelProviderAssignment_4_0 : ( ruleLabelProvider ) ;
+ public final void rule__Module__LabelProviderAssignment_4_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19017:1: ( ( ruleLabelProvider ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19018:1: ( ruleLabelProvider )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19018:1: ( ruleLabelProvider )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19019:1: ruleLabelProvider
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getLabelProviderLabelProviderParserRuleCall_4_0_0());
+ }
+ pushFollow(FOLLOW_ruleLabelProvider_in_rule__Module__LabelProviderAssignment_4_038597);
+ ruleLabelProvider();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getLabelProviderLabelProviderParserRuleCall_4_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__LabelProviderAssignment_4_0"
+
+
+ // $ANTLR start "rule__Module__PropertyDescriptionProviderAssignment_4_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19028:1: rule__Module__PropertyDescriptionProviderAssignment_4_1 : ( rulePropertyDescriptionProvider ) ;
+ public final void rule__Module__PropertyDescriptionProviderAssignment_4_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19032:1: ( ( rulePropertyDescriptionProvider ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19033:1: ( rulePropertyDescriptionProvider )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19033:1: ( rulePropertyDescriptionProvider )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19034:1: rulePropertyDescriptionProvider
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getPropertyDescriptionProviderPropertyDescriptionProviderParserRuleCall_4_1_0());
+ }
+ pushFollow(FOLLOW_rulePropertyDescriptionProvider_in_rule__Module__PropertyDescriptionProviderAssignment_4_138628);
+ rulePropertyDescriptionProvider();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getPropertyDescriptionProviderPropertyDescriptionProviderParserRuleCall_4_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__PropertyDescriptionProviderAssignment_4_1"
+
+
+ // $ANTLR start "rule__Module__FeaturesProviderAssignment_4_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19043:1: rule__Module__FeaturesProviderAssignment_4_2 : ( ruleFeaturesProvider ) ;
+ public final void rule__Module__FeaturesProviderAssignment_4_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19047:1: ( ( ruleFeaturesProvider ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19048:1: ( ruleFeaturesProvider )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19048:1: ( ruleFeaturesProvider )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19049:1: ruleFeaturesProvider
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getFeaturesProviderFeaturesProviderParserRuleCall_4_2_0());
+ }
+ pushFollow(FOLLOW_ruleFeaturesProvider_in_rule__Module__FeaturesProviderAssignment_4_238659);
+ ruleFeaturesProvider();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getFeaturesProviderFeaturesProviderParserRuleCall_4_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__FeaturesProviderAssignment_4_2"
+
+
+ // $ANTLR start "rule__Module__FormControlFactoryAssignment_4_3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19058:1: rule__Module__FormControlFactoryAssignment_4_3 : ( ruleFormControlFactory ) ;
+ public final void rule__Module__FormControlFactoryAssignment_4_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19062:1: ( ( ruleFormControlFactory ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19063:1: ( ruleFormControlFactory )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19063:1: ( ruleFormControlFactory )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19064:1: ruleFormControlFactory
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getFormControlFactoryFormControlFactoryParserRuleCall_4_3_0());
+ }
+ pushFollow(FOLLOW_ruleFormControlFactory_in_rule__Module__FormControlFactoryAssignment_4_338690);
+ ruleFormControlFactory();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getFormControlFactoryFormControlFactoryParserRuleCall_4_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__FormControlFactoryAssignment_4_3"
+
+
+ // $ANTLR start "rule__Module__ProposalCreatorAssignment_4_4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19073:1: rule__Module__ProposalCreatorAssignment_4_4 : ( ruleProposalCreator ) ;
+ public final void rule__Module__ProposalCreatorAssignment_4_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19077:1: ( ( ruleProposalCreator ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19078:1: ( ruleProposalCreator )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19078:1: ( ruleProposalCreator )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19079:1: ruleProposalCreator
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getProposalCreatorProposalCreatorParserRuleCall_4_4_0());
+ }
+ pushFollow(FOLLOW_ruleProposalCreator_in_rule__Module__ProposalCreatorAssignment_4_438721);
+ ruleProposalCreator();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getProposalCreatorProposalCreatorParserRuleCall_4_4_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__ProposalCreatorAssignment_4_4"
+
+
+ // $ANTLR start "rule__Module__ViewerContentProviderAssignment_4_5"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19088:1: rule__Module__ViewerContentProviderAssignment_4_5 : ( ruleViewerContentProvider ) ;
+ public final void rule__Module__ViewerContentProviderAssignment_4_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19092:1: ( ( ruleViewerContentProvider ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19093:1: ( ruleViewerContentProvider )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19093:1: ( ruleViewerContentProvider )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19094:1: ruleViewerContentProvider
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getViewerContentProviderViewerContentProviderParserRuleCall_4_5_0());
+ }
+ pushFollow(FOLLOW_ruleViewerContentProvider_in_rule__Module__ViewerContentProviderAssignment_4_538752);
+ ruleViewerContentProvider();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getViewerContentProviderViewerContentProviderParserRuleCall_4_5_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__ViewerContentProviderAssignment_4_5"
+
+
+ // $ANTLR start "rule__Module__PartsAssignment_4_6_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19103:1: rule__Module__PartsAssignment_4_6_2 : ( rulePartSpecification ) ;
+ public final void rule__Module__PartsAssignment_4_6_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19107:1: ( ( rulePartSpecification ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19108:1: ( rulePartSpecification )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19108:1: ( rulePartSpecification )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19109:1: rulePartSpecification
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getPartsPartSpecificationParserRuleCall_4_6_2_0());
+ }
+ pushFollow(FOLLOW_rulePartSpecification_in_rule__Module__PartsAssignment_4_6_238783);
+ rulePartSpecification();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getModuleAccess().getPartsPartSpecificationParserRuleCall_4_6_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Module__PartsAssignment_4_6_2"
+
+
+ // $ANTLR start "rule__ExtendsClause__SuperTypeAssignment_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19118:1: rule__ExtendsClause__SuperTypeAssignment_1 : ( ruleJvmTypeReference ) ;
+ public final void rule__ExtendsClause__SuperTypeAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19122:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19123:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19123:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19124:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getExtendsClauseAccess().getSuperTypeJvmTypeReferenceParserRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__ExtendsClause__SuperTypeAssignment_138814);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getExtendsClauseAccess().getSuperTypeJvmTypeReferenceParserRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ExtendsClause__SuperTypeAssignment_1"
+
+
+ // $ANTLR start "rule__LabelProvider__LabelSpecificationsAssignment_3_0_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19133:1: rule__LabelProvider__LabelSpecificationsAssignment_3_0_2 : ( ruleLabelSpecification ) ;
+ public final void rule__LabelProvider__LabelSpecificationsAssignment_3_0_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19137:1: ( ( ruleLabelSpecification ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19138:1: ( ruleLabelSpecification )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19138:1: ( ruleLabelSpecification )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19139:1: ruleLabelSpecification
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getLabelSpecificationsLabelSpecificationParserRuleCall_3_0_2_0());
+ }
+ pushFollow(FOLLOW_ruleLabelSpecification_in_rule__LabelProvider__LabelSpecificationsAssignment_3_0_238845);
+ ruleLabelSpecification();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderAccess().getLabelSpecificationsLabelSpecificationParserRuleCall_3_0_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__LabelSpecificationsAssignment_3_0_2"
+
+
+ // $ANTLR start "rule__LabelProvider__ImageSpecificationsAssignment_3_1_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19148:1: rule__LabelProvider__ImageSpecificationsAssignment_3_1_2 : ( ruleLabelSpecification ) ;
+ public final void rule__LabelProvider__ImageSpecificationsAssignment_3_1_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19152:1: ( ( ruleLabelSpecification ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19153:1: ( ruleLabelSpecification )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19153:1: ( ruleLabelSpecification )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19154:1: ruleLabelSpecification
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getImageSpecificationsLabelSpecificationParserRuleCall_3_1_2_0());
+ }
+ pushFollow(FOLLOW_ruleLabelSpecification_in_rule__LabelProvider__ImageSpecificationsAssignment_3_1_238876);
+ ruleLabelSpecification();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelProviderAccess().getImageSpecificationsLabelSpecificationParserRuleCall_3_1_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelProvider__ImageSpecificationsAssignment_3_1_2"
+
+
+ // $ANTLR start "rule__LabelSpecification__ParameterTypeAssignment_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19163:1: rule__LabelSpecification__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+ public final void rule__LabelSpecification__ParameterTypeAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19167:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19168:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19168:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19169:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__LabelSpecification__ParameterTypeAssignment_038907);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelSpecification__ParameterTypeAssignment_0"
+
+
+ // $ANTLR start "rule__LabelSpecification__NameAssignment_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19178:1: rule__LabelSpecification__NameAssignment_1 : ( ruleValidID ) ;
+ public final void rule__LabelSpecification__NameAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19182:1: ( ( ruleValidID ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19183:1: ( ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19183:1: ( ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19184:1: ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelSpecificationAccess().getNameValidIDParserRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_ruleValidID_in_rule__LabelSpecification__NameAssignment_138938);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelSpecificationAccess().getNameValidIDParserRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelSpecification__NameAssignment_1"
+
+
+ // $ANTLR start "rule__LabelSpecification__ExpressionAssignment_3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19193:1: rule__LabelSpecification__ExpressionAssignment_3 : ( ruleXExpression ) ;
+ public final void rule__LabelSpecification__ExpressionAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19197:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19198:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19198:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19199:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelSpecificationAccess().getExpressionXExpressionParserRuleCall_3_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__LabelSpecification__ExpressionAssignment_338969);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getLabelSpecificationAccess().getExpressionXExpressionParserRuleCall_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__LabelSpecification__ExpressionAssignment_3"
+
+
+ // $ANTLR start "rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19208:1: rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_2 : ( rulePropertyDescriptionSpecification ) ;
+ public final void rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19212:1: ( ( rulePropertyDescriptionSpecification ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19213:1: ( rulePropertyDescriptionSpecification )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19213:1: ( rulePropertyDescriptionSpecification )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19214:1: rulePropertyDescriptionSpecification
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionProviderAccess().getLabelSpecificationsPropertyDescriptionSpecificationParserRuleCall_3_2_0());
+ }
+ pushFollow(FOLLOW_rulePropertyDescriptionSpecification_in_rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_239000);
+ rulePropertyDescriptionSpecification();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionProviderAccess().getLabelSpecificationsPropertyDescriptionSpecificationParserRuleCall_3_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_2"
+
+
+ // $ANTLR start "rule__PropertyDescriptionSpecification__ParameterTypeAssignment_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19223:1: rule__PropertyDescriptionSpecification__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+ public final void rule__PropertyDescriptionSpecification__ParameterTypeAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19227:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19228:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19228:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19229:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__PropertyDescriptionSpecification__ParameterTypeAssignment_039031);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionSpecification__ParameterTypeAssignment_0"
+
+
+ // $ANTLR start "rule__PropertyDescriptionSpecification__FeatureAssignment_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19238:1: rule__PropertyDescriptionSpecification__FeatureAssignment_2 : ( ( RULE_ID ) ) ;
+ public final void rule__PropertyDescriptionSpecification__FeatureAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19242:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19243:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19243:1: ( ( RULE_ID ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19244:1: ( RULE_ID )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getFeatureJvmMemberCrossReference_2_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19245:1: ( RULE_ID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19246:1: RULE_ID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getFeatureJvmMemberIDTerminalRuleCall_2_0_1());
+ }
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__PropertyDescriptionSpecification__FeatureAssignment_239066); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getFeatureJvmMemberIDTerminalRuleCall_2_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getFeatureJvmMemberCrossReference_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionSpecification__FeatureAssignment_2"
+
+
+ // $ANTLR start "rule__PropertyDescriptionSpecification__ExpressionAssignment_4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19257:1: rule__PropertyDescriptionSpecification__ExpressionAssignment_4 : ( ruleXExpression ) ;
+ public final void rule__PropertyDescriptionSpecification__ExpressionAssignment_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19261:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19262:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19262:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19263:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getPropertyDescriptionSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__PropertyDescriptionSpecification__ExpressionAssignment_439101);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getPropertyDescriptionSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__PropertyDescriptionSpecification__ExpressionAssignment_4"
+
+
+ // $ANTLR start "rule__FeaturesProvider__FeatureSpecificationsAssignment_3_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19272:1: rule__FeaturesProvider__FeatureSpecificationsAssignment_3_2 : ( ruleFeatureSpecification ) ;
+ public final void rule__FeaturesProvider__FeatureSpecificationsAssignment_3_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19276:1: ( ( ruleFeatureSpecification ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19277:1: ( ruleFeatureSpecification )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19277:1: ( ruleFeatureSpecification )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19278:1: ruleFeatureSpecification
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeaturesProviderAccess().getFeatureSpecificationsFeatureSpecificationParserRuleCall_3_2_0());
+ }
+ pushFollow(FOLLOW_ruleFeatureSpecification_in_rule__FeaturesProvider__FeatureSpecificationsAssignment_3_239132);
+ ruleFeatureSpecification();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeaturesProviderAccess().getFeatureSpecificationsFeatureSpecificationParserRuleCall_3_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeaturesProvider__FeatureSpecificationsAssignment_3_2"
+
+
+ // $ANTLR start "rule__FeatureSpecification__ParameterTypeAssignment_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19287:1: rule__FeatureSpecification__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+ public final void rule__FeatureSpecification__ParameterTypeAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19291:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19292:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19292:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19293:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__FeatureSpecification__ParameterTypeAssignment_039163);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeatureSpecification__ParameterTypeAssignment_0"
+
+
+ // $ANTLR start "rule__FeatureSpecification__FeaturesAssignment_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19302:1: rule__FeatureSpecification__FeaturesAssignment_2 : ( ( RULE_ID ) ) ;
+ public final void rule__FeatureSpecification__FeaturesAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19306:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19307:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19307:1: ( ( RULE_ID ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19308:1: ( RULE_ID )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberCrossReference_2_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19309:1: ( RULE_ID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19310:1: RULE_ID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberIDTerminalRuleCall_2_0_1());
+ }
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__FeatureSpecification__FeaturesAssignment_239198); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberIDTerminalRuleCall_2_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberCrossReference_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeatureSpecification__FeaturesAssignment_2"
+
+
+ // $ANTLR start "rule__FeatureSpecification__FeaturesAssignment_3_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19321:1: rule__FeatureSpecification__FeaturesAssignment_3_1 : ( ( RULE_ID ) ) ;
+ public final void rule__FeatureSpecification__FeaturesAssignment_3_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19325:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19326:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19326:1: ( ( RULE_ID ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19327:1: ( RULE_ID )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberCrossReference_3_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19328:1: ( RULE_ID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19329:1: RULE_ID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberIDTerminalRuleCall_3_1_0_1());
+ }
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__FeatureSpecification__FeaturesAssignment_3_139237); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberIDTerminalRuleCall_3_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberCrossReference_3_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FeatureSpecification__FeaturesAssignment_3_1"
+
+
+ // $ANTLR start "rule__FormControlFactory__ControlSpecificationsAssignment_3_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19340:1: rule__FormControlFactory__ControlSpecificationsAssignment_3_2 : ( ruleFormControlSpecification ) ;
+ public final void rule__FormControlFactory__ControlSpecificationsAssignment_3_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19344:1: ( ( ruleFormControlSpecification ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19345:1: ( ruleFormControlSpecification )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19345:1: ( ruleFormControlSpecification )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19346:1: ruleFormControlSpecification
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlFactoryAccess().getControlSpecificationsFormControlSpecificationParserRuleCall_3_2_0());
+ }
+ pushFollow(FOLLOW_ruleFormControlSpecification_in_rule__FormControlFactory__ControlSpecificationsAssignment_3_239272);
+ ruleFormControlSpecification();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlFactoryAccess().getControlSpecificationsFormControlSpecificationParserRuleCall_3_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlFactory__ControlSpecificationsAssignment_3_2"
+
+
+ // $ANTLR start "rule__FormControlSpecification__ParameterTypeAssignment_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19355:1: rule__FormControlSpecification__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+ public final void rule__FormControlSpecification__ParameterTypeAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19359:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19360:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19360:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19361:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__FormControlSpecification__ParameterTypeAssignment_039303);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__ParameterTypeAssignment_0"
+
+
+ // $ANTLR start "rule__FormControlSpecification__FeatureAssignment_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19370:1: rule__FormControlSpecification__FeatureAssignment_2 : ( ( RULE_ID ) ) ;
+ public final void rule__FormControlSpecification__FeatureAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19374:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19375:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19375:1: ( ( RULE_ID ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19376:1: ( RULE_ID )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlSpecificationAccess().getFeatureJvmMemberCrossReference_2_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19377:1: ( RULE_ID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19378:1: RULE_ID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlSpecificationAccess().getFeatureJvmMemberIDTerminalRuleCall_2_0_1());
+ }
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__FormControlSpecification__FeatureAssignment_239338); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlSpecificationAccess().getFeatureJvmMemberIDTerminalRuleCall_2_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlSpecificationAccess().getFeatureJvmMemberCrossReference_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__FeatureAssignment_2"
+
+
+ // $ANTLR start "rule__FormControlSpecification__ExpressionAssignment_4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19389:1: rule__FormControlSpecification__ExpressionAssignment_4 : ( ruleXExpression ) ;
+ public final void rule__FormControlSpecification__ExpressionAssignment_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19393:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19394:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19394:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19395:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__FormControlSpecification__ExpressionAssignment_439373);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__ExpressionAssignment_4"
+
+
+ // $ANTLR start "rule__FormControlSpecification__TargetAssignment_5_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19404:1: rule__FormControlSpecification__TargetAssignment_5_1 : ( ruleXExpression ) ;
+ public final void rule__FormControlSpecification__TargetAssignment_5_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19408:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19409:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19409:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19410:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFormControlSpecificationAccess().getTargetXExpressionParserRuleCall_5_1_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__FormControlSpecification__TargetAssignment_5_139404);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFormControlSpecificationAccess().getTargetXExpressionParserRuleCall_5_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FormControlSpecification__TargetAssignment_5_1"
+
+
+ // $ANTLR start "rule__ProposalCreator__ProposalsSpecificationsAssignment_3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19419:1: rule__ProposalCreator__ProposalsSpecificationsAssignment_3 : ( ruleProposalSpecification ) ;
+ public final void rule__ProposalCreator__ProposalsSpecificationsAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19423:1: ( ( ruleProposalSpecification ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19424:1: ( ruleProposalSpecification )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19424:1: ( ruleProposalSpecification )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19425:1: ruleProposalSpecification
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalCreatorAccess().getProposalsSpecificationsProposalSpecificationParserRuleCall_3_0());
+ }
+ pushFollow(FOLLOW_ruleProposalSpecification_in_rule__ProposalCreator__ProposalsSpecificationsAssignment_339435);
+ ruleProposalSpecification();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalCreatorAccess().getProposalsSpecificationsProposalSpecificationParserRuleCall_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalCreator__ProposalsSpecificationsAssignment_3"
+
+
+ // $ANTLR start "rule__ProposalSpecification__ParameterTypeAssignment_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19434:1: rule__ProposalSpecification__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+ public final void rule__ProposalSpecification__ParameterTypeAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19438:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19439:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19439:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19440:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__ProposalSpecification__ParameterTypeAssignment_039466);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalSpecification__ParameterTypeAssignment_0"
+
+
+ // $ANTLR start "rule__ProposalSpecification__FeatureAssignment_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19449:1: rule__ProposalSpecification__FeatureAssignment_2 : ( ( RULE_ID ) ) ;
+ public final void rule__ProposalSpecification__FeatureAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19453:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19454:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19454:1: ( ( RULE_ID ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19455:1: ( RULE_ID )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalSpecificationAccess().getFeatureJvmMemberCrossReference_2_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19456:1: ( RULE_ID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19457:1: RULE_ID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalSpecificationAccess().getFeatureJvmMemberIDTerminalRuleCall_2_0_1());
+ }
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ProposalSpecification__FeatureAssignment_239501); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalSpecificationAccess().getFeatureJvmMemberIDTerminalRuleCall_2_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalSpecificationAccess().getFeatureJvmMemberCrossReference_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalSpecification__FeatureAssignment_2"
+
+
+ // $ANTLR start "rule__ProposalSpecification__ExpressionAssignment_4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19468:1: rule__ProposalSpecification__ExpressionAssignment_4 : ( ruleXExpression ) ;
+ public final void rule__ProposalSpecification__ExpressionAssignment_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19472:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19473:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19473:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19474:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getProposalSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__ProposalSpecification__ExpressionAssignment_439536);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getProposalSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ProposalSpecification__ExpressionAssignment_4"
+
+
+ // $ANTLR start "rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19483:1: rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_2 : ( ruleLabelSpecification ) ;
+ public final void rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19487:1: ( ( ruleLabelSpecification ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19488:1: ( ruleLabelSpecification )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19488:1: ( ruleLabelSpecification )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19489:1: ruleLabelSpecification
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewerContentProviderAccess().getChildrenSpecificationsLabelSpecificationParserRuleCall_3_2_0());
+ }
+ pushFollow(FOLLOW_ruleLabelSpecification_in_rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_239567);
+ ruleLabelSpecification();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewerContentProviderAccess().getChildrenSpecificationsLabelSpecificationParserRuleCall_3_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_2"
+
+
+ // $ANTLR start "rule__ViewSpecification__IdAssignment_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19498:1: rule__ViewSpecification__IdAssignment_2 : ( ruleQualifiedName ) ;
+ public final void rule__ViewSpecification__IdAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19502:1: ( ( ruleQualifiedName ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19503:1: ( ruleQualifiedName )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19503:1: ( ruleQualifiedName )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19504:1: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewSpecificationAccess().getIdQualifiedNameParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_rule__ViewSpecification__IdAssignment_239598);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewSpecificationAccess().getIdQualifiedNameParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__IdAssignment_2"
+
+
+ // $ANTLR start "rule__ViewSpecification__ViewNameAssignment_5"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19513:1: rule__ViewSpecification__ViewNameAssignment_5 : ( RULE_STRING ) ;
+ public final void rule__ViewSpecification__ViewNameAssignment_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19517:1: ( ( RULE_STRING ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19518:1: ( RULE_STRING )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19518:1: ( RULE_STRING )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19519:1: RULE_STRING
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewSpecificationAccess().getViewNameSTRINGTerminalRuleCall_5_0());
+ }
+ match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__ViewSpecification__ViewNameAssignment_539629); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewSpecificationAccess().getViewNameSTRINGTerminalRuleCall_5_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__ViewNameAssignment_5"
+
+
+ // $ANTLR start "rule__ViewSpecification__TypeAssignment_7"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19528:1: rule__ViewSpecification__TypeAssignment_7 : ( ruleJvmTypeReference ) ;
+ public final void rule__ViewSpecification__TypeAssignment_7() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19532:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19533:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19533:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19534:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewSpecificationAccess().getTypeJvmTypeReferenceParserRuleCall_7_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__ViewSpecification__TypeAssignment_739660);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewSpecificationAccess().getTypeJvmTypeReferenceParserRuleCall_7_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__TypeAssignment_7"
+
+
+ // $ANTLR start "rule__ViewSpecification__CategoryAssignment_8_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19543:1: rule__ViewSpecification__CategoryAssignment_8_1 : ( ruleQualifiedName ) ;
+ public final void rule__ViewSpecification__CategoryAssignment_8_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19547:1: ( ( ruleQualifiedName ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19548:1: ( ruleQualifiedName )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19548:1: ( ruleQualifiedName )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19549:1: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getViewSpecificationAccess().getCategoryQualifiedNameParserRuleCall_8_1_0());
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_rule__ViewSpecification__CategoryAssignment_8_139691);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getViewSpecificationAccess().getCategoryQualifiedNameParserRuleCall_8_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__ViewSpecification__CategoryAssignment_8_1"
+
+
+ // $ANTLR start "rule__XAssignment__FeatureAssignment_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19558:1: rule__XAssignment__FeatureAssignment_0_1 : ( ( ruleFeatureCallID ) ) ;
+ public final void rule__XAssignment__FeatureAssignment_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19562:1: ( ( ( ruleFeatureCallID ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19563:1: ( ( ruleFeatureCallID ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19563:1: ( ( ruleFeatureCallID ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19564:1: ( ruleFeatureCallID )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19565:1: ( ruleFeatureCallID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19566:1: ruleFeatureCallID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1());
+ }
+ pushFollow(FOLLOW_ruleFeatureCallID_in_rule__XAssignment__FeatureAssignment_0_139726);
+ ruleFeatureCallID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__FeatureAssignment_0_1"
+
+
+ // $ANTLR start "rule__XAssignment__ValueAssignment_0_3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19577:1: rule__XAssignment__ValueAssignment_0_3 : ( ruleXAssignment ) ;
+ public final void rule__XAssignment__ValueAssignment_0_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19581:1: ( ( ruleXAssignment ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19582:1: ( ruleXAssignment )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19582:1: ( ruleXAssignment )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19583:1: ruleXAssignment
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0());
+ }
+ pushFollow(FOLLOW_ruleXAssignment_in_rule__XAssignment__ValueAssignment_0_339761);
+ ruleXAssignment();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__ValueAssignment_0_3"
+
+
+ // $ANTLR start "rule__XAssignment__FeatureAssignment_1_1_0_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19592:1: rule__XAssignment__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpMultiAssign ) ) ;
+ public final void rule__XAssignment__FeatureAssignment_1_1_0_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19596:1: ( ( ( ruleOpMultiAssign ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19597:1: ( ( ruleOpMultiAssign ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19597:1: ( ( ruleOpMultiAssign ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19598:1: ( ruleOpMultiAssign )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19599:1: ( ruleOpMultiAssign )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19600:1: ruleOpMultiAssign
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1());
+ }
+ pushFollow(FOLLOW_ruleOpMultiAssign_in_rule__XAssignment__FeatureAssignment_1_1_0_0_139796);
+ ruleOpMultiAssign();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__FeatureAssignment_1_1_0_0_1"
+
+
+ // $ANTLR start "rule__XAssignment__RightOperandAssignment_1_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19611:1: rule__XAssignment__RightOperandAssignment_1_1_1 : ( ruleXAssignment ) ;
+ public final void rule__XAssignment__RightOperandAssignment_1_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19615:1: ( ( ruleXAssignment ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19616:1: ( ruleXAssignment )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19616:1: ( ruleXAssignment )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19617:1: ruleXAssignment
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleXAssignment_in_rule__XAssignment__RightOperandAssignment_1_1_139831);
+ ruleXAssignment();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAssignment__RightOperandAssignment_1_1_1"
+
+
+ // $ANTLR start "rule__XOrExpression__FeatureAssignment_1_0_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19626:1: rule__XOrExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOr ) ) ;
+ public final void rule__XOrExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19630:1: ( ( ( ruleOpOr ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19631:1: ( ( ruleOpOr ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19631:1: ( ( ruleOpOr ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19632:1: ( ruleOpOr )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19633:1: ( ruleOpOr )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19634:1: ruleOpOr
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1());
+ }
+ pushFollow(FOLLOW_ruleOpOr_in_rule__XOrExpression__FeatureAssignment_1_0_0_139866);
+ ruleOpOr();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOrExpression__FeatureAssignment_1_0_0_1"
+
+
+ // $ANTLR start "rule__XOrExpression__RightOperandAssignment_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19645:1: rule__XOrExpression__RightOperandAssignment_1_1 : ( ruleXAndExpression ) ;
+ public final void rule__XOrExpression__RightOperandAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19649:1: ( ( ruleXAndExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19650:1: ( ruleXAndExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19650:1: ( ruleXAndExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19651:1: ruleXAndExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleXAndExpression_in_rule__XOrExpression__RightOperandAssignment_1_139901);
+ ruleXAndExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOrExpression__RightOperandAssignment_1_1"
+
+
+ // $ANTLR start "rule__XAndExpression__FeatureAssignment_1_0_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19660:1: rule__XAndExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAnd ) ) ;
+ public final void rule__XAndExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19664:1: ( ( ( ruleOpAnd ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19665:1: ( ( ruleOpAnd ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19665:1: ( ( ruleOpAnd ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19666:1: ( ruleOpAnd )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19667:1: ( ruleOpAnd )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19668:1: ruleOpAnd
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1());
+ }
+ pushFollow(FOLLOW_ruleOpAnd_in_rule__XAndExpression__FeatureAssignment_1_0_0_139936);
+ ruleOpAnd();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAndExpression__FeatureAssignment_1_0_0_1"
+
+
+ // $ANTLR start "rule__XAndExpression__RightOperandAssignment_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19679:1: rule__XAndExpression__RightOperandAssignment_1_1 : ( ruleXEqualityExpression ) ;
+ public final void rule__XAndExpression__RightOperandAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19683:1: ( ( ruleXEqualityExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19684:1: ( ruleXEqualityExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19684:1: ( ruleXEqualityExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19685:1: ruleXEqualityExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleXEqualityExpression_in_rule__XAndExpression__RightOperandAssignment_1_139971);
+ ruleXEqualityExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAndExpression__RightOperandAssignment_1_1"
+
+
+ // $ANTLR start "rule__XEqualityExpression__FeatureAssignment_1_0_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19694:1: rule__XEqualityExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpEquality ) ) ;
+ public final void rule__XEqualityExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19698:1: ( ( ( ruleOpEquality ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19699:1: ( ( ruleOpEquality ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19699:1: ( ( ruleOpEquality ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19700:1: ( ruleOpEquality )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19701:1: ( ruleOpEquality )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19702:1: ruleOpEquality
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1());
+ }
+ pushFollow(FOLLOW_ruleOpEquality_in_rule__XEqualityExpression__FeatureAssignment_1_0_0_140006);
+ ruleOpEquality();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XEqualityExpression__FeatureAssignment_1_0_0_1"
+
+
+ // $ANTLR start "rule__XEqualityExpression__RightOperandAssignment_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19713:1: rule__XEqualityExpression__RightOperandAssignment_1_1 : ( ruleXRelationalExpression ) ;
+ public final void rule__XEqualityExpression__RightOperandAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19717:1: ( ( ruleXRelationalExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19718:1: ( ruleXRelationalExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19718:1: ( ruleXRelationalExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19719:1: ruleXRelationalExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleXRelationalExpression_in_rule__XEqualityExpression__RightOperandAssignment_1_140041);
+ ruleXRelationalExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XEqualityExpression__RightOperandAssignment_1_1"
+
+
+ // $ANTLR start "rule__XRelationalExpression__TypeAssignment_1_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19728:1: rule__XRelationalExpression__TypeAssignment_1_0_1 : ( ruleJvmTypeReference ) ;
+ public final void rule__XRelationalExpression__TypeAssignment_1_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19732:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19733:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19733:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19734:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__XRelationalExpression__TypeAssignment_1_0_140072);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__TypeAssignment_1_0_1"
+
+
+ // $ANTLR start "rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19743:1: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpCompare ) ) ;
+ public final void rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19747:1: ( ( ( ruleOpCompare ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19748:1: ( ( ruleOpCompare ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19748:1: ( ( ruleOpCompare ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19749:1: ( ruleOpCompare )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19750:1: ( ruleOpCompare )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19751:1: ruleOpCompare
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1());
+ }
+ pushFollow(FOLLOW_ruleOpCompare_in_rule__XRelationalExpression__FeatureAssignment_1_1_0_0_140107);
+ ruleOpCompare();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1"
+
+
+ // $ANTLR start "rule__XRelationalExpression__RightOperandAssignment_1_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19762:1: rule__XRelationalExpression__RightOperandAssignment_1_1_1 : ( ruleXOtherOperatorExpression ) ;
+ public final void rule__XRelationalExpression__RightOperandAssignment_1_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19766:1: ( ( ruleXOtherOperatorExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19767:1: ( ruleXOtherOperatorExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19767:1: ( ruleXOtherOperatorExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19768:1: ruleXOtherOperatorExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleXOtherOperatorExpression_in_rule__XRelationalExpression__RightOperandAssignment_1_1_140142);
+ ruleXOtherOperatorExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XRelationalExpression__RightOperandAssignment_1_1_1"
+
+
+ // $ANTLR start "rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19777:1: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOther ) ) ;
+ public final void rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19781:1: ( ( ( ruleOpOther ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19782:1: ( ( ruleOpOther ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19782:1: ( ( ruleOpOther ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19783:1: ( ruleOpOther )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19784:1: ( ruleOpOther )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19785:1: ruleOpOther
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1());
+ }
+ pushFollow(FOLLOW_ruleOpOther_in_rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_140177);
+ ruleOpOther();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1"
+
+
+ // $ANTLR start "rule__XOtherOperatorExpression__RightOperandAssignment_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19796:1: rule__XOtherOperatorExpression__RightOperandAssignment_1_1 : ( ruleXAdditiveExpression ) ;
+ public final void rule__XOtherOperatorExpression__RightOperandAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19800:1: ( ( ruleXAdditiveExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19801:1: ( ruleXAdditiveExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19801:1: ( ruleXAdditiveExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19802:1: ruleXAdditiveExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleXAdditiveExpression_in_rule__XOtherOperatorExpression__RightOperandAssignment_1_140212);
+ ruleXAdditiveExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XOtherOperatorExpression__RightOperandAssignment_1_1"
+
+
+ // $ANTLR start "rule__XAdditiveExpression__FeatureAssignment_1_0_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19811:1: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAdd ) ) ;
+ public final void rule__XAdditiveExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19815:1: ( ( ( ruleOpAdd ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19816:1: ( ( ruleOpAdd ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19816:1: ( ( ruleOpAdd ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19817:1: ( ruleOpAdd )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19818:1: ( ruleOpAdd )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19819:1: ruleOpAdd
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1());
+ }
+ pushFollow(FOLLOW_ruleOpAdd_in_rule__XAdditiveExpression__FeatureAssignment_1_0_0_140247);
+ ruleOpAdd();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAdditiveExpression__FeatureAssignment_1_0_0_1"
+
+
+ // $ANTLR start "rule__XAdditiveExpression__RightOperandAssignment_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19830:1: rule__XAdditiveExpression__RightOperandAssignment_1_1 : ( ruleXMultiplicativeExpression ) ;
+ public final void rule__XAdditiveExpression__RightOperandAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19834:1: ( ( ruleXMultiplicativeExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19835:1: ( ruleXMultiplicativeExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19835:1: ( ruleXMultiplicativeExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19836:1: ruleXMultiplicativeExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleXMultiplicativeExpression_in_rule__XAdditiveExpression__RightOperandAssignment_1_140282);
+ ruleXMultiplicativeExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XAdditiveExpression__RightOperandAssignment_1_1"
+
+
+ // $ANTLR start "rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19845:1: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpMulti ) ) ;
+ public final void rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19849:1: ( ( ( ruleOpMulti ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19850:1: ( ( ruleOpMulti ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19850:1: ( ( ruleOpMulti ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19851:1: ( ruleOpMulti )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19852:1: ( ruleOpMulti )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19853:1: ruleOpMulti
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1());
+ }
+ pushFollow(FOLLOW_ruleOpMulti_in_rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_140317);
+ ruleOpMulti();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1"
+
+
+ // $ANTLR start "rule__XMultiplicativeExpression__RightOperandAssignment_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19864:1: rule__XMultiplicativeExpression__RightOperandAssignment_1_1 : ( ruleXUnaryOperation ) ;
+ public final void rule__XMultiplicativeExpression__RightOperandAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19868:1: ( ( ruleXUnaryOperation ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19869:1: ( ruleXUnaryOperation )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19869:1: ( ruleXUnaryOperation )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19870:1: ruleXUnaryOperation
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleXUnaryOperation_in_rule__XMultiplicativeExpression__RightOperandAssignment_1_140352);
+ ruleXUnaryOperation();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMultiplicativeExpression__RightOperandAssignment_1_1"
+
+
+ // $ANTLR start "rule__XUnaryOperation__FeatureAssignment_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19879:1: rule__XUnaryOperation__FeatureAssignment_0_1 : ( ( ruleOpUnary ) ) ;
+ public final void rule__XUnaryOperation__FeatureAssignment_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19883:1: ( ( ( ruleOpUnary ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19884:1: ( ( ruleOpUnary ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19884:1: ( ( ruleOpUnary ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19885:1: ( ruleOpUnary )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19886:1: ( ruleOpUnary )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19887:1: ruleOpUnary
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1());
+ }
+ pushFollow(FOLLOW_ruleOpUnary_in_rule__XUnaryOperation__FeatureAssignment_0_140387);
+ ruleOpUnary();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XUnaryOperation__FeatureAssignment_0_1"
+
+
+ // $ANTLR start "rule__XUnaryOperation__OperandAssignment_0_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19898:1: rule__XUnaryOperation__OperandAssignment_0_2 : ( ruleXUnaryOperation ) ;
+ public final void rule__XUnaryOperation__OperandAssignment_0_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19902:1: ( ( ruleXUnaryOperation ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19903:1: ( ruleXUnaryOperation )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19903:1: ( ruleXUnaryOperation )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19904:1: ruleXUnaryOperation
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0());
+ }
+ pushFollow(FOLLOW_ruleXUnaryOperation_in_rule__XUnaryOperation__OperandAssignment_0_240422);
+ ruleXUnaryOperation();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XUnaryOperation__OperandAssignment_0_2"
+
+
+ // $ANTLR start "rule__XCastedExpression__TypeAssignment_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19913:1: rule__XCastedExpression__TypeAssignment_1_1 : ( ruleJvmTypeReference ) ;
+ public final void rule__XCastedExpression__TypeAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19917:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19918:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19918:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19919:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__XCastedExpression__TypeAssignment_1_140453);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCastedExpression__TypeAssignment_1_1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19928:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 : ( ( '::' ) ) ;
+ public final void rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19932:1: ( ( ( '::' ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19933:1: ( ( '::' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19933:1: ( ( '::' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19934:1: ( '::' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19935:1: ( '::' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19936:1: '::'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0());
+ }
+ match(input,96,FOLLOW_96_in_rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_140489); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19951:1: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 : ( ( ruleFeatureCallID ) ) ;
+ public final void rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19955:1: ( ( ( ruleFeatureCallID ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19956:1: ( ( ruleFeatureCallID ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19956:1: ( ( ruleFeatureCallID ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19957:1: ( ruleFeatureCallID )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19958:1: ( ruleFeatureCallID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19959:1: ruleFeatureCallID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1());
+ }
+ pushFollow(FOLLOW_ruleFeatureCallID_in_rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_240532);
+ ruleFeatureCallID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__ValueAssignment_1_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19970:1: rule__XMemberFeatureCall__ValueAssignment_1_0_1 : ( ruleXAssignment ) ;
+ public final void rule__XMemberFeatureCall__ValueAssignment_1_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19974:1: ( ( ruleXAssignment ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19975:1: ( ruleXAssignment )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19975:1: ( ruleXAssignment )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19976:1: ruleXAssignment
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0());
+ }
+ pushFollow(FOLLOW_ruleXAssignment_in_rule__XMemberFeatureCall__ValueAssignment_1_0_140567);
+ ruleXAssignment();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__ValueAssignment_1_0_1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19985:1: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 : ( ( '?.' ) ) ;
+ public final void rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19989:1: ( ( ( '?.' ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19990:1: ( ( '?.' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19990:1: ( ( '?.' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19991:1: ( '?.' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19992:1: ( '?.' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:19993:1: '?.'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0());
+ }
+ match(input,97,FOLLOW_97_in_rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_140603); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20008:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 : ( ( '::' ) ) ;
+ public final void rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20012:1: ( ( ( '::' ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20013:1: ( ( '::' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20013:1: ( ( '::' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20014:1: ( '::' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20015:1: ( '::' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20016:1: '::'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0());
+ }
+ match(input,96,FOLLOW_96_in_rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_240647); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20031:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 : ( ruleJvmArgumentTypeReference ) ;
+ public final void rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20035:1: ( ( ruleJvmArgumentTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20036:1: ( ruleJvmArgumentTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20036:1: ( ruleJvmArgumentTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20037:1: ruleJvmArgumentTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_140686);
+ ruleJvmArgumentTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20046:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+ public final void rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20050:1: ( ( ruleJvmArgumentTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20051:1: ( ruleJvmArgumentTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20051:1: ( ruleJvmArgumentTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20052:1: ruleJvmArgumentTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0());
+ }
+ pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_140717);
+ ruleJvmArgumentTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__FeatureAssignment_1_1_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20061:1: rule__XMemberFeatureCall__FeatureAssignment_1_1_2 : ( ( ruleFeatureCallID ) ) ;
+ public final void rule__XMemberFeatureCall__FeatureAssignment_1_1_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20065:1: ( ( ( ruleFeatureCallID ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20066:1: ( ( ruleFeatureCallID ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20066:1: ( ( ruleFeatureCallID ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20067:1: ( ruleFeatureCallID )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20068:1: ( ruleFeatureCallID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20069:1: ruleFeatureCallID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_1_2_0_1());
+ }
+ pushFollow(FOLLOW_ruleFeatureCallID_in_rule__XMemberFeatureCall__FeatureAssignment_1_1_240752);
+ ruleFeatureCallID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_1_2_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__FeatureAssignment_1_1_2"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20080:1: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 : ( ( '(' ) ) ;
+ public final void rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20084:1: ( ( ( '(' ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20085:1: ( ( '(' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20085:1: ( ( '(' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20086:1: ( '(' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20087:1: ( '(' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20088:1: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0());
+ }
+ match(input,77,FOLLOW_77_in_rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_040792); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20103:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 : ( ruleXShortClosure ) ;
+ public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20107:1: ( ( ruleXShortClosure ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20108:1: ( ruleXShortClosure )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20108:1: ( ruleXShortClosure )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20109:1: ruleXShortClosure
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0());
+ }
+ pushFollow(FOLLOW_ruleXShortClosure_in_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_040831);
+ ruleXShortClosure();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20118:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 : ( ruleXExpression ) ;
+ public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20122:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20123:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20123:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20124:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_040862);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20133:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 : ( ruleXExpression ) ;
+ public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20137:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20138:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20138:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20139:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_140893);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1"
+
+
+ // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20148:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 : ( ruleXClosure ) ;
+ public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20152:1: ( ( ruleXClosure ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20153:1: ( ruleXClosure )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20153:1: ( ruleXClosure )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20154:1: ruleXClosure
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0());
+ }
+ pushFollow(FOLLOW_ruleXClosure_in_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_440924);
+ ruleXClosure();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4"
+
+
+ // $ANTLR start "rule__XSetLiteral__ElementsAssignment_3_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20163:1: rule__XSetLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
+ public final void rule__XSetLiteral__ElementsAssignment_3_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20167:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20168:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20168:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20169:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XSetLiteral__ElementsAssignment_3_040955);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__ElementsAssignment_3_0"
+
+
+ // $ANTLR start "rule__XSetLiteral__ElementsAssignment_3_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20178:1: rule__XSetLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
+ public final void rule__XSetLiteral__ElementsAssignment_3_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20182:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20183:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20183:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20184:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XSetLiteral__ElementsAssignment_3_1_140986);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSetLiteral__ElementsAssignment_3_1_1"
+
+
+ // $ANTLR start "rule__XListLiteral__ElementsAssignment_3_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20193:1: rule__XListLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
+ public final void rule__XListLiteral__ElementsAssignment_3_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20197:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20198:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20198:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20199:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XListLiteral__ElementsAssignment_3_041017);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__ElementsAssignment_3_0"
+
+
+ // $ANTLR start "rule__XListLiteral__ElementsAssignment_3_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20208:1: rule__XListLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
+ public final void rule__XListLiteral__ElementsAssignment_3_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20212:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20213:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20213:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20214:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XListLiteral__ElementsAssignment_3_1_141048);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XListLiteral__ElementsAssignment_3_1_1"
+
+
+ // $ANTLR start "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20223:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 : ( ruleJvmFormalParameter ) ;
+ public final void rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20227:1: ( ( ruleJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20228:1: ( ruleJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20228:1: ( ruleJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20229:1: ruleJvmFormalParameter
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0());
+ }
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_041079);
+ ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0"
+
+
+ // $ANTLR start "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20238:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 : ( ruleJvmFormalParameter ) ;
+ public final void rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20242:1: ( ( ruleJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20243:1: ( ruleJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20243:1: ( ruleJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20244:1: ruleJvmFormalParameter
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_141110);
+ ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1"
+
+
+ // $ANTLR start "rule__XClosure__ExplicitSyntaxAssignment_1_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20253:1: rule__XClosure__ExplicitSyntaxAssignment_1_0_1 : ( ( '|' ) ) ;
+ public final void rule__XClosure__ExplicitSyntaxAssignment_1_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20257:1: ( ( ( '|' ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20258:1: ( ( '|' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20258:1: ( ( '|' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20259:1: ( '|' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20260:1: ( '|' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20261:1: '|'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0());
+ }
+ match(input,98,FOLLOW_98_in_rule__XClosure__ExplicitSyntaxAssignment_1_0_141146); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__ExplicitSyntaxAssignment_1_0_1"
+
+
+ // $ANTLR start "rule__XClosure__ExpressionAssignment_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20276:1: rule__XClosure__ExpressionAssignment_2 : ( ruleXExpressionInClosure ) ;
+ public final void rule__XClosure__ExpressionAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20280:1: ( ( ruleXExpressionInClosure ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20281:1: ( ruleXExpressionInClosure )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20281:1: ( ruleXExpressionInClosure )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20282:1: ruleXExpressionInClosure
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_ruleXExpressionInClosure_in_rule__XClosure__ExpressionAssignment_241185);
+ ruleXExpressionInClosure();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XClosure__ExpressionAssignment_2"
+
+
+ // $ANTLR start "rule__XExpressionInClosure__ExpressionsAssignment_1_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20291:1: rule__XExpressionInClosure__ExpressionsAssignment_1_0 : ( ruleXExpressionInsideBlock ) ;
+ public final void rule__XExpressionInClosure__ExpressionsAssignment_1_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20295:1: ( ( ruleXExpressionInsideBlock ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20296:1: ( ruleXExpressionInsideBlock )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20296:1: ( ruleXExpressionInsideBlock )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20297:1: ruleXExpressionInsideBlock
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionInsideBlockParserRuleCall_1_0_0());
+ }
+ pushFollow(FOLLOW_ruleXExpressionInsideBlock_in_rule__XExpressionInClosure__ExpressionsAssignment_1_041216);
+ ruleXExpressionInsideBlock();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionInsideBlockParserRuleCall_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XExpressionInClosure__ExpressionsAssignment_1_0"
+
+
+ // $ANTLR start "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20306:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 : ( ruleJvmFormalParameter ) ;
+ public final void rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20310:1: ( ( ruleJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20311:1: ( ruleJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20311:1: ( ruleJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20312:1: ruleJvmFormalParameter
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0());
+ }
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_041247);
+ ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0"
+
+
+ // $ANTLR start "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20321:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 : ( ruleJvmFormalParameter ) ;
+ public final void rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20325:1: ( ( ruleJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20326:1: ( ruleJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20326:1: ( ruleJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20327:1: ruleJvmFormalParameter
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_141278);
+ ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1"
+
+
+ // $ANTLR start "rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20336:1: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 : ( ( '|' ) ) ;
+ public final void rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20340:1: ( ( ( '|' ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20341:1: ( ( '|' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20341:1: ( ( '|' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20342:1: ( '|' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20343:1: ( '|' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20344:1: '|'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0());
+ }
+ match(input,98,FOLLOW_98_in_rule__XShortClosure__ExplicitSyntaxAssignment_0_0_241314); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2"
+
+
+ // $ANTLR start "rule__XShortClosure__ExpressionAssignment_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20359:1: rule__XShortClosure__ExpressionAssignment_1 : ( ruleXExpression ) ;
+ public final void rule__XShortClosure__ExpressionAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20363:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20364:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20364:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20365:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XShortClosure__ExpressionAssignment_141353);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XShortClosure__ExpressionAssignment_1"
+
+
+ // $ANTLR start "rule__XIfExpression__IfAssignment_3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20374:1: rule__XIfExpression__IfAssignment_3 : ( ruleXExpression ) ;
+ public final void rule__XIfExpression__IfAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20378:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20379:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20379:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20380:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XIfExpression__IfAssignment_341384);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__IfAssignment_3"
+
+
+ // $ANTLR start "rule__XIfExpression__ThenAssignment_5"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20389:1: rule__XIfExpression__ThenAssignment_5 : ( ruleXExpression ) ;
+ public final void rule__XIfExpression__ThenAssignment_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20393:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20394:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20394:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20395:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XIfExpression__ThenAssignment_541415);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__ThenAssignment_5"
+
+
+ // $ANTLR start "rule__XIfExpression__ElseAssignment_6_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20404:1: rule__XIfExpression__ElseAssignment_6_1 : ( ruleXExpression ) ;
+ public final void rule__XIfExpression__ElseAssignment_6_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20408:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20409:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20409:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20410:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XIfExpression__ElseAssignment_6_141446);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XIfExpression__ElseAssignment_6_1"
+
+
+ // $ANTLR start "rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20419:1: rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_0 : ( ruleValidID ) ;
+ public final void rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20423:1: ( ( ruleValidID ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20424:1: ( ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20424:1: ( ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20425:1: ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameValidIDParserRuleCall_2_0_0_0_0_0());
+ }
+ pushFollow(FOLLOW_ruleValidID_in_rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_041477);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameValidIDParserRuleCall_2_0_0_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_0"
+
+
+ // $ANTLR start "rule__XSwitchExpression__SwitchAssignment_2_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20434:1: rule__XSwitchExpression__SwitchAssignment_2_0_1 : ( ruleXExpression ) ;
+ public final void rule__XSwitchExpression__SwitchAssignment_2_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20438:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20439:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20439:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20440:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XSwitchExpression__SwitchAssignment_2_0_141508);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__SwitchAssignment_2_0_1"
+
+
+ // $ANTLR start "rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20449:1: rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_1 : ( ruleValidID ) ;
+ public final void rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20453:1: ( ( ruleValidID ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20454:1: ( ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20454:1: ( ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20455:1: ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameValidIDParserRuleCall_2_1_0_0_1_0());
+ }
+ pushFollow(FOLLOW_ruleValidID_in_rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_141539);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameValidIDParserRuleCall_2_1_0_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_1"
+
+
+ // $ANTLR start "rule__XSwitchExpression__SwitchAssignment_2_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20464:1: rule__XSwitchExpression__SwitchAssignment_2_1_1 : ( ruleXExpression ) ;
+ public final void rule__XSwitchExpression__SwitchAssignment_2_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20468:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20469:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20469:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20470:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XSwitchExpression__SwitchAssignment_2_1_141570);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__SwitchAssignment_2_1_1"
+
+
+ // $ANTLR start "rule__XSwitchExpression__CasesAssignment_4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20479:1: rule__XSwitchExpression__CasesAssignment_4 : ( ruleXCasePart ) ;
+ public final void rule__XSwitchExpression__CasesAssignment_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20483:1: ( ( ruleXCasePart ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20484:1: ( ruleXCasePart )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20484:1: ( ruleXCasePart )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20485:1: ruleXCasePart
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0());
+ }
+ pushFollow(FOLLOW_ruleXCasePart_in_rule__XSwitchExpression__CasesAssignment_441601);
+ ruleXCasePart();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__CasesAssignment_4"
+
+
+ // $ANTLR start "rule__XSwitchExpression__DefaultAssignment_5_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20494:1: rule__XSwitchExpression__DefaultAssignment_5_2 : ( ruleXExpression ) ;
+ public final void rule__XSwitchExpression__DefaultAssignment_5_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20498:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20499:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20499:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20500:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XSwitchExpression__DefaultAssignment_5_241632);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XSwitchExpression__DefaultAssignment_5_2"
+
+
+ // $ANTLR start "rule__XCasePart__TypeGuardAssignment_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20509:1: rule__XCasePart__TypeGuardAssignment_0 : ( ruleJvmTypeReference ) ;
+ public final void rule__XCasePart__TypeGuardAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20513:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20514:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20514:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20515:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_0_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__XCasePart__TypeGuardAssignment_041663);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCasePart__TypeGuardAssignment_0"
+
+
+ // $ANTLR start "rule__XCasePart__CaseAssignment_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20524:1: rule__XCasePart__CaseAssignment_1_1 : ( ruleXExpression ) ;
+ public final void rule__XCasePart__CaseAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20528:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20529:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20529:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20530:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XCasePart__CaseAssignment_1_141694);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCasePart__CaseAssignment_1_1"
+
+
+ // $ANTLR start "rule__XCasePart__ThenAssignment_3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20539:1: rule__XCasePart__ThenAssignment_3 : ( ruleXExpression ) ;
+ public final void rule__XCasePart__ThenAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20543:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20544:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20544:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20545:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XCasePart__ThenAssignment_341725);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCasePart__ThenAssignment_3"
+
+
+ // $ANTLR start "rule__XForLoopExpression__DeclaredParamAssignment_3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20554:1: rule__XForLoopExpression__DeclaredParamAssignment_3 : ( ruleJvmFormalParameter ) ;
+ public final void rule__XForLoopExpression__DeclaredParamAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20558:1: ( ( ruleJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20559:1: ( ruleJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20559:1: ( ruleJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20560:1: ruleJvmFormalParameter
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_3_0());
+ }
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_rule__XForLoopExpression__DeclaredParamAssignment_341756);
+ ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__DeclaredParamAssignment_3"
+
+
+ // $ANTLR start "rule__XForLoopExpression__ForExpressionAssignment_5"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20569:1: rule__XForLoopExpression__ForExpressionAssignment_5 : ( ruleXExpression ) ;
+ public final void rule__XForLoopExpression__ForExpressionAssignment_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20573:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20574:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20574:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20575:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_5_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XForLoopExpression__ForExpressionAssignment_541787);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_5_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__ForExpressionAssignment_5"
+
+
+ // $ANTLR start "rule__XForLoopExpression__EachExpressionAssignment_7"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20584:1: rule__XForLoopExpression__EachExpressionAssignment_7 : ( ruleXExpression ) ;
+ public final void rule__XForLoopExpression__EachExpressionAssignment_7() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20588:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20589:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20589:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20590:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_7_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XForLoopExpression__EachExpressionAssignment_741818);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_7_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XForLoopExpression__EachExpressionAssignment_7"
+
+
+ // $ANTLR start "rule__XWhileExpression__PredicateAssignment_3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20599:1: rule__XWhileExpression__PredicateAssignment_3 : ( ruleXExpression ) ;
+ public final void rule__XWhileExpression__PredicateAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20603:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20604:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20604:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20605:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XWhileExpression__PredicateAssignment_341849);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XWhileExpression__PredicateAssignment_3"
+
+
+ // $ANTLR start "rule__XWhileExpression__BodyAssignment_5"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20614:1: rule__XWhileExpression__BodyAssignment_5 : ( ruleXExpression ) ;
+ public final void rule__XWhileExpression__BodyAssignment_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20618:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20619:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20619:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20620:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XWhileExpression__BodyAssignment_541880);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XWhileExpression__BodyAssignment_5"
+
+
+ // $ANTLR start "rule__XDoWhileExpression__BodyAssignment_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20629:1: rule__XDoWhileExpression__BodyAssignment_2 : ( ruleXExpression ) ;
+ public final void rule__XDoWhileExpression__BodyAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20633:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20634:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20634:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20635:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XDoWhileExpression__BodyAssignment_241911);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XDoWhileExpression__BodyAssignment_2"
+
+
+ // $ANTLR start "rule__XDoWhileExpression__PredicateAssignment_5"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20644:1: rule__XDoWhileExpression__PredicateAssignment_5 : ( ruleXExpression ) ;
+ public final void rule__XDoWhileExpression__PredicateAssignment_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20648:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20649:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20649:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20650:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XDoWhileExpression__PredicateAssignment_541942);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XDoWhileExpression__PredicateAssignment_5"
+
+
+ // $ANTLR start "rule__XBlockExpression__ExpressionsAssignment_2_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20659:1: rule__XBlockExpression__ExpressionsAssignment_2_0 : ( ruleXExpressionInsideBlock ) ;
+ public final void rule__XBlockExpression__ExpressionsAssignment_2_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20663:1: ( ( ruleXExpressionInsideBlock ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20664:1: ( ruleXExpressionInsideBlock )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20664:1: ( ruleXExpressionInsideBlock )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20665:1: ruleXExpressionInsideBlock
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionInsideBlockParserRuleCall_2_0_0());
+ }
+ pushFollow(FOLLOW_ruleXExpressionInsideBlock_in_rule__XBlockExpression__ExpressionsAssignment_2_041973);
+ ruleXExpressionInsideBlock();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionInsideBlockParserRuleCall_2_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBlockExpression__ExpressionsAssignment_2_0"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__WriteableAssignment_1_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20674:1: rule__XVariableDeclaration__WriteableAssignment_1_0 : ( ( 'var' ) ) ;
+ public final void rule__XVariableDeclaration__WriteableAssignment_1_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20678:1: ( ( ( 'var' ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20679:1: ( ( 'var' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20679:1: ( ( 'var' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20680:1: ( 'var' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20681:1: ( 'var' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20682:1: 'var'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0());
+ }
+ match(input,99,FOLLOW_99_in_rule__XVariableDeclaration__WriteableAssignment_1_042009); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__WriteableAssignment_1_0"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__TypeAssignment_2_0_0_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20697:1: rule__XVariableDeclaration__TypeAssignment_2_0_0_0 : ( ruleJvmTypeReference ) ;
+ public final void rule__XVariableDeclaration__TypeAssignment_2_0_0_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20701:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20702:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20702:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20703:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__XVariableDeclaration__TypeAssignment_2_0_0_042048);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__TypeAssignment_2_0_0_0"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__NameAssignment_2_0_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20712:1: rule__XVariableDeclaration__NameAssignment_2_0_0_1 : ( ruleValidID ) ;
+ public final void rule__XVariableDeclaration__NameAssignment_2_0_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20716:1: ( ( ruleValidID ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20717:1: ( ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20717:1: ( ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20718:1: ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0());
+ }
+ pushFollow(FOLLOW_ruleValidID_in_rule__XVariableDeclaration__NameAssignment_2_0_0_142079);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__NameAssignment_2_0_0_1"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__NameAssignment_2_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20727:1: rule__XVariableDeclaration__NameAssignment_2_1 : ( ruleValidID ) ;
+ public final void rule__XVariableDeclaration__NameAssignment_2_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20731:1: ( ( ruleValidID ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20732:1: ( ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20732:1: ( ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20733:1: ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0());
+ }
+ pushFollow(FOLLOW_ruleValidID_in_rule__XVariableDeclaration__NameAssignment_2_142110);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__NameAssignment_2_1"
+
+
+ // $ANTLR start "rule__XVariableDeclaration__RightAssignment_3_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20742:1: rule__XVariableDeclaration__RightAssignment_3_1 : ( ruleXExpression ) ;
+ public final void rule__XVariableDeclaration__RightAssignment_3_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20746:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20747:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20747:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20748:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XVariableDeclaration__RightAssignment_3_142141);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XVariableDeclaration__RightAssignment_3_1"
+
+
+ // $ANTLR start "rule__JvmFormalParameter__ParameterTypeAssignment_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20757:1: rule__JvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+ public final void rule__JvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20761:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20762:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20762:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20763:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__JvmFormalParameter__ParameterTypeAssignment_042172);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmFormalParameter__ParameterTypeAssignment_0"
+
+
+ // $ANTLR start "rule__JvmFormalParameter__NameAssignment_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20772:1: rule__JvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
+ public final void rule__JvmFormalParameter__NameAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20776:1: ( ( ruleValidID ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20777:1: ( ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20777:1: ( ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20778:1: ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_ruleValidID_in_rule__JvmFormalParameter__NameAssignment_142203);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmFormalParameter__NameAssignment_1"
+
+
+ // $ANTLR start "rule__FullJvmFormalParameter__ParameterTypeAssignment_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20787:1: rule__FullJvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
+ public final void rule__FullJvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20791:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20792:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20792:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20793:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__FullJvmFormalParameter__ParameterTypeAssignment_042234);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FullJvmFormalParameter__ParameterTypeAssignment_0"
+
+
+ // $ANTLR start "rule__FullJvmFormalParameter__NameAssignment_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20802:1: rule__FullJvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
+ public final void rule__FullJvmFormalParameter__NameAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20806:1: ( ( ruleValidID ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20807:1: ( ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20807:1: ( ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20808:1: ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_ruleValidID_in_rule__FullJvmFormalParameter__NameAssignment_142265);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__FullJvmFormalParameter__NameAssignment_1"
+
+
+ // $ANTLR start "rule__XFeatureCall__TypeArgumentsAssignment_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20817:1: rule__XFeatureCall__TypeArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
+ public final void rule__XFeatureCall__TypeArgumentsAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20821:1: ( ( ruleJvmArgumentTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20822:1: ( ruleJvmArgumentTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20822:1: ( ruleJvmArgumentTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20823:1: ruleJvmArgumentTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_rule__XFeatureCall__TypeArgumentsAssignment_1_142296);
+ ruleJvmArgumentTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__TypeArgumentsAssignment_1_1"
+
+
+ // $ANTLR start "rule__XFeatureCall__TypeArgumentsAssignment_1_2_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20832:1: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+ public final void rule__XFeatureCall__TypeArgumentsAssignment_1_2_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20836:1: ( ( ruleJvmArgumentTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20837:1: ( ruleJvmArgumentTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20837:1: ( ruleJvmArgumentTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20838:1: ruleJvmArgumentTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0());
+ }
+ pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_rule__XFeatureCall__TypeArgumentsAssignment_1_2_142327);
+ ruleJvmArgumentTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__TypeArgumentsAssignment_1_2_1"
+
+
+ // $ANTLR start "rule__XFeatureCall__FeatureAssignment_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20847:1: rule__XFeatureCall__FeatureAssignment_2 : ( ( ruleIdOrSuper ) ) ;
+ public final void rule__XFeatureCall__FeatureAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20851:1: ( ( ( ruleIdOrSuper ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20852:1: ( ( ruleIdOrSuper ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20852:1: ( ( ruleIdOrSuper ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20853:1: ( ruleIdOrSuper )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20854:1: ( ruleIdOrSuper )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20855:1: ruleIdOrSuper
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1());
+ }
+ pushFollow(FOLLOW_ruleIdOrSuper_in_rule__XFeatureCall__FeatureAssignment_242362);
+ ruleIdOrSuper();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__FeatureAssignment_2"
+
+
+ // $ANTLR start "rule__XFeatureCall__ExplicitOperationCallAssignment_3_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20866:1: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 : ( ( '(' ) ) ;
+ public final void rule__XFeatureCall__ExplicitOperationCallAssignment_3_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20870:1: ( ( ( '(' ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20871:1: ( ( '(' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20871:1: ( ( '(' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20872:1: ( '(' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20873:1: ( '(' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20874:1: '('
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0());
+ }
+ match(input,77,FOLLOW_77_in_rule__XFeatureCall__ExplicitOperationCallAssignment_3_042402); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__ExplicitOperationCallAssignment_3_0"
+
+
+ // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20889:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 : ( ruleXShortClosure ) ;
+ public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20893:1: ( ( ruleXShortClosure ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20894:1: ( ruleXShortClosure )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20894:1: ( ruleXShortClosure )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20895:1: ruleXShortClosure
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0());
+ }
+ pushFollow(FOLLOW_ruleXShortClosure_in_rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_042441);
+ ruleXShortClosure();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0"
+
+
+ // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20904:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 : ( ruleXExpression ) ;
+ public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20908:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20909:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20909:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20910:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_042472);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0"
+
+
+ // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20919:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 : ( ruleXExpression ) ;
+ public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20923:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20924:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20924:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20925:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_142503);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1"
+
+
+ // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20934:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_4 : ( ruleXClosure ) ;
+ public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20938:1: ( ( ruleXClosure ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20939:1: ( ruleXClosure )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20939:1: ( ruleXClosure )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20940:1: ruleXClosure
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0());
+ }
+ pushFollow(FOLLOW_ruleXClosure_in_rule__XFeatureCall__FeatureCallArgumentsAssignment_442534);
+ ruleXClosure();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFeatureCall__FeatureCallArgumentsAssignment_4"
+
+
+ // $ANTLR start "rule__XConstructorCall__ConstructorAssignment_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20949:1: rule__XConstructorCall__ConstructorAssignment_2 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__XConstructorCall__ConstructorAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20953:1: ( ( ( ruleQualifiedName ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20954:1: ( ( ruleQualifiedName ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20954:1: ( ( ruleQualifiedName ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20955:1: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20956:1: ( ruleQualifiedName )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20957:1: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1());
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_rule__XConstructorCall__ConstructorAssignment_242569);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__ConstructorAssignment_2"
+
+
+ // $ANTLR start "rule__XConstructorCall__TypeArgumentsAssignment_3_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20968:1: rule__XConstructorCall__TypeArgumentsAssignment_3_1 : ( ruleJvmArgumentTypeReference ) ;
+ public final void rule__XConstructorCall__TypeArgumentsAssignment_3_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20972:1: ( ( ruleJvmArgumentTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20973:1: ( ruleJvmArgumentTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20973:1: ( ruleJvmArgumentTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20974:1: ruleJvmArgumentTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0());
+ }
+ pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_rule__XConstructorCall__TypeArgumentsAssignment_3_142604);
+ ruleJvmArgumentTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__TypeArgumentsAssignment_3_1"
+
+
+ // $ANTLR start "rule__XConstructorCall__TypeArgumentsAssignment_3_2_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20983:1: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 : ( ruleJvmArgumentTypeReference ) ;
+ public final void rule__XConstructorCall__TypeArgumentsAssignment_3_2_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20987:1: ( ( ruleJvmArgumentTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20988:1: ( ruleJvmArgumentTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20988:1: ( ruleJvmArgumentTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20989:1: ruleJvmArgumentTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0());
+ }
+ pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_rule__XConstructorCall__TypeArgumentsAssignment_3_2_142635);
+ ruleJvmArgumentTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__TypeArgumentsAssignment_3_2_1"
+
+
+ // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:20998:1: rule__XConstructorCall__ArgumentsAssignment_4_1_0 : ( ruleXShortClosure ) ;
+ public final void rule__XConstructorCall__ArgumentsAssignment_4_1_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21002:1: ( ( ruleXShortClosure ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21003:1: ( ruleXShortClosure )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21003:1: ( ruleXShortClosure )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21004:1: ruleXShortClosure
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0());
+ }
+ pushFollow(FOLLOW_ruleXShortClosure_in_rule__XConstructorCall__ArgumentsAssignment_4_1_042666);
+ ruleXShortClosure();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__ArgumentsAssignment_4_1_0"
+
+
+ // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_1_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21013:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 : ( ruleXExpression ) ;
+ public final void rule__XConstructorCall__ArgumentsAssignment_4_1_1_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21017:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21018:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21018:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21019:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XConstructorCall__ArgumentsAssignment_4_1_1_042697);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__ArgumentsAssignment_4_1_1_0"
+
+
+ // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21028:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 : ( ruleXExpression ) ;
+ public final void rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21032:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21033:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21033:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21034:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_142728);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1"
+
+
+ // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_5"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21043:1: rule__XConstructorCall__ArgumentsAssignment_5 : ( ruleXClosure ) ;
+ public final void rule__XConstructorCall__ArgumentsAssignment_5() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21047:1: ( ( ruleXClosure ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21048:1: ( ruleXClosure )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21048:1: ( ruleXClosure )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21049:1: ruleXClosure
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0());
+ }
+ pushFollow(FOLLOW_ruleXClosure_in_rule__XConstructorCall__ArgumentsAssignment_542759);
+ ruleXClosure();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XConstructorCall__ArgumentsAssignment_5"
+
+
+ // $ANTLR start "rule__XBooleanLiteral__IsTrueAssignment_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21058:1: rule__XBooleanLiteral__IsTrueAssignment_1_1 : ( ( 'true' ) ) ;
+ public final void rule__XBooleanLiteral__IsTrueAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21062:1: ( ( ( 'true' ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21063:1: ( ( 'true' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21063:1: ( ( 'true' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21064:1: ( 'true' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21065:1: ( 'true' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21066:1: 'true'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0());
+ }
+ match(input,100,FOLLOW_100_in_rule__XBooleanLiteral__IsTrueAssignment_1_142795); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XBooleanLiteral__IsTrueAssignment_1_1"
+
+
+ // $ANTLR start "rule__XNumberLiteral__ValueAssignment_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21081:1: rule__XNumberLiteral__ValueAssignment_1 : ( ruleNumber ) ;
+ public final void rule__XNumberLiteral__ValueAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21085:1: ( ( ruleNumber ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21086:1: ( ruleNumber )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21086:1: ( ruleNumber )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21087:1: ruleNumber
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_ruleNumber_in_rule__XNumberLiteral__ValueAssignment_142834);
+ ruleNumber();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XNumberLiteral__ValueAssignment_1"
+
+
+ // $ANTLR start "rule__XStringLiteral__ValueAssignment_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21096:1: rule__XStringLiteral__ValueAssignment_1 : ( RULE_STRING ) ;
+ public final void rule__XStringLiteral__ValueAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21100:1: ( ( RULE_STRING ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21101:1: ( RULE_STRING )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21101:1: ( RULE_STRING )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21102:1: RULE_STRING
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0());
+ }
+ match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__XStringLiteral__ValueAssignment_142865); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XStringLiteral__ValueAssignment_1"
+
+
+ // $ANTLR start "rule__XTypeLiteral__TypeAssignment_3"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21111:1: rule__XTypeLiteral__TypeAssignment_3 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__XTypeLiteral__TypeAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21115:1: ( ( ( ruleQualifiedName ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21116:1: ( ( ruleQualifiedName ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21116:1: ( ( ruleQualifiedName ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21117:1: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21118:1: ( ruleQualifiedName )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21119:1: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1());
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_rule__XTypeLiteral__TypeAssignment_342900);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTypeLiteral__TypeAssignment_3"
+
+
+ // $ANTLR start "rule__XTypeLiteral__ArrayDimensionsAssignment_4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21130:1: rule__XTypeLiteral__ArrayDimensionsAssignment_4 : ( ruleArrayBrackets ) ;
+ public final void rule__XTypeLiteral__ArrayDimensionsAssignment_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21134:1: ( ( ruleArrayBrackets ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21135:1: ( ruleArrayBrackets )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21135:1: ( ruleArrayBrackets )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21136:1: ruleArrayBrackets
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0());
+ }
+ pushFollow(FOLLOW_ruleArrayBrackets_in_rule__XTypeLiteral__ArrayDimensionsAssignment_442935);
+ ruleArrayBrackets();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTypeLiteral__ArrayDimensionsAssignment_4"
+
+
+ // $ANTLR start "rule__XThrowExpression__ExpressionAssignment_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21145:1: rule__XThrowExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+ public final void rule__XThrowExpression__ExpressionAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21149:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21150:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21150:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21151:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XThrowExpression__ExpressionAssignment_242966);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XThrowExpression__ExpressionAssignment_2"
+
+
+ // $ANTLR start "rule__XReturnExpression__ExpressionAssignment_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21160:1: rule__XReturnExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+ public final void rule__XReturnExpression__ExpressionAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21164:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21165:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21165:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21166:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XReturnExpression__ExpressionAssignment_242997);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XReturnExpression__ExpressionAssignment_2"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__ExpressionAssignment_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21175:1: rule__XTryCatchFinallyExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
+ public final void rule__XTryCatchFinallyExpression__ExpressionAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21179:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21180:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21180:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21181:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XTryCatchFinallyExpression__ExpressionAssignment_243028);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__ExpressionAssignment_2"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21190:1: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 : ( ruleXCatchClause ) ;
+ public final void rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21194:1: ( ( ruleXCatchClause ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21195:1: ( ruleXCatchClause )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21195:1: ( ruleXCatchClause )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21196:1: ruleXCatchClause
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0());
+ }
+ pushFollow(FOLLOW_ruleXCatchClause_in_rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_043059);
+ ruleXCatchClause();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21205:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 : ( ruleXExpression ) ;
+ public final void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21209:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21210:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21210:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21211:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_143090);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1"
+
+
+ // $ANTLR start "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21220:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 : ( ruleXExpression ) ;
+ public final void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21224:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21225:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21225:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21226:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_143121);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1"
+
+
+ // $ANTLR start "rule__XCatchClause__DeclaredParamAssignment_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21235:1: rule__XCatchClause__DeclaredParamAssignment_2 : ( ruleFullJvmFormalParameter ) ;
+ public final void rule__XCatchClause__DeclaredParamAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21239:1: ( ( ruleFullJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21240:1: ( ruleFullJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21240:1: ( ruleFullJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21241:1: ruleFullJvmFormalParameter
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_ruleFullJvmFormalParameter_in_rule__XCatchClause__DeclaredParamAssignment_243152);
+ ruleFullJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCatchClause__DeclaredParamAssignment_2"
+
+
+ // $ANTLR start "rule__XCatchClause__ExpressionAssignment_4"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21250:1: rule__XCatchClause__ExpressionAssignment_4 : ( ruleXExpression ) ;
+ public final void rule__XCatchClause__ExpressionAssignment_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21254:1: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21255:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21255:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21256:1: ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rule__XCatchClause__ExpressionAssignment_443183);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XCatchClause__ExpressionAssignment_4"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21265:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 : ( ruleJvmTypeReference ) ;
+ public final void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21269:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21270:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21270:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21271:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__XFunctionTypeRef__ParamTypesAssignment_0_1_043214);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21280:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 : ( ruleJvmTypeReference ) ;
+ public final void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21284:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21285:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21285:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21286:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_143245);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1"
+
+
+ // $ANTLR start "rule__XFunctionTypeRef__ReturnTypeAssignment_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21295:1: rule__XFunctionTypeRef__ReturnTypeAssignment_2 : ( ruleJvmTypeReference ) ;
+ public final void rule__XFunctionTypeRef__ReturnTypeAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21299:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21300:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21300:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21301:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__XFunctionTypeRef__ReturnTypeAssignment_243276);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XFunctionTypeRef__ReturnTypeAssignment_2"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__TypeAssignment_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21310:1: rule__JvmParameterizedTypeReference__TypeAssignment_0 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__JvmParameterizedTypeReference__TypeAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21314:1: ( ( ( ruleQualifiedName ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21315:1: ( ( ruleQualifiedName ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21315:1: ( ( ruleQualifiedName ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21316:1: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21317:1: ( ruleQualifiedName )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21318:1: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1());
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_rule__JvmParameterizedTypeReference__TypeAssignment_043311);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__TypeAssignment_0"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21329:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
+ public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21333:1: ( ( ruleJvmArgumentTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21334:1: ( ruleJvmArgumentTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21334:1: ( ruleJvmArgumentTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21335:1: ruleJvmArgumentTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0());
+ }
+ pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_143346);
+ ruleJvmArgumentTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1"
+
+
+ // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21344:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
+ public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21348:1: ( ( ruleJvmArgumentTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21349:1: ( ruleJvmArgumentTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21349:1: ( ruleJvmArgumentTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21350:1: ruleJvmArgumentTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0());
+ }
+ pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_143377);
+ ruleJvmArgumentTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1"
+
+
+ // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21359:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0 : ( ruleJvmUpperBound ) ;
+ public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21363:1: ( ( ruleJvmUpperBound ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21364:1: ( ruleJvmUpperBound )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21364:1: ( ruleJvmUpperBound )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21365:1: ruleJvmUpperBound
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0());
+ }
+ pushFollow(FOLLOW_ruleJvmUpperBound_in_rule__JvmWildcardTypeReference__ConstraintsAssignment_2_043408);
+ ruleJvmUpperBound();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0"
+
+
+ // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21374:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1 : ( ruleJvmLowerBound ) ;
+ public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21378:1: ( ( ruleJvmLowerBound ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21379:1: ( ruleJvmLowerBound )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21379:1: ( ruleJvmLowerBound )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21380:1: ruleJvmLowerBound
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0());
+ }
+ pushFollow(FOLLOW_ruleJvmLowerBound_in_rule__JvmWildcardTypeReference__ConstraintsAssignment_2_143439);
+ ruleJvmLowerBound();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1"
+
+
+ // $ANTLR start "rule__JvmUpperBound__TypeReferenceAssignment_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21389:1: rule__JvmUpperBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+ public final void rule__JvmUpperBound__TypeReferenceAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21393:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21394:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21394:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21395:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__JvmUpperBound__TypeReferenceAssignment_143470);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmUpperBound__TypeReferenceAssignment_1"
+
+
+ // $ANTLR start "rule__JvmUpperBoundAnded__TypeReferenceAssignment_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21404:1: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+ public final void rule__JvmUpperBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21408:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21409:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21409:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21410:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__JvmUpperBoundAnded__TypeReferenceAssignment_143501);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmUpperBoundAnded__TypeReferenceAssignment_1"
+
+
+ // $ANTLR start "rule__JvmLowerBound__TypeReferenceAssignment_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21419:1: rule__JvmLowerBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
+ public final void rule__JvmLowerBound__TypeReferenceAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21423:1: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21424:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21424:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21425:1: ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rule__JvmLowerBound__TypeReferenceAssignment_143532);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__JvmLowerBound__TypeReferenceAssignment_1"
+
+
+ // $ANTLR start "rule__XImportSection__ImportDeclarationsAssignment"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21438:1: rule__XImportSection__ImportDeclarationsAssignment : ( ruleXImportDeclaration ) ;
+ public final void rule__XImportSection__ImportDeclarationsAssignment() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21442:1: ( ( ruleXImportDeclaration ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21443:1: ( ruleXImportDeclaration )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21443:1: ( ruleXImportDeclaration )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21444:1: ruleXImportDeclaration
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0());
+ }
+ pushFollow(FOLLOW_ruleXImportDeclaration_in_rule__XImportSection__ImportDeclarationsAssignment43567);
+ ruleXImportDeclaration();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportSection__ImportDeclarationsAssignment"
+
+
+ // $ANTLR start "rule__XImportDeclaration__StaticAssignment_1_0_0"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21453:1: rule__XImportDeclaration__StaticAssignment_1_0_0 : ( ( 'static' ) ) ;
+ public final void rule__XImportDeclaration__StaticAssignment_1_0_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21457:1: ( ( ( 'static' ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21458:1: ( ( 'static' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21458:1: ( ( 'static' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21459:1: ( 'static' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21460:1: ( 'static' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21461:1: 'static'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0());
+ }
+ match(input,43,FOLLOW_43_in_rule__XImportDeclaration__StaticAssignment_1_0_043603); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__StaticAssignment_1_0_0"
+
+
+ // $ANTLR start "rule__XImportDeclaration__ExtensionAssignment_1_0_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21476:1: rule__XImportDeclaration__ExtensionAssignment_1_0_1 : ( ( 'extension' ) ) ;
+ public final void rule__XImportDeclaration__ExtensionAssignment_1_0_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21480:1: ( ( ( 'extension' ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21481:1: ( ( 'extension' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21481:1: ( ( 'extension' ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21482:1: ( 'extension' )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21483:1: ( 'extension' )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21484:1: 'extension'
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0());
+ }
+ match(input,45,FOLLOW_45_in_rule__XImportDeclaration__ExtensionAssignment_1_0_143647); if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__ExtensionAssignment_1_0_1"
+
+
+ // $ANTLR start "rule__XImportDeclaration__ImportedTypeAssignment_1_0_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21499:1: rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__XImportDeclaration__ImportedTypeAssignment_1_0_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21503:1: ( ( ( ruleQualifiedName ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21504:1: ( ( ruleQualifiedName ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21504:1: ( ( ruleQualifiedName ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21505:1: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_0_2_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21506:1: ( ruleQualifiedName )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21507:1: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_1_0_2_0_1());
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_rule__XImportDeclaration__ImportedTypeAssignment_1_0_243690);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_1_0_2_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_0_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__ImportedTypeAssignment_1_0_2"
+
+
+ // $ANTLR start "rule__XImportDeclaration__ImportedTypeAssignment_1_1"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21518:1: rule__XImportDeclaration__ImportedTypeAssignment_1_1 : ( ( ruleQualifiedName ) ) ;
+ public final void rule__XImportDeclaration__ImportedTypeAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21522:1: ( ( ( ruleQualifiedName ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21523:1: ( ( ruleQualifiedName ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21523:1: ( ( ruleQualifiedName ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21524:1: ( ruleQualifiedName )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21525:1: ( ruleQualifiedName )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21526:1: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_1_1_0_1());
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_rule__XImportDeclaration__ImportedTypeAssignment_1_143729);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_1_1_0_1());
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_1_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__ImportedTypeAssignment_1_1"
+
+
+ // $ANTLR start "rule__XImportDeclaration__ImportedNamespaceAssignment_1_2"
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21537:1: rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 : ( ruleQualifiedNameWithWildcard ) ;
+ public final void rule__XImportDeclaration__ImportedNamespaceAssignment_1_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21541:1: ( ( ruleQualifiedNameWithWildcard ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21542:1: ( ruleQualifiedNameWithWildcard )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21542:1: ( ruleQualifiedNameWithWildcard )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:21543:1: ruleQualifiedNameWithWildcard
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_2_0());
+ }
+ pushFollow(FOLLOW_ruleQualifiedNameWithWildcard_in_rule__XImportDeclaration__ImportedNamespaceAssignment_1_243764);
+ ruleQualifiedNameWithWildcard();
+
+ state._fsp--;
+ if (state.failed) return ;
+ if ( state.backtracking==0 ) {
+ after(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_2_0());
+ }
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__XImportDeclaration__ImportedNamespaceAssignment_1_2"
+
+ // $ANTLR start synpred21_InternalEmfParsleyDsl
+ public final void synpred21_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2766:1: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2766:1: ( ( rule__OpOther__Group_6_1_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2766:1: ( ( rule__OpOther__Group_6_1_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2767:1: ( rule__OpOther__Group_6_1_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getOpOtherAccess().getGroup_6_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2768:1: ( rule__OpOther__Group_6_1_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2768:2: rule__OpOther__Group_6_1_0__0
+ {
+ pushFollow(FOLLOW_rule__OpOther__Group_6_1_0__0_in_synpred21_InternalEmfParsleyDsl5883);
+ rule__OpOther__Group_6_1_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred21_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred33_InternalEmfParsleyDsl
+ public final void synpred33_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2990:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2990:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2990:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2991:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2992:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:2992:2: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0_in_synpred33_InternalEmfParsleyDsl6386);
+ rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred33_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred56_InternalEmfParsleyDsl
+ public final void synpred56_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3242:1: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3242:1: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3242:1: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3243:1: ( rule__XVariableDeclaration__Group_2_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3244:1: ( rule__XVariableDeclaration__Group_2_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3244:2: rule__XVariableDeclaration__Group_2_0__0
+ {
+ pushFollow(FOLLOW_rule__XVariableDeclaration__Group_2_0__0_in_synpred56_InternalEmfParsleyDsl7011);
+ rule__XVariableDeclaration__Group_2_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred56_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred57_InternalEmfParsleyDsl
+ public final void synpred57_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3264:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3264:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3264:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3265:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3266:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3266:2: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0_in_synpred57_InternalEmfParsleyDsl7062);
+ rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred57_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred63_InternalEmfParsleyDsl
+ public final void synpred63_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3358:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3358:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3358:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3359:1: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3360:1: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:3360:2: rule__XConstructorCall__ArgumentsAssignment_4_1_0
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__ArgumentsAssignment_4_1_0_in_synpred63_InternalEmfParsleyDsl7277);
+ rule__XConstructorCall__ArgumentsAssignment_4_1_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred63_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred92_InternalEmfParsleyDsl
+ public final void synpred92_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7211:2: ( rule__XAssignment__Group_1_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7211:2: rule__XAssignment__Group_1_1__0
+ {
+ pushFollow(FOLLOW_rule__XAssignment__Group_1_1__0_in_synpred92_InternalEmfParsleyDsl14893);
+ rule__XAssignment__Group_1_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred92_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred93_InternalEmfParsleyDsl
+ public final void synpred93_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7426:2: ( rule__XOrExpression__Group_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7426:2: rule__XOrExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XOrExpression__Group_1__0_in_synpred93_InternalEmfParsleyDsl15316);
+ rule__XOrExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred93_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred94_InternalEmfParsleyDsl
+ public final void synpred94_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7641:2: ( rule__XAndExpression__Group_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7641:2: rule__XAndExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XAndExpression__Group_1__0_in_synpred94_InternalEmfParsleyDsl15739);
+ rule__XAndExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred94_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred95_InternalEmfParsleyDsl
+ public final void synpred95_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7856:2: ( rule__XEqualityExpression__Group_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:7856:2: rule__XEqualityExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XEqualityExpression__Group_1__0_in_synpred95_InternalEmfParsleyDsl16162);
+ rule__XEqualityExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred95_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred96_InternalEmfParsleyDsl
+ public final void synpred96_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8071:2: ( rule__XRelationalExpression__Alternatives_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8071:2: rule__XRelationalExpression__Alternatives_1
+ {
+ pushFollow(FOLLOW_rule__XRelationalExpression__Alternatives_1_in_synpred96_InternalEmfParsleyDsl16585);
+ rule__XRelationalExpression__Alternatives_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred96_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred97_InternalEmfParsleyDsl
+ public final void synpred97_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8442:2: ( rule__XOtherOperatorExpression__Group_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:8442:2: rule__XOtherOperatorExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XOtherOperatorExpression__Group_1__0_in_synpred97_InternalEmfParsleyDsl17312);
+ rule__XOtherOperatorExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred97_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred98_InternalEmfParsleyDsl
+ public final void synpred98_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9038:2: ( rule__XAdditiveExpression__Group_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9038:2: rule__XAdditiveExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XAdditiveExpression__Group_1__0_in_synpred98_InternalEmfParsleyDsl18474);
+ rule__XAdditiveExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred98_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred99_InternalEmfParsleyDsl
+ public final void synpred99_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9253:2: ( rule__XMultiplicativeExpression__Group_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9253:2: rule__XMultiplicativeExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XMultiplicativeExpression__Group_1__0_in_synpred99_InternalEmfParsleyDsl18897);
+ rule__XMultiplicativeExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred99_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred100_InternalEmfParsleyDsl
+ public final void synpred100_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9562:2: ( rule__XCastedExpression__Group_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9562:2: rule__XCastedExpression__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XCastedExpression__Group_1__0_in_synpred100_InternalEmfParsleyDsl19504);
+ rule__XCastedExpression__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred100_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred101_InternalEmfParsleyDsl
+ public final void synpred101_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9779:2: ( rule__XMemberFeatureCall__Alternatives_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:9779:2: rule__XMemberFeatureCall__Alternatives_1
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Alternatives_1_in_synpred101_InternalEmfParsleyDsl19929);
+ rule__XMemberFeatureCall__Alternatives_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred101_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred103_InternalEmfParsleyDsl
+ public final void synpred103_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10115:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10115:2: rule__XMemberFeatureCall__Group_1_1_3__0
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__0_in_synpred103_InternalEmfParsleyDsl20600);
+ rule__XMemberFeatureCall__Group_1_1_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred103_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred104_InternalEmfParsleyDsl
+ public final void synpred104_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10143:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:10143:2: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
+ {
+ pushFollow(FOLLOW_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4_in_synpred104_InternalEmfParsleyDsl20658);
+ rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred104_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred112_InternalEmfParsleyDsl
+ public final void synpred112_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11284:2: ( rule__XClosure__Group_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:11284:2: rule__XClosure__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__XClosure__Group_1__0_in_synpred112_InternalEmfParsleyDsl22894);
+ rule__XClosure__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred112_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred119_InternalEmfParsleyDsl
+ public final void synpred119_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12402:2: ( rule__XIfExpression__Group_6__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:12402:2: rule__XIfExpression__Group_6__0
+ {
+ pushFollow(FOLLOW_rule__XIfExpression__Group_6__0_in_synpred119_InternalEmfParsleyDsl25100);
+ rule__XIfExpression__Group_6__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred119_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred130_InternalEmfParsleyDsl
+ public final void synpred130_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14755:2: ( rule__XFeatureCall__Group_3__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14755:2: rule__XFeatureCall__Group_3__0
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__Group_3__0_in_synpred130_InternalEmfParsleyDsl29720);
+ rule__XFeatureCall__Group_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred130_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred131_InternalEmfParsleyDsl
+ public final void synpred131_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14783:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:14783:2: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
+ {
+ pushFollow(FOLLOW_rule__XFeatureCall__FeatureCallArgumentsAssignment_4_in_synpred131_InternalEmfParsleyDsl29778);
+ rule__XFeatureCall__FeatureCallArgumentsAssignment_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred131_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred135_InternalEmfParsleyDsl
+ public final void synpred135_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15321:2: ( rule__XConstructorCall__Group_3__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15321:2: rule__XConstructorCall__Group_3__0
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_3__0_in_synpred135_InternalEmfParsleyDsl30836);
+ rule__XConstructorCall__Group_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred135_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred136_InternalEmfParsleyDsl
+ public final void synpred136_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15350:2: ( rule__XConstructorCall__Group_4__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15350:2: rule__XConstructorCall__Group_4__0
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__Group_4__0_in_synpred136_InternalEmfParsleyDsl30897);
+ rule__XConstructorCall__Group_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred136_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred137_InternalEmfParsleyDsl
+ public final void synpred137_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15378:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:15378:2: rule__XConstructorCall__ArgumentsAssignment_5
+ {
+ pushFollow(FOLLOW_rule__XConstructorCall__ArgumentsAssignment_5_in_synpred137_InternalEmfParsleyDsl30955);
+ rule__XConstructorCall__ArgumentsAssignment_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred137_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred142_InternalEmfParsleyDsl
+ public final void synpred142_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16433:2: ( rule__XReturnExpression__ExpressionAssignment_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16433:2: rule__XReturnExpression__ExpressionAssignment_2
+ {
+ pushFollow(FOLLOW_rule__XReturnExpression__ExpressionAssignment_2_in_synpred142_InternalEmfParsleyDsl33011);
+ rule__XReturnExpression__ExpressionAssignment_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred142_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred143_InternalEmfParsleyDsl
+ public final void synpred143_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16601:2: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16601:2: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0_in_synpred143_InternalEmfParsleyDsl33340);
+ rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred143_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred144_InternalEmfParsleyDsl
+ public final void synpred144_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16630:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16630:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0
+ {
+ pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0_1__0_in_synpred144_InternalEmfParsleyDsl33400);
+ rule__XTryCatchFinallyExpression__Group_3_0_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred144_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred145_InternalEmfParsleyDsl
+ public final void synpred145_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16977:2: ( rule__QualifiedName__Group_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:16977:2: rule__QualifiedName__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__QualifiedName__Group_1__0_in_synpred145_InternalEmfParsleyDsl34084);
+ rule__QualifiedName__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred145_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred147_InternalEmfParsleyDsl
+ public final void synpred147_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17226:2: ( rule__JvmTypeReference__Group_0_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17226:2: rule__JvmTypeReference__Group_0_1__0
+ {
+ pushFollow(FOLLOW_rule__JvmTypeReference__Group_0_1__0_in_synpred147_InternalEmfParsleyDsl34575);
+ rule__JvmTypeReference__Group_0_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred147_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred151_InternalEmfParsleyDsl
+ public final void synpred151_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17759:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:17759:2: rule__JvmParameterizedTypeReference__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group_1__0_in_synpred151_InternalEmfParsleyDsl35621);
+ rule__JvmParameterizedTypeReference__Group_1__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred151_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred156_InternalEmfParsleyDsl
+ public final void synpred156_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18607:2: ( rule__Module__UnorderedGroup_4__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18607:2: rule__Module__UnorderedGroup_4__0
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__0_in_synpred156_InternalEmfParsleyDsl37278);
+ rule__Module__UnorderedGroup_4__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred156_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred157_InternalEmfParsleyDsl
+ public final void synpred157_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18625:4: ( ({...}? => ( ( ( rule__Module__LabelProviderAssignment_4_0 ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18625:4: ({...}? => ( ( ( rule__Module__LabelProviderAssignment_4_0 ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18625:4: ({...}? => ( ( ( rule__Module__LabelProviderAssignment_4_0 ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18626:5: {...}? => ( ( ( rule__Module__LabelProviderAssignment_4_0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred157_InternalEmfParsleyDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0)");
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18626:103: ( ( ( rule__Module__LabelProviderAssignment_4_0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18627:6: ( ( rule__Module__LabelProviderAssignment_4_0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0);
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18633:6: ( ( rule__Module__LabelProviderAssignment_4_0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18635:7: ( rule__Module__LabelProviderAssignment_4_0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getLabelProviderAssignment_4_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18636:7: ( rule__Module__LabelProviderAssignment_4_0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18636:8: rule__Module__LabelProviderAssignment_4_0
+ {
+ pushFollow(FOLLOW_rule__Module__LabelProviderAssignment_4_0_in_synpred157_InternalEmfParsleyDsl37365);
+ rule__Module__LabelProviderAssignment_4_0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred157_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred158_InternalEmfParsleyDsl
+ public final void synpred158_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18642:4: ( ({...}? => ( ( ( rule__Module__PropertyDescriptionProviderAssignment_4_1 ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18642:4: ({...}? => ( ( ( rule__Module__PropertyDescriptionProviderAssignment_4_1 ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18642:4: ({...}? => ( ( ( rule__Module__PropertyDescriptionProviderAssignment_4_1 ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18643:5: {...}? => ( ( ( rule__Module__PropertyDescriptionProviderAssignment_4_1 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred158_InternalEmfParsleyDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1)");
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18643:103: ( ( ( rule__Module__PropertyDescriptionProviderAssignment_4_1 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18644:6: ( ( rule__Module__PropertyDescriptionProviderAssignment_4_1 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1);
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18650:6: ( ( rule__Module__PropertyDescriptionProviderAssignment_4_1 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18652:7: ( rule__Module__PropertyDescriptionProviderAssignment_4_1 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getPropertyDescriptionProviderAssignment_4_1());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18653:7: ( rule__Module__PropertyDescriptionProviderAssignment_4_1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18653:8: rule__Module__PropertyDescriptionProviderAssignment_4_1
+ {
+ pushFollow(FOLLOW_rule__Module__PropertyDescriptionProviderAssignment_4_1_in_synpred158_InternalEmfParsleyDsl37456);
+ rule__Module__PropertyDescriptionProviderAssignment_4_1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred158_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred159_InternalEmfParsleyDsl
+ public final void synpred159_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18659:4: ( ({...}? => ( ( ( rule__Module__FeaturesProviderAssignment_4_2 ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18659:4: ({...}? => ( ( ( rule__Module__FeaturesProviderAssignment_4_2 ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18659:4: ({...}? => ( ( ( rule__Module__FeaturesProviderAssignment_4_2 ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18660:5: {...}? => ( ( ( rule__Module__FeaturesProviderAssignment_4_2 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred159_InternalEmfParsleyDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2)");
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18660:103: ( ( ( rule__Module__FeaturesProviderAssignment_4_2 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18661:6: ( ( rule__Module__FeaturesProviderAssignment_4_2 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2);
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18667:6: ( ( rule__Module__FeaturesProviderAssignment_4_2 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18669:7: ( rule__Module__FeaturesProviderAssignment_4_2 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getFeaturesProviderAssignment_4_2());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18670:7: ( rule__Module__FeaturesProviderAssignment_4_2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18670:8: rule__Module__FeaturesProviderAssignment_4_2
+ {
+ pushFollow(FOLLOW_rule__Module__FeaturesProviderAssignment_4_2_in_synpred159_InternalEmfParsleyDsl37547);
+ rule__Module__FeaturesProviderAssignment_4_2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred159_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred160_InternalEmfParsleyDsl
+ public final void synpred160_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18676:4: ( ({...}? => ( ( ( rule__Module__FormControlFactoryAssignment_4_3 ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18676:4: ({...}? => ( ( ( rule__Module__FormControlFactoryAssignment_4_3 ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18676:4: ({...}? => ( ( ( rule__Module__FormControlFactoryAssignment_4_3 ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18677:5: {...}? => ( ( ( rule__Module__FormControlFactoryAssignment_4_3 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred160_InternalEmfParsleyDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3)");
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18677:103: ( ( ( rule__Module__FormControlFactoryAssignment_4_3 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18678:6: ( ( rule__Module__FormControlFactoryAssignment_4_3 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3);
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18684:6: ( ( rule__Module__FormControlFactoryAssignment_4_3 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18686:7: ( rule__Module__FormControlFactoryAssignment_4_3 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getFormControlFactoryAssignment_4_3());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18687:7: ( rule__Module__FormControlFactoryAssignment_4_3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18687:8: rule__Module__FormControlFactoryAssignment_4_3
+ {
+ pushFollow(FOLLOW_rule__Module__FormControlFactoryAssignment_4_3_in_synpred160_InternalEmfParsleyDsl37638);
+ rule__Module__FormControlFactoryAssignment_4_3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred160_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred161_InternalEmfParsleyDsl
+ public final void synpred161_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18693:4: ( ({...}? => ( ( ( rule__Module__ProposalCreatorAssignment_4_4 ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18693:4: ({...}? => ( ( ( rule__Module__ProposalCreatorAssignment_4_4 ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18693:4: ({...}? => ( ( ( rule__Module__ProposalCreatorAssignment_4_4 ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18694:5: {...}? => ( ( ( rule__Module__ProposalCreatorAssignment_4_4 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred161_InternalEmfParsleyDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4)");
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18694:103: ( ( ( rule__Module__ProposalCreatorAssignment_4_4 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18695:6: ( ( rule__Module__ProposalCreatorAssignment_4_4 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4);
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18701:6: ( ( rule__Module__ProposalCreatorAssignment_4_4 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18703:7: ( rule__Module__ProposalCreatorAssignment_4_4 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getProposalCreatorAssignment_4_4());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18704:7: ( rule__Module__ProposalCreatorAssignment_4_4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18704:8: rule__Module__ProposalCreatorAssignment_4_4
+ {
+ pushFollow(FOLLOW_rule__Module__ProposalCreatorAssignment_4_4_in_synpred161_InternalEmfParsleyDsl37729);
+ rule__Module__ProposalCreatorAssignment_4_4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred161_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred162_InternalEmfParsleyDsl
+ public final void synpred162_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18710:4: ( ({...}? => ( ( ( rule__Module__ViewerContentProviderAssignment_4_5 ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18710:4: ({...}? => ( ( ( rule__Module__ViewerContentProviderAssignment_4_5 ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18710:4: ({...}? => ( ( ( rule__Module__ViewerContentProviderAssignment_4_5 ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18711:5: {...}? => ( ( ( rule__Module__ViewerContentProviderAssignment_4_5 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred162_InternalEmfParsleyDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5)");
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18711:103: ( ( ( rule__Module__ViewerContentProviderAssignment_4_5 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18712:6: ( ( rule__Module__ViewerContentProviderAssignment_4_5 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5);
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18718:6: ( ( rule__Module__ViewerContentProviderAssignment_4_5 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18720:7: ( rule__Module__ViewerContentProviderAssignment_4_5 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getModuleAccess().getViewerContentProviderAssignment_4_5());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18721:7: ( rule__Module__ViewerContentProviderAssignment_4_5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18721:8: rule__Module__ViewerContentProviderAssignment_4_5
+ {
+ pushFollow(FOLLOW_rule__Module__ViewerContentProviderAssignment_4_5_in_synpred162_InternalEmfParsleyDsl37820);
+ rule__Module__ViewerContentProviderAssignment_4_5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred162_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred163_InternalEmfParsleyDsl
+ public final void synpred163_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18759:2: ( rule__Module__UnorderedGroup_4__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18759:2: rule__Module__UnorderedGroup_4__1
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__1_in_synpred163_InternalEmfParsleyDsl37973);
+ rule__Module__UnorderedGroup_4__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred163_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred164_InternalEmfParsleyDsl
+ public final void synpred164_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18772:2: ( rule__Module__UnorderedGroup_4__2 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18772:2: rule__Module__UnorderedGroup_4__2
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__2_in_synpred164_InternalEmfParsleyDsl38001);
+ rule__Module__UnorderedGroup_4__2();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred164_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred165_InternalEmfParsleyDsl
+ public final void synpred165_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18785:2: ( rule__Module__UnorderedGroup_4__3 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18785:2: rule__Module__UnorderedGroup_4__3
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__3_in_synpred165_InternalEmfParsleyDsl38029);
+ rule__Module__UnorderedGroup_4__3();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred165_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred166_InternalEmfParsleyDsl
+ public final void synpred166_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18798:2: ( rule__Module__UnorderedGroup_4__4 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18798:2: rule__Module__UnorderedGroup_4__4
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__4_in_synpred166_InternalEmfParsleyDsl38057);
+ rule__Module__UnorderedGroup_4__4();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred166_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred167_InternalEmfParsleyDsl
+ public final void synpred167_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18811:2: ( rule__Module__UnorderedGroup_4__5 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18811:2: rule__Module__UnorderedGroup_4__5
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__5_in_synpred167_InternalEmfParsleyDsl38085);
+ rule__Module__UnorderedGroup_4__5();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred167_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred168_InternalEmfParsleyDsl
+ public final void synpred168_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18824:2: ( rule__Module__UnorderedGroup_4__6 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18824:2: rule__Module__UnorderedGroup_4__6
+ {
+ pushFollow(FOLLOW_rule__Module__UnorderedGroup_4__6_in_synpred168_InternalEmfParsleyDsl38113);
+ rule__Module__UnorderedGroup_4__6();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred168_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred169_InternalEmfParsleyDsl
+ public final void synpred169_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18863:2: ( rule__LabelProvider__UnorderedGroup_3__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18863:2: rule__LabelProvider__UnorderedGroup_3__0
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__UnorderedGroup_3__0_in_synpred169_InternalEmfParsleyDsl38176);
+ rule__LabelProvider__UnorderedGroup_3__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred169_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred170_InternalEmfParsleyDsl
+ public final void synpred170_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18881:4: ( ({...}? => ( ( ( rule__LabelProvider__Group_3_0__0 ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18881:4: ({...}? => ( ( ( rule__LabelProvider__Group_3_0__0 ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18881:4: ({...}? => ( ( ( rule__LabelProvider__Group_3_0__0 ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18882:5: {...}? => ( ( ( rule__LabelProvider__Group_3_0__0 ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ throw new FailedPredicateException(input, "synpred170_InternalEmfParsleyDsl", "getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 0)");
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18882:110: ( ( ( rule__LabelProvider__Group_3_0__0 ) ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18883:6: ( ( rule__LabelProvider__Group_3_0__0 ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 0);
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18889:6: ( ( rule__LabelProvider__Group_3_0__0 ) )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18891:7: ( rule__LabelProvider__Group_3_0__0 )
+ {
+ if ( state.backtracking==0 ) {
+ before(grammarAccess.getLabelProviderAccess().getGroup_3_0());
+ }
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18892:7: ( rule__LabelProvider__Group_3_0__0 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18892:8: rule__LabelProvider__Group_3_0__0
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__Group_3_0__0_in_synpred170_InternalEmfParsleyDsl38263);
+ rule__LabelProvider__Group_3_0__0();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred170_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred171_InternalEmfParsleyDsl
+ public final void synpred171_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18930:2: ( rule__LabelProvider__UnorderedGroup_3__1 )
+ // ../org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/contentassist/antlr/internal/InternalEmfParsleyDsl.g:18930:2: rule__LabelProvider__UnorderedGroup_3__1
+ {
+ pushFollow(FOLLOW_rule__LabelProvider__UnorderedGroup_3__1_in_synpred171_InternalEmfParsleyDsl38416);
+ rule__LabelProvider__UnorderedGroup_3__1();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred171_InternalEmfParsleyDsl
+
+ // Delegated rules
+
+ public final boolean synpred147_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred147_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred95_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred95_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred171_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred171_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred135_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred135_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred144_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred144_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred162_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred162_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred103_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred103_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred98_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred98_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred21_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred21_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred96_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred96_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred168_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred168_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred157_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred157_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred156_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred156_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred92_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred92_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred104_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred104_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred170_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred170_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred63_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred63_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred145_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred145_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred165_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred165_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred119_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred119_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred130_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred130_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred33_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred33_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred94_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred94_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred112_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred112_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred151_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred151_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred57_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred57_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred158_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred158_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred93_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred93_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred169_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred169_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred137_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred137_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred161_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred161_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred101_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred101_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred143_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred143_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred100_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred100_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred136_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred136_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred142_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred142_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred131_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred131_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred160_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred160_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred97_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred97_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred56_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred56_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred167_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred167_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred164_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred164_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred166_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred166_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred159_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred159_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred163_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred163_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred99_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred99_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+
+
+ protected DFA7 dfa7 = new DFA7(this);
+ protected DFA14 dfa14 = new DFA14(this);
+ protected DFA17 dfa17 = new DFA17(this);
+ protected DFA25 dfa25 = new DFA25(this);
+ protected DFA28 dfa28 = new DFA28(this);
+ protected DFA37 dfa37 = new DFA37(this);
+ protected DFA61 dfa61 = new DFA61(this);
+ protected DFA67 dfa67 = new DFA67(this);
+ protected DFA68 dfa68 = new DFA68(this);
+ protected DFA76 dfa76 = new DFA76(this);
+ protected DFA94 dfa94 = new DFA94(this);
+ protected DFA95 dfa95 = new DFA95(this);
+ protected DFA99 dfa99 = new DFA99(this);
+ protected DFA100 dfa100 = new DFA100(this);
+ protected DFA101 dfa101 = new DFA101(this);
+ protected DFA106 dfa106 = new DFA106(this);
+ protected DFA115 dfa115 = new DFA115(this);
+ static final String DFA7_eotS =
+ "\14\uffff";
+ static final String DFA7_eofS =
+ "\14\uffff";
+ static final String DFA7_minS =
+ "\1\30\2\uffff\1\30\10\uffff";
+ static final String DFA7_maxS =
+ "\1\40\2\uffff\1\34\10\uffff";
+ static final String DFA7_acceptS =
+ "\1\uffff\1\1\1\2\1\uffff\1\4\1\5\1\7\1\10\1\11\1\12\1\6\1\3";
+ static final String DFA7_specialS =
+ "\14\uffff}>";
+ static final String[] DFA7_transitionS = {
+ "\1\3\1\6\1\1\1\2\1\4\1\5\1\7\1\10\1\11",
+ "",
+ "",
+ "\1\12\3\uffff\1\13",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA7_eot = DFA.unpackEncodedString(DFA7_eotS);
+ static final short[] DFA7_eof = DFA.unpackEncodedString(DFA7_eofS);
+ static final char[] DFA7_min = DFA.unpackEncodedStringToUnsignedChars(DFA7_minS);
+ static final char[] DFA7_max = DFA.unpackEncodedStringToUnsignedChars(DFA7_maxS);
+ static final short[] DFA7_accept = DFA.unpackEncodedString(DFA7_acceptS);
+ static final short[] DFA7_special = DFA.unpackEncodedString(DFA7_specialS);
+ static final short[][] DFA7_transition;
+
+ static {
+ int numStates = DFA7_transitionS.length;
+ DFA7_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA7_transition[i] = DFA.unpackEncodedString(DFA7_transitionS[i]);
+ }
+ }
+
+ class DFA7 extends DFA {
+
+ public DFA7(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 7;
+ this.eot = DFA7_eot;
+ this.eof = DFA7_eof;
+ this.min = DFA7_min;
+ this.max = DFA7_max;
+ this.accept = DFA7_accept;
+ this.special = DFA7_special;
+ this.transition = DFA7_transition;
+ }
+ public String getDescription() {
+ return "2653:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) | ( '<=>' ) );";
+ }
+ }
+ static final String DFA14_eotS =
+ "\12\uffff";
+ static final String DFA14_eofS =
+ "\4\uffff\5\3\1\uffff";
+ static final String DFA14_minS =
+ "\1\50\2\4\1\uffff\5\4\1\uffff";
+ static final String DFA14_maxS =
+ "\1\141\2\55\1\uffff\5\144\1\uffff";
+ static final String DFA14_acceptS =
+ "\3\uffff\1\2\5\uffff\1\1";
+ static final String DFA14_specialS =
+ "\12\uffff}>";
+ static final String[] DFA14_transitionS = {
+ "\1\1\67\uffff\1\2\1\3",
+ "\1\4\24\uffff\1\3\20\uffff\1\5\1\6\1\7\1\10",
+ "\1\4\24\uffff\1\3\20\uffff\1\5\1\6\1\7\1\10",
+ "",
+ "\5\3\4\uffff\1\11\42\3\1\uffff\2\3\5\uffff\1\3\2\uffff\1\3"+
+ "\2\uffff\1\3\7\uffff\30\3\2\uffff\2\3\1\uffff\2\3",
+ "\5\3\4\uffff\1\11\42\3\1\uffff\2\3\5\uffff\1\3\2\uffff\1\3"+
+ "\2\uffff\1\3\7\uffff\30\3\2\uffff\2\3\1\uffff\2\3",
+ "\5\3\4\uffff\1\11\42\3\1\uffff\2\3\5\uffff\1\3\2\uffff\1\3"+
+ "\2\uffff\1\3\7\uffff\30\3\2\uffff\2\3\1\uffff\2\3",
+ "\5\3\4\uffff\1\11\42\3\1\uffff\2\3\5\uffff\1\3\2\uffff\1\3"+
+ "\2\uffff\1\3\7\uffff\30\3\2\uffff\2\3\1\uffff\2\3",
+ "\5\3\4\uffff\1\11\42\3\1\uffff\2\3\5\uffff\1\3\2\uffff\1\3"+
+ "\2\uffff\1\3\7\uffff\30\3\2\uffff\2\3\1\uffff\2\3",
+ ""
+ };
+
+ static final short[] DFA14_eot = DFA.unpackEncodedString(DFA14_eotS);
+ static final short[] DFA14_eof = DFA.unpackEncodedString(DFA14_eofS);
+ static final char[] DFA14_min = DFA.unpackEncodedStringToUnsignedChars(DFA14_minS);
+ static final char[] DFA14_max = DFA.unpackEncodedStringToUnsignedChars(DFA14_maxS);
+ static final short[] DFA14_accept = DFA.unpackEncodedString(DFA14_acceptS);
+ static final short[] DFA14_special = DFA.unpackEncodedString(DFA14_specialS);
+ static final short[][] DFA14_transition;
+
+ static {
+ int numStates = DFA14_transitionS.length;
+ DFA14_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA14_transition[i] = DFA.unpackEncodedString(DFA14_transitionS[i]);
+ }
+ }
+
+ class DFA14 extends DFA {
+
+ public DFA14(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 14;
+ this.eot = DFA14_eot;
+ this.eof = DFA14_eof;
+ this.min = DFA14_min;
+ this.max = DFA14_max;
+ this.accept = DFA14_accept;
+ this.special = DFA14_special;
+ this.transition = DFA14_transition;
+ }
+ public String getDescription() {
+ return "2909:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );";
+ }
+ }
+ static final String DFA17_eotS =
+ "\42\uffff";
+ static final String DFA17_eofS =
+ "\42\uffff";
+ static final String DFA17_minS =
+ "\1\4\2\0\37\uffff";
+ static final String DFA17_maxS =
+ "\1\144\2\0\37\uffff";
+ static final String DFA17_acceptS =
+ "\3\uffff\1\1\1\uffff\1\2\34\uffff";
+ static final String DFA17_specialS =
+ "\1\uffff\1\0\1\1\37\uffff}>";
+ static final String[] DFA17_transitionS = {
+ "\1\1\4\5\20\uffff\1\5\3\uffff\1\3\3\uffff\2\5\4\uffff\1\5\2"+
+ "\uffff\6\5\1\uffff\1\5\27\uffff\2\5\2\uffff\1\2\1\5\1\uffff"+
+ "\1\5\2\uffff\11\5\6\uffff\1\3\1\uffff\1\5",
+ "\1\uffff",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA17_eot = DFA.unpackEncodedString(DFA17_eotS);
+ static final short[] DFA17_eof = DFA.unpackEncodedString(DFA17_eofS);
+ static final char[] DFA17_min = DFA.unpackEncodedStringToUnsignedChars(DFA17_minS);
+ static final char[] DFA17_max = DFA.unpackEncodedStringToUnsignedChars(DFA17_maxS);
+ static final short[] DFA17_accept = DFA.unpackEncodedString(DFA17_acceptS);
+ static final short[] DFA17_special = DFA.unpackEncodedString(DFA17_specialS);
+ static final short[][] DFA17_transition;
+
+ static {
+ int numStates = DFA17_transitionS.length;
+ DFA17_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA17_transition[i] = DFA.unpackEncodedString(DFA17_transitionS[i]);
+ }
+ }
+
+ class DFA17 extends DFA {
+
+ public DFA17(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 17;
+ this.eot = DFA17_eot;
+ this.eof = DFA17_eof;
+ this.min = DFA17_min;
+ this.max = DFA17_max;
+ this.accept = DFA17_accept;
+ this.special = DFA17_special;
+ this.transition = DFA17_transition;
+ }
+ public String getDescription() {
+ return "2985:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA17_1 = input.LA(1);
+
+
+ int index17_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 3;}
+
+ else if ( (true) ) {s = 5;}
+
+
+ input.seek(index17_1);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA17_2 = input.LA(1);
+
+
+ int index17_2 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 3;}
+
+ else if ( (true) ) {s = 5;}
+
+
+ input.seek(index17_2);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 17, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA25_eotS =
+ "\42\uffff";
+ static final String DFA25_eofS =
+ "\42\uffff";
+ static final String DFA25_minS =
+ "\1\4\2\0\37\uffff";
+ static final String DFA25_maxS =
+ "\1\144\2\0\37\uffff";
+ static final String DFA25_acceptS =
+ "\3\uffff\1\1\1\uffff\1\2\34\uffff";
+ static final String DFA25_specialS =
+ "\1\uffff\1\0\1\1\37\uffff}>";
+ static final String[] DFA25_transitionS = {
+ "\1\1\4\5\20\uffff\1\5\3\uffff\1\3\3\uffff\2\5\4\uffff\1\5\2"+
+ "\uffff\6\5\1\uffff\1\5\27\uffff\2\5\2\uffff\1\2\1\5\1\uffff"+
+ "\1\5\2\uffff\11\5\6\uffff\1\3\1\uffff\1\5",
+ "\1\uffff",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA25_eot = DFA.unpackEncodedString(DFA25_eotS);
+ static final short[] DFA25_eof = DFA.unpackEncodedString(DFA25_eofS);
+ static final char[] DFA25_min = DFA.unpackEncodedStringToUnsignedChars(DFA25_minS);
+ static final char[] DFA25_max = DFA.unpackEncodedStringToUnsignedChars(DFA25_maxS);
+ static final short[] DFA25_accept = DFA.unpackEncodedString(DFA25_acceptS);
+ static final short[] DFA25_special = DFA.unpackEncodedString(DFA25_specialS);
+ static final short[][] DFA25_transition;
+
+ static {
+ int numStates = DFA25_transitionS.length;
+ DFA25_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA25_transition[i] = DFA.unpackEncodedString(DFA25_transitionS[i]);
+ }
+ }
+
+ class DFA25 extends DFA {
+
+ public DFA25(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 25;
+ this.eot = DFA25_eot;
+ this.eof = DFA25_eof;
+ this.min = DFA25_min;
+ this.max = DFA25_max;
+ this.accept = DFA25_accept;
+ this.special = DFA25_special;
+ this.transition = DFA25_transition;
+ }
+ public String getDescription() {
+ return "3259:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA25_1 = input.LA(1);
+
+
+ int index25_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred57_InternalEmfParsleyDsl()) ) {s = 3;}
+
+ else if ( (true) ) {s = 5;}
+
+
+ input.seek(index25_1);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA25_2 = input.LA(1);
+
+
+ int index25_2 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred57_InternalEmfParsleyDsl()) ) {s = 3;}
+
+ else if ( (true) ) {s = 5;}
+
+
+ input.seek(index25_2);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 25, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA28_eotS =
+ "\42\uffff";
+ static final String DFA28_eofS =
+ "\42\uffff";
+ static final String DFA28_minS =
+ "\1\4\2\0\37\uffff";
+ static final String DFA28_maxS =
+ "\1\144\2\0\37\uffff";
+ static final String DFA28_acceptS =
+ "\3\uffff\1\1\1\uffff\1\2\34\uffff";
+ static final String DFA28_specialS =
+ "\1\uffff\1\0\1\1\37\uffff}>";
+ static final String[] DFA28_transitionS = {
+ "\1\1\4\5\20\uffff\1\5\3\uffff\1\3\3\uffff\2\5\4\uffff\1\5\2"+
+ "\uffff\6\5\1\uffff\1\5\27\uffff\2\5\2\uffff\1\2\1\5\1\uffff"+
+ "\1\5\2\uffff\11\5\6\uffff\1\3\1\uffff\1\5",
+ "\1\uffff",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA28_eot = DFA.unpackEncodedString(DFA28_eotS);
+ static final short[] DFA28_eof = DFA.unpackEncodedString(DFA28_eofS);
+ static final char[] DFA28_min = DFA.unpackEncodedStringToUnsignedChars(DFA28_minS);
+ static final char[] DFA28_max = DFA.unpackEncodedStringToUnsignedChars(DFA28_maxS);
+ static final short[] DFA28_accept = DFA.unpackEncodedString(DFA28_acceptS);
+ static final short[] DFA28_special = DFA.unpackEncodedString(DFA28_specialS);
+ static final short[][] DFA28_transition;
+
+ static {
+ int numStates = DFA28_transitionS.length;
+ DFA28_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA28_transition[i] = DFA.unpackEncodedString(DFA28_transitionS[i]);
+ }
+ }
+
+ class DFA28 extends DFA {
+
+ public DFA28(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 28;
+ this.eot = DFA28_eot;
+ this.eof = DFA28_eof;
+ this.min = DFA28_min;
+ this.max = DFA28_max;
+ this.accept = DFA28_accept;
+ this.special = DFA28_special;
+ this.transition = DFA28_transition;
+ }
+ public String getDescription() {
+ return "3353:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA28_1 = input.LA(1);
+
+
+ int index28_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred63_InternalEmfParsleyDsl()) ) {s = 3;}
+
+ else if ( (true) ) {s = 5;}
+
+
+ input.seek(index28_1);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA28_2 = input.LA(1);
+
+
+ int index28_2 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred63_InternalEmfParsleyDsl()) ) {s = 3;}
+
+ else if ( (true) ) {s = 5;}
+
+
+ input.seek(index28_2);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 28, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA37_eotS =
+ "\7\uffff";
+ static final String DFA37_eofS =
+ "\2\uffff\1\4\3\uffff\1\4";
+ static final String DFA37_minS =
+ "\1\4\1\uffff\1\50\1\4\2\uffff\1\50";
+ static final String DFA37_maxS =
+ "\1\53\1\uffff\1\114\1\43\2\uffff\1\114";
+ static final String DFA37_acceptS =
+ "\1\uffff\1\1\2\uffff\1\2\1\3\1\uffff";
+ static final String DFA37_specialS =
+ "\7\uffff}>";
+ static final String[] DFA37_transitionS = {
+ "\1\2\46\uffff\1\1",
+ "",
+ "\1\3\3\uffff\1\4\3\uffff\1\4\33\uffff\1\4",
+ "\1\6\36\uffff\1\5",
+ "",
+ "",
+ "\1\3\3\uffff\1\4\3\uffff\1\4\33\uffff\1\4"
+ };
+
+ static final short[] DFA37_eot = DFA.unpackEncodedString(DFA37_eotS);
+ static final short[] DFA37_eof = DFA.unpackEncodedString(DFA37_eofS);
+ static final char[] DFA37_min = DFA.unpackEncodedStringToUnsignedChars(DFA37_minS);
+ static final char[] DFA37_max = DFA.unpackEncodedStringToUnsignedChars(DFA37_maxS);
+ static final short[] DFA37_accept = DFA.unpackEncodedString(DFA37_acceptS);
+ static final short[] DFA37_special = DFA.unpackEncodedString(DFA37_specialS);
+ static final short[][] DFA37_transition;
+
+ static {
+ int numStates = DFA37_transitionS.length;
+ DFA37_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA37_transition[i] = DFA.unpackEncodedString(DFA37_transitionS[i]);
+ }
+ }
+
+ class DFA37 extends DFA {
+
+ public DFA37(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 37;
+ this.eot = DFA37_eot;
+ this.eof = DFA37_eof;
+ this.min = DFA37_min;
+ this.max = DFA37_max;
+ this.accept = DFA37_accept;
+ this.special = DFA37_special;
+ this.transition = DFA37_transition;
+ }
+ public String getDescription() {
+ return "3554:1: rule__XImportDeclaration__Alternatives_1 : ( ( ( rule__XImportDeclaration__Group_1_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 ) ) );";
+ }
+ }
+ static final String DFA61_eotS =
+ "\14\uffff";
+ static final String DFA61_eofS =
+ "\1\1\13\uffff";
+ static final String DFA61_minS =
+ "\1\4\1\uffff\11\0\1\uffff";
+ static final String DFA61_maxS =
+ "\1\144\1\uffff\11\0\1\uffff";
+ static final String DFA61_acceptS =
+ "\1\uffff\1\2\11\uffff\1\1";
+ static final String DFA61_specialS =
+ "\2\uffff\1\2\1\6\1\5\1\10\1\1\1\7\1\3\1\4\1\0\1\uffff}>";
+ static final String[] DFA61_transitionS = {
+ "\5\1\5\uffff\12\1\1\2\1\3\1\5\1\6\1\7\1\4\1\10\1\11\1\12\17"+
+ "\1\1\uffff\2\1\5\uffff\1\1\2\uffff\1\1\2\uffff\1\1\7\uffff\30"+
+ "\1\2\uffff\2\1\1\uffff\2\1",
+ "",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ ""
+ };
+
+ static final short[] DFA61_eot = DFA.unpackEncodedString(DFA61_eotS);
+ static final short[] DFA61_eof = DFA.unpackEncodedString(DFA61_eofS);
+ static final char[] DFA61_min = DFA.unpackEncodedStringToUnsignedChars(DFA61_minS);
+ static final char[] DFA61_max = DFA.unpackEncodedStringToUnsignedChars(DFA61_maxS);
+ static final short[] DFA61_accept = DFA.unpackEncodedString(DFA61_acceptS);
+ static final short[] DFA61_special = DFA.unpackEncodedString(DFA61_specialS);
+ static final short[][] DFA61_transition;
+
+ static {
+ int numStates = DFA61_transitionS.length;
+ DFA61_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA61_transition[i] = DFA.unpackEncodedString(DFA61_transitionS[i]);
+ }
+ }
+
+ class DFA61 extends DFA {
+
+ public DFA61(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 61;
+ this.eot = DFA61_eot;
+ this.eof = DFA61_eof;
+ this.min = DFA61_min;
+ this.max = DFA61_max;
+ this.accept = DFA61_accept;
+ this.special = DFA61_special;
+ this.transition = DFA61_transition;
+ }
+ public String getDescription() {
+ return "()* loopback of 8442:1: ( rule__XOtherOperatorExpression__Group_1__0 )*";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA61_10 = input.LA(1);
+
+
+ int index61_10 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred97_InternalEmfParsleyDsl()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index61_10);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA61_6 = input.LA(1);
+
+
+ int index61_6 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred97_InternalEmfParsleyDsl()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index61_6);
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA61_2 = input.LA(1);
+
+
+ int index61_2 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred97_InternalEmfParsleyDsl()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index61_2);
+ if ( s>=0 ) return s;
+ break;
+ case 3 :
+ int LA61_8 = input.LA(1);
+
+
+ int index61_8 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred97_InternalEmfParsleyDsl()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index61_8);
+ if ( s>=0 ) return s;
+ break;
+ case 4 :
+ int LA61_9 = input.LA(1);
+
+
+ int index61_9 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred97_InternalEmfParsleyDsl()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index61_9);
+ if ( s>=0 ) return s;
+ break;
+ case 5 :
+ int LA61_4 = input.LA(1);
+
+
+ int index61_4 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred97_InternalEmfParsleyDsl()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index61_4);
+ if ( s>=0 ) return s;
+ break;
+ case 6 :
+ int LA61_3 = input.LA(1);
+
+
+ int index61_3 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred97_InternalEmfParsleyDsl()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index61_3);
+ if ( s>=0 ) return s;
+ break;
+ case 7 :
+ int LA61_7 = input.LA(1);
+
+
+ int index61_7 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred97_InternalEmfParsleyDsl()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index61_7);
+ if ( s>=0 ) return s;
+ break;
+ case 8 :
+ int LA61_5 = input.LA(1);
+
+
+ int index61_5 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred97_InternalEmfParsleyDsl()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index61_5);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 61, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA67_eotS =
+ "\113\uffff";
+ static final String DFA67_eofS =
+ "\1\2\112\uffff";
+ static final String DFA67_minS =
+ "\1\4\1\0\111\uffff";
+ static final String DFA67_maxS =
+ "\1\144\1\0\111\uffff";
+ static final String DFA67_acceptS =
+ "\2\uffff\1\2\107\uffff\1\1";
+ static final String DFA67_specialS =
+ "\1\uffff\1\0\111\uffff}>";
+ static final String[] DFA67_transitionS = {
+ "\5\2\5\uffff\42\2\1\uffff\2\2\5\uffff\1\2\2\uffff\1\2\2\uffff"+
+ "\1\2\7\uffff\7\2\1\1\20\2\2\uffff\2\2\1\uffff\2\2",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA67_eot = DFA.unpackEncodedString(DFA67_eotS);
+ static final short[] DFA67_eof = DFA.unpackEncodedString(DFA67_eofS);
+ static final char[] DFA67_min = DFA.unpackEncodedStringToUnsignedChars(DFA67_minS);
+ static final char[] DFA67_max = DFA.unpackEncodedStringToUnsignedChars(DFA67_maxS);
+ static final short[] DFA67_accept = DFA.unpackEncodedString(DFA67_acceptS);
+ static final short[] DFA67_special = DFA.unpackEncodedString(DFA67_specialS);
+ static final short[][] DFA67_transition;
+
+ static {
+ int numStates = DFA67_transitionS.length;
+ DFA67_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA67_transition[i] = DFA.unpackEncodedString(DFA67_transitionS[i]);
+ }
+ }
+
+ class DFA67 extends DFA {
+
+ public DFA67(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 67;
+ this.eot = DFA67_eot;
+ this.eof = DFA67_eof;
+ this.min = DFA67_min;
+ this.max = DFA67_max;
+ this.accept = DFA67_accept;
+ this.special = DFA67_special;
+ this.transition = DFA67_transition;
+ }
+ public String getDescription() {
+ return "10115:1: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA67_1 = input.LA(1);
+
+
+ int index67_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred103_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index67_1);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 67, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA68_eotS =
+ "\113\uffff";
+ static final String DFA68_eofS =
+ "\1\2\112\uffff";
+ static final String DFA68_minS =
+ "\1\4\1\0\111\uffff";
+ static final String DFA68_maxS =
+ "\1\144\1\0\111\uffff";
+ static final String DFA68_acceptS =
+ "\2\uffff\1\2\107\uffff\1\1";
+ static final String DFA68_specialS =
+ "\1\uffff\1\0\111\uffff}>";
+ static final String[] DFA68_transitionS = {
+ "\5\2\5\uffff\42\2\1\uffff\2\2\5\uffff\1\2\2\uffff\1\2\2\uffff"+
+ "\1\2\7\uffff\4\2\1\1\23\2\2\uffff\2\2\1\uffff\2\2",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA68_eot = DFA.unpackEncodedString(DFA68_eotS);
+ static final short[] DFA68_eof = DFA.unpackEncodedString(DFA68_eofS);
+ static final char[] DFA68_min = DFA.unpackEncodedStringToUnsignedChars(DFA68_minS);
+ static final char[] DFA68_max = DFA.unpackEncodedStringToUnsignedChars(DFA68_maxS);
+ static final short[] DFA68_accept = DFA.unpackEncodedString(DFA68_acceptS);
+ static final short[] DFA68_special = DFA.unpackEncodedString(DFA68_specialS);
+ static final short[][] DFA68_transition;
+
+ static {
+ int numStates = DFA68_transitionS.length;
+ DFA68_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA68_transition[i] = DFA.unpackEncodedString(DFA68_transitionS[i]);
+ }
+ }
+
+ class DFA68 extends DFA {
+
+ public DFA68(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 68;
+ this.eot = DFA68_eot;
+ this.eof = DFA68_eof;
+ this.min = DFA68_min;
+ this.max = DFA68_max;
+ this.accept = DFA68_accept;
+ this.special = DFA68_special;
+ this.transition = DFA68_transition;
+ }
+ public String getDescription() {
+ return "10143:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA68_1 = input.LA(1);
+
+
+ int index68_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred104_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index68_1);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 68, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA76_eotS =
+ "\45\uffff";
+ static final String DFA76_eofS =
+ "\45\uffff";
+ static final String DFA76_minS =
+ "\1\4\2\0\42\uffff";
+ static final String DFA76_maxS =
+ "\1\144\2\0\42\uffff";
+ static final String DFA76_acceptS =
+ "\3\uffff\1\1\1\uffff\1\2\37\uffff";
+ static final String DFA76_specialS =
+ "\1\uffff\1\0\1\1\42\uffff}>";
+ static final String[] DFA76_transitionS = {
+ "\1\1\4\5\20\uffff\1\5\3\uffff\1\3\3\uffff\2\5\4\uffff\1\5\1"+
+ "\uffff\7\5\1\uffff\1\5\27\uffff\3\5\1\uffff\1\2\1\5\1\uffff"+
+ "\1\5\2\uffff\11\5\6\uffff\1\3\2\5",
+ "\1\uffff",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA76_eot = DFA.unpackEncodedString(DFA76_eotS);
+ static final short[] DFA76_eof = DFA.unpackEncodedString(DFA76_eofS);
+ static final char[] DFA76_min = DFA.unpackEncodedStringToUnsignedChars(DFA76_minS);
+ static final char[] DFA76_max = DFA.unpackEncodedStringToUnsignedChars(DFA76_maxS);
+ static final short[] DFA76_accept = DFA.unpackEncodedString(DFA76_acceptS);
+ static final short[] DFA76_special = DFA.unpackEncodedString(DFA76_specialS);
+ static final short[][] DFA76_transition;
+
+ static {
+ int numStates = DFA76_transitionS.length;
+ DFA76_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA76_transition[i] = DFA.unpackEncodedString(DFA76_transitionS[i]);
+ }
+ }
+
+ class DFA76 extends DFA {
+
+ public DFA76(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 76;
+ this.eot = DFA76_eot;
+ this.eof = DFA76_eof;
+ this.min = DFA76_min;
+ this.max = DFA76_max;
+ this.accept = DFA76_accept;
+ this.special = DFA76_special;
+ this.transition = DFA76_transition;
+ }
+ public String getDescription() {
+ return "11284:1: ( rule__XClosure__Group_1__0 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA76_1 = input.LA(1);
+
+
+ int index76_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred112_InternalEmfParsleyDsl()) ) {s = 3;}
+
+ else if ( (true) ) {s = 5;}
+
+
+ input.seek(index76_1);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA76_2 = input.LA(1);
+
+
+ int index76_2 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred112_InternalEmfParsleyDsl()) ) {s = 3;}
+
+ else if ( (true) ) {s = 5;}
+
+
+ input.seek(index76_2);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 76, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA94_eotS =
+ "\113\uffff";
+ static final String DFA94_eofS =
+ "\1\2\112\uffff";
+ static final String DFA94_minS =
+ "\1\4\1\0\111\uffff";
+ static final String DFA94_maxS =
+ "\1\144\1\0\111\uffff";
+ static final String DFA94_acceptS =
+ "\2\uffff\1\2\107\uffff\1\1";
+ static final String DFA94_specialS =
+ "\1\uffff\1\0\111\uffff}>";
+ static final String[] DFA94_transitionS = {
+ "\5\2\5\uffff\42\2\1\uffff\2\2\5\uffff\1\2\2\uffff\1\2\2\uffff"+
+ "\1\2\7\uffff\7\2\1\1\20\2\2\uffff\2\2\1\uffff\2\2",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA94_eot = DFA.unpackEncodedString(DFA94_eotS);
+ static final short[] DFA94_eof = DFA.unpackEncodedString(DFA94_eofS);
+ static final char[] DFA94_min = DFA.unpackEncodedStringToUnsignedChars(DFA94_minS);
+ static final char[] DFA94_max = DFA.unpackEncodedStringToUnsignedChars(DFA94_maxS);
+ static final short[] DFA94_accept = DFA.unpackEncodedString(DFA94_acceptS);
+ static final short[] DFA94_special = DFA.unpackEncodedString(DFA94_specialS);
+ static final short[][] DFA94_transition;
+
+ static {
+ int numStates = DFA94_transitionS.length;
+ DFA94_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA94_transition[i] = DFA.unpackEncodedString(DFA94_transitionS[i]);
+ }
+ }
+
+ class DFA94 extends DFA {
+
+ public DFA94(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 94;
+ this.eot = DFA94_eot;
+ this.eof = DFA94_eof;
+ this.min = DFA94_min;
+ this.max = DFA94_max;
+ this.accept = DFA94_accept;
+ this.special = DFA94_special;
+ this.transition = DFA94_transition;
+ }
+ public String getDescription() {
+ return "14755:1: ( rule__XFeatureCall__Group_3__0 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA94_1 = input.LA(1);
+
+
+ int index94_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred130_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index94_1);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 94, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA95_eotS =
+ "\113\uffff";
+ static final String DFA95_eofS =
+ "\1\2\112\uffff";
+ static final String DFA95_minS =
+ "\1\4\1\0\111\uffff";
+ static final String DFA95_maxS =
+ "\1\144\1\0\111\uffff";
+ static final String DFA95_acceptS =
+ "\2\uffff\1\2\107\uffff\1\1";
+ static final String DFA95_specialS =
+ "\1\uffff\1\0\111\uffff}>";
+ static final String[] DFA95_transitionS = {
+ "\5\2\5\uffff\42\2\1\uffff\2\2\5\uffff\1\2\2\uffff\1\2\2\uffff"+
+ "\1\2\7\uffff\4\2\1\1\23\2\2\uffff\2\2\1\uffff\2\2",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA95_eot = DFA.unpackEncodedString(DFA95_eotS);
+ static final short[] DFA95_eof = DFA.unpackEncodedString(DFA95_eofS);
+ static final char[] DFA95_min = DFA.unpackEncodedStringToUnsignedChars(DFA95_minS);
+ static final char[] DFA95_max = DFA.unpackEncodedStringToUnsignedChars(DFA95_maxS);
+ static final short[] DFA95_accept = DFA.unpackEncodedString(DFA95_acceptS);
+ static final short[] DFA95_special = DFA.unpackEncodedString(DFA95_specialS);
+ static final short[][] DFA95_transition;
+
+ static {
+ int numStates = DFA95_transitionS.length;
+ DFA95_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA95_transition[i] = DFA.unpackEncodedString(DFA95_transitionS[i]);
+ }
+ }
+
+ class DFA95 extends DFA {
+
+ public DFA95(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 95;
+ this.eot = DFA95_eot;
+ this.eof = DFA95_eof;
+ this.min = DFA95_min;
+ this.max = DFA95_max;
+ this.accept = DFA95_accept;
+ this.special = DFA95_special;
+ this.transition = DFA95_transition;
+ }
+ public String getDescription() {
+ return "14783:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA95_1 = input.LA(1);
+
+
+ int index95_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred131_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index95_1);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 95, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA99_eotS =
+ "\113\uffff";
+ static final String DFA99_eofS =
+ "\1\2\112\uffff";
+ static final String DFA99_minS =
+ "\1\4\1\0\111\uffff";
+ static final String DFA99_maxS =
+ "\1\144\1\0\111\uffff";
+ static final String DFA99_acceptS =
+ "\2\uffff\1\2\107\uffff\1\1";
+ static final String DFA99_specialS =
+ "\1\uffff\1\0\111\uffff}>";
+ static final String[] DFA99_transitionS = {
+ "\5\2\5\uffff\13\2\1\1\26\2\1\uffff\2\2\5\uffff\1\2\2\uffff\1"+
+ "\2\2\uffff\1\2\7\uffff\30\2\2\uffff\2\2\1\uffff\2\2",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA99_eot = DFA.unpackEncodedString(DFA99_eotS);
+ static final short[] DFA99_eof = DFA.unpackEncodedString(DFA99_eofS);
+ static final char[] DFA99_min = DFA.unpackEncodedStringToUnsignedChars(DFA99_minS);
+ static final char[] DFA99_max = DFA.unpackEncodedStringToUnsignedChars(DFA99_maxS);
+ static final short[] DFA99_accept = DFA.unpackEncodedString(DFA99_acceptS);
+ static final short[] DFA99_special = DFA.unpackEncodedString(DFA99_specialS);
+ static final short[][] DFA99_transition;
+
+ static {
+ int numStates = DFA99_transitionS.length;
+ DFA99_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA99_transition[i] = DFA.unpackEncodedString(DFA99_transitionS[i]);
+ }
+ }
+
+ class DFA99 extends DFA {
+
+ public DFA99(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 99;
+ this.eot = DFA99_eot;
+ this.eof = DFA99_eof;
+ this.min = DFA99_min;
+ this.max = DFA99_max;
+ this.accept = DFA99_accept;
+ this.special = DFA99_special;
+ this.transition = DFA99_transition;
+ }
+ public String getDescription() {
+ return "15321:1: ( rule__XConstructorCall__Group_3__0 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA99_1 = input.LA(1);
+
+
+ int index99_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred135_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index99_1);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 99, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA100_eotS =
+ "\113\uffff";
+ static final String DFA100_eofS =
+ "\1\2\112\uffff";
+ static final String DFA100_minS =
+ "\1\4\1\0\111\uffff";
+ static final String DFA100_maxS =
+ "\1\144\1\0\111\uffff";
+ static final String DFA100_acceptS =
+ "\2\uffff\1\2\107\uffff\1\1";
+ static final String DFA100_specialS =
+ "\1\uffff\1\0\111\uffff}>";
+ static final String[] DFA100_transitionS = {
+ "\5\2\5\uffff\42\2\1\uffff\2\2\5\uffff\1\2\2\uffff\1\2\2\uffff"+
+ "\1\2\7\uffff\7\2\1\1\20\2\2\uffff\2\2\1\uffff\2\2",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA100_eot = DFA.unpackEncodedString(DFA100_eotS);
+ static final short[] DFA100_eof = DFA.unpackEncodedString(DFA100_eofS);
+ static final char[] DFA100_min = DFA.unpackEncodedStringToUnsignedChars(DFA100_minS);
+ static final char[] DFA100_max = DFA.unpackEncodedStringToUnsignedChars(DFA100_maxS);
+ static final short[] DFA100_accept = DFA.unpackEncodedString(DFA100_acceptS);
+ static final short[] DFA100_special = DFA.unpackEncodedString(DFA100_specialS);
+ static final short[][] DFA100_transition;
+
+ static {
+ int numStates = DFA100_transitionS.length;
+ DFA100_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA100_transition[i] = DFA.unpackEncodedString(DFA100_transitionS[i]);
+ }
+ }
+
+ class DFA100 extends DFA {
+
+ public DFA100(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 100;
+ this.eot = DFA100_eot;
+ this.eof = DFA100_eof;
+ this.min = DFA100_min;
+ this.max = DFA100_max;
+ this.accept = DFA100_accept;
+ this.special = DFA100_special;
+ this.transition = DFA100_transition;
+ }
+ public String getDescription() {
+ return "15350:1: ( rule__XConstructorCall__Group_4__0 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA100_1 = input.LA(1);
+
+
+ int index100_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred136_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index100_1);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 100, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA101_eotS =
+ "\113\uffff";
+ static final String DFA101_eofS =
+ "\1\2\112\uffff";
+ static final String DFA101_minS =
+ "\1\4\1\0\111\uffff";
+ static final String DFA101_maxS =
+ "\1\144\1\0\111\uffff";
+ static final String DFA101_acceptS =
+ "\2\uffff\1\2\107\uffff\1\1";
+ static final String DFA101_specialS =
+ "\1\uffff\1\0\111\uffff}>";
+ static final String[] DFA101_transitionS = {
+ "\5\2\5\uffff\42\2\1\uffff\2\2\5\uffff\1\2\2\uffff\1\2\2\uffff"+
+ "\1\2\7\uffff\4\2\1\1\23\2\2\uffff\2\2\1\uffff\2\2",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA101_eot = DFA.unpackEncodedString(DFA101_eotS);
+ static final short[] DFA101_eof = DFA.unpackEncodedString(DFA101_eofS);
+ static final char[] DFA101_min = DFA.unpackEncodedStringToUnsignedChars(DFA101_minS);
+ static final char[] DFA101_max = DFA.unpackEncodedStringToUnsignedChars(DFA101_maxS);
+ static final short[] DFA101_accept = DFA.unpackEncodedString(DFA101_acceptS);
+ static final short[] DFA101_special = DFA.unpackEncodedString(DFA101_specialS);
+ static final short[][] DFA101_transition;
+
+ static {
+ int numStates = DFA101_transitionS.length;
+ DFA101_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA101_transition[i] = DFA.unpackEncodedString(DFA101_transitionS[i]);
+ }
+ }
+
+ class DFA101 extends DFA {
+
+ public DFA101(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 101;
+ this.eot = DFA101_eot;
+ this.eof = DFA101_eof;
+ this.min = DFA101_min;
+ this.max = DFA101_max;
+ this.accept = DFA101_accept;
+ this.special = DFA101_special;
+ this.transition = DFA101_transition;
+ }
+ public String getDescription() {
+ return "15378:1: ( rule__XConstructorCall__ArgumentsAssignment_5 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA101_1 = input.LA(1);
+
+
+ int index101_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred137_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index101_1);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 101, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA106_eotS =
+ "\113\uffff";
+ static final String DFA106_eofS =
+ "\1\40\112\uffff";
+ static final String DFA106_minS =
+ "\1\4\37\0\53\uffff";
+ static final String DFA106_maxS =
+ "\1\144\37\0\53\uffff";
+ static final String DFA106_acceptS =
+ "\40\uffff\1\2\51\uffff\1\1";
+ static final String DFA106_specialS =
+ "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+
+ "\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31"+
+ "\1\32\1\33\1\34\1\35\1\36\53\uffff}>";
+ static final String[] DFA106_transitionS = {
+ "\1\1\1\22\1\23\1\24\1\26\5\uffff\13\40\1\14\7\40\1\10\1\7\4"+
+ "\40\1\6\2\40\1\2\1\3\1\4\1\5\1\15\1\20\1\uffff\1\12\1\40\5\uffff"+
+ "\1\40\2\uffff\1\40\2\uffff\1\40\7\uffff\3\40\1\16\1\17\2\40"+
+ "\1\37\1\30\1\40\1\13\2\40\1\31\1\32\1\33\1\11\1\25\1\27\1\34"+
+ "\1\35\1\36\2\40\2\uffff\2\40\1\uffff\1\40\1\21",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA106_eot = DFA.unpackEncodedString(DFA106_eotS);
+ static final short[] DFA106_eof = DFA.unpackEncodedString(DFA106_eofS);
+ static final char[] DFA106_min = DFA.unpackEncodedStringToUnsignedChars(DFA106_minS);
+ static final char[] DFA106_max = DFA.unpackEncodedStringToUnsignedChars(DFA106_maxS);
+ static final short[] DFA106_accept = DFA.unpackEncodedString(DFA106_acceptS);
+ static final short[] DFA106_special = DFA.unpackEncodedString(DFA106_specialS);
+ static final short[][] DFA106_transition;
+
+ static {
+ int numStates = DFA106_transitionS.length;
+ DFA106_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA106_transition[i] = DFA.unpackEncodedString(DFA106_transitionS[i]);
+ }
+ }
+
+ class DFA106 extends DFA {
+
+ public DFA106(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 106;
+ this.eot = DFA106_eot;
+ this.eof = DFA106_eof;
+ this.min = DFA106_min;
+ this.max = DFA106_max;
+ this.accept = DFA106_accept;
+ this.special = DFA106_special;
+ this.transition = DFA106_transition;
+ }
+ public String getDescription() {
+ return "16433:1: ( rule__XReturnExpression__ExpressionAssignment_2 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA106_1 = input.LA(1);
+
+
+ int index106_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_1);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA106_2 = input.LA(1);
+
+
+ int index106_2 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_2);
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA106_3 = input.LA(1);
+
+
+ int index106_3 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_3);
+ if ( s>=0 ) return s;
+ break;
+ case 3 :
+ int LA106_4 = input.LA(1);
+
+
+ int index106_4 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_4);
+ if ( s>=0 ) return s;
+ break;
+ case 4 :
+ int LA106_5 = input.LA(1);
+
+
+ int index106_5 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_5);
+ if ( s>=0 ) return s;
+ break;
+ case 5 :
+ int LA106_6 = input.LA(1);
+
+
+ int index106_6 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_6);
+ if ( s>=0 ) return s;
+ break;
+ case 6 :
+ int LA106_7 = input.LA(1);
+
+
+ int index106_7 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_7);
+ if ( s>=0 ) return s;
+ break;
+ case 7 :
+ int LA106_8 = input.LA(1);
+
+
+ int index106_8 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_8);
+ if ( s>=0 ) return s;
+ break;
+ case 8 :
+ int LA106_9 = input.LA(1);
+
+
+ int index106_9 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_9);
+ if ( s>=0 ) return s;
+ break;
+ case 9 :
+ int LA106_10 = input.LA(1);
+
+
+ int index106_10 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_10);
+ if ( s>=0 ) return s;
+ break;
+ case 10 :
+ int LA106_11 = input.LA(1);
+
+
+ int index106_11 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_11);
+ if ( s>=0 ) return s;
+ break;
+ case 11 :
+ int LA106_12 = input.LA(1);
+
+
+ int index106_12 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_12);
+ if ( s>=0 ) return s;
+ break;
+ case 12 :
+ int LA106_13 = input.LA(1);
+
+
+ int index106_13 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_13);
+ if ( s>=0 ) return s;
+ break;
+ case 13 :
+ int LA106_14 = input.LA(1);
+
+
+ int index106_14 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_14);
+ if ( s>=0 ) return s;
+ break;
+ case 14 :
+ int LA106_15 = input.LA(1);
+
+
+ int index106_15 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_15);
+ if ( s>=0 ) return s;
+ break;
+ case 15 :
+ int LA106_16 = input.LA(1);
+
+
+ int index106_16 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_16);
+ if ( s>=0 ) return s;
+ break;
+ case 16 :
+ int LA106_17 = input.LA(1);
+
+
+ int index106_17 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_17);
+ if ( s>=0 ) return s;
+ break;
+ case 17 :
+ int LA106_18 = input.LA(1);
+
+
+ int index106_18 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_18);
+ if ( s>=0 ) return s;
+ break;
+ case 18 :
+ int LA106_19 = input.LA(1);
+
+
+ int index106_19 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_19);
+ if ( s>=0 ) return s;
+ break;
+ case 19 :
+ int LA106_20 = input.LA(1);
+
+
+ int index106_20 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_20);
+ if ( s>=0 ) return s;
+ break;
+ case 20 :
+ int LA106_21 = input.LA(1);
+
+
+ int index106_21 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_21);
+ if ( s>=0 ) return s;
+ break;
+ case 21 :
+ int LA106_22 = input.LA(1);
+
+
+ int index106_22 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_22);
+ if ( s>=0 ) return s;
+ break;
+ case 22 :
+ int LA106_23 = input.LA(1);
+
+
+ int index106_23 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_23);
+ if ( s>=0 ) return s;
+ break;
+ case 23 :
+ int LA106_24 = input.LA(1);
+
+
+ int index106_24 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_24);
+ if ( s>=0 ) return s;
+ break;
+ case 24 :
+ int LA106_25 = input.LA(1);
+
+
+ int index106_25 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_25);
+ if ( s>=0 ) return s;
+ break;
+ case 25 :
+ int LA106_26 = input.LA(1);
+
+
+ int index106_26 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_26);
+ if ( s>=0 ) return s;
+ break;
+ case 26 :
+ int LA106_27 = input.LA(1);
+
+
+ int index106_27 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_27);
+ if ( s>=0 ) return s;
+ break;
+ case 27 :
+ int LA106_28 = input.LA(1);
+
+
+ int index106_28 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_28);
+ if ( s>=0 ) return s;
+ break;
+ case 28 :
+ int LA106_29 = input.LA(1);
+
+
+ int index106_29 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_29);
+ if ( s>=0 ) return s;
+ break;
+ case 29 :
+ int LA106_30 = input.LA(1);
+
+
+ int index106_30 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_30);
+ if ( s>=0 ) return s;
+ break;
+ case 30 :
+ int LA106_31 = input.LA(1);
+
+
+ int index106_31 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred142_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index106_31);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 106, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA115_eotS =
+ "\114\uffff";
+ static final String DFA115_eofS =
+ "\1\2\113\uffff";
+ static final String DFA115_minS =
+ "\1\4\1\0\112\uffff";
+ static final String DFA115_maxS =
+ "\1\144\1\0\112\uffff";
+ static final String DFA115_acceptS =
+ "\2\uffff\1\2\110\uffff\1\1";
+ static final String DFA115_specialS =
+ "\1\uffff\1\0\112\uffff}>";
+ static final String[] DFA115_transitionS = {
+ "\5\2\5\uffff\13\2\1\1\26\2\1\uffff\2\2\5\uffff\1\2\2\uffff\1"+
+ "\2\2\uffff\1\2\6\uffff\31\2\2\uffff\2\2\1\uffff\2\2",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA115_eot = DFA.unpackEncodedString(DFA115_eotS);
+ static final short[] DFA115_eof = DFA.unpackEncodedString(DFA115_eofS);
+ static final char[] DFA115_min = DFA.unpackEncodedStringToUnsignedChars(DFA115_minS);
+ static final char[] DFA115_max = DFA.unpackEncodedStringToUnsignedChars(DFA115_maxS);
+ static final short[] DFA115_accept = DFA.unpackEncodedString(DFA115_acceptS);
+ static final short[] DFA115_special = DFA.unpackEncodedString(DFA115_specialS);
+ static final short[][] DFA115_transition;
+
+ static {
+ int numStates = DFA115_transitionS.length;
+ DFA115_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA115_transition[i] = DFA.unpackEncodedString(DFA115_transitionS[i]);
+ }
+ }
+
+ class DFA115 extends DFA {
+
+ public DFA115(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 115;
+ this.eot = DFA115_eot;
+ this.eof = DFA115_eof;
+ this.min = DFA115_min;
+ this.max = DFA115_max;
+ this.accept = DFA115_accept;
+ this.special = DFA115_special;
+ this.transition = DFA115_transition;
+ }
+ public String getDescription() {
+ return "17759:1: ( rule__JvmParameterizedTypeReference__Group_1__0 )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA115_1 = input.LA(1);
+
+
+ int index115_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred151_InternalEmfParsleyDsl()) ) {s = 75;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index115_1);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 115, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+
+ public static final BitSet FOLLOW_ruleModel_in_entryRuleModel67 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleModel74 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Model__Group__0_in_ruleModel100 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleModule_in_entryRuleModule127 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleModule134 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group__0_in_ruleModule160 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleExtendsClause_in_entryRuleExtendsClause187 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleExtendsClause194 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ExtendsClause__Group__0_in_ruleExtendsClause220 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLabelProvider_in_entryRuleLabelProvider247 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleLabelProvider254 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group__0_in_ruleLabelProvider280 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLabelSpecification_in_entryRuleLabelSpecification307 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleLabelSpecification314 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelSpecification__Group__0_in_ruleLabelSpecification340 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulePropertyDescriptionProvider_in_entryRulePropertyDescriptionProvider367 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRulePropertyDescriptionProvider374 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__Group__0_in_rulePropertyDescriptionProvider400 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulePropertyDescriptionSpecification_in_entryRulePropertyDescriptionSpecification427 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRulePropertyDescriptionSpecification434 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionSpecification__Group__0_in_rulePropertyDescriptionSpecification460 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFeaturesProvider_in_entryRuleFeaturesProvider487 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleFeaturesProvider494 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__Group__0_in_ruleFeaturesProvider520 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFeatureSpecification_in_entryRuleFeatureSpecification547 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleFeatureSpecification554 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeatureSpecification__Group__0_in_ruleFeatureSpecification580 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFormControlFactory_in_entryRuleFormControlFactory607 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleFormControlFactory614 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__Group__0_in_ruleFormControlFactory640 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFormControlSpecification_in_entryRuleFormControlSpecification667 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleFormControlSpecification674 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__Group__0_in_ruleFormControlSpecification700 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleProposalCreator_in_entryRuleProposalCreator727 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleProposalCreator734 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ProposalCreator__Group__0_in_ruleProposalCreator760 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleProposalSpecification_in_entryRuleProposalSpecification787 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleProposalSpecification794 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ProposalSpecification__Group__0_in_ruleProposalSpecification820 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleViewerContentProvider_in_entryRuleViewerContentProvider847 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleViewerContentProvider854 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__Group__0_in_ruleViewerContentProvider880 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulePartSpecification_in_entryRulePartSpecification911 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRulePartSpecification918 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleViewSpecification_in_rulePartSpecification944 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleViewSpecification_in_entryRuleViewSpecification970 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleViewSpecification977 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__0_in_ruleViewSpecification1003 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_entryRuleXExpression1030 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXExpression1037 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXAssignment_in_ruleXExpression1063 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXAssignment_in_entryRuleXAssignment1089 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXAssignment1096 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__Alternatives_in_ruleXAssignment1122 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpSingleAssign_in_entryRuleOpSingleAssign1149 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpSingleAssign1156 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_13_in_ruleOpSingleAssign1183 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpMultiAssign_in_entryRuleOpMultiAssign1211 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpMultiAssign1218 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpMultiAssign__Alternatives_in_ruleOpMultiAssign1244 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXOrExpression_in_entryRuleXOrExpression1271 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXOrExpression1278 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOrExpression__Group__0_in_ruleXOrExpression1304 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpOr_in_entryRuleOpOr1331 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpOr1338 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_14_in_ruleOpOr1365 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXAndExpression_in_entryRuleXAndExpression1393 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXAndExpression1400 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAndExpression__Group__0_in_ruleXAndExpression1426 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpAnd_in_entryRuleOpAnd1453 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpAnd1460 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_15_in_ruleOpAnd1487 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXEqualityExpression_in_entryRuleXEqualityExpression1515 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXEqualityExpression1522 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XEqualityExpression__Group__0_in_ruleXEqualityExpression1548 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpEquality_in_entryRuleOpEquality1575 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpEquality1582 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpEquality__Alternatives_in_ruleOpEquality1608 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXRelationalExpression_in_entryRuleXRelationalExpression1635 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXRelationalExpression1642 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group__0_in_ruleXRelationalExpression1668 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpCompare_in_entryRuleOpCompare1695 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpCompare1702 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpCompare__Alternatives_in_ruleOpCompare1728 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXOtherOperatorExpression_in_entryRuleXOtherOperatorExpression1755 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXOtherOperatorExpression1762 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group__0_in_ruleXOtherOperatorExpression1788 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpOther_in_entryRuleOpOther1815 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpOther1822 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Alternatives_in_ruleOpOther1848 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXAdditiveExpression_in_entryRuleXAdditiveExpression1875 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXAdditiveExpression1882 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAdditiveExpression__Group__0_in_ruleXAdditiveExpression1908 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpAdd_in_entryRuleOpAdd1935 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpAdd1942 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpAdd__Alternatives_in_ruleOpAdd1968 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXMultiplicativeExpression_in_entryRuleXMultiplicativeExpression1995 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXMultiplicativeExpression2002 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group__0_in_ruleXMultiplicativeExpression2028 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpMulti_in_entryRuleOpMulti2055 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpMulti2062 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpMulti__Alternatives_in_ruleOpMulti2088 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXUnaryOperation_in_entryRuleXUnaryOperation2115 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXUnaryOperation2122 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XUnaryOperation__Alternatives_in_ruleXUnaryOperation2148 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpUnary_in_entryRuleOpUnary2175 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpUnary2182 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpUnary__Alternatives_in_ruleOpUnary2208 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXCastedExpression_in_entryRuleXCastedExpression2235 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXCastedExpression2242 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCastedExpression__Group__0_in_ruleXCastedExpression2268 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXMemberFeatureCall_in_entryRuleXMemberFeatureCall2295 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXMemberFeatureCall2302 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group__0_in_ruleXMemberFeatureCall2328 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXPrimaryExpression_in_entryRuleXPrimaryExpression2355 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXPrimaryExpression2362 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XPrimaryExpression__Alternatives_in_ruleXPrimaryExpression2388 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXLiteral_in_entryRuleXLiteral2415 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXLiteral2422 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XLiteral__Alternatives_in_ruleXLiteral2448 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXCollectionLiteral_in_entryRuleXCollectionLiteral2475 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXCollectionLiteral2482 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCollectionLiteral__Alternatives_in_ruleXCollectionLiteral2508 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXSetLiteral_in_entryRuleXSetLiteral2535 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXSetLiteral2542 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__Group__0_in_ruleXSetLiteral2568 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXListLiteral_in_entryRuleXListLiteral2595 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXListLiteral2602 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XListLiteral__Group__0_in_ruleXListLiteral2628 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXClosure_in_entryRuleXClosure2655 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXClosure2662 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group__0_in_ruleXClosure2688 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpressionInClosure_in_entryRuleXExpressionInClosure2715 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXExpressionInClosure2722 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XExpressionInClosure__Group__0_in_ruleXExpressionInClosure2748 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXShortClosure_in_entryRuleXShortClosure2775 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXShortClosure2782 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group__0_in_ruleXShortClosure2808 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXParenthesizedExpression_in_entryRuleXParenthesizedExpression2835 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXParenthesizedExpression2842 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XParenthesizedExpression__Group__0_in_ruleXParenthesizedExpression2868 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXIfExpression_in_entryRuleXIfExpression2895 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXIfExpression2902 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group__0_in_ruleXIfExpression2928 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXSwitchExpression_in_entryRuleXSwitchExpression2955 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXSwitchExpression2962 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group__0_in_ruleXSwitchExpression2988 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXCasePart_in_entryRuleXCasePart3015 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXCasePart3022 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCasePart__Group__0_in_ruleXCasePart3048 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXForLoopExpression_in_entryRuleXForLoopExpression3075 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXForLoopExpression3082 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__Group__0_in_ruleXForLoopExpression3108 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXWhileExpression_in_entryRuleXWhileExpression3135 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXWhileExpression3142 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XWhileExpression__Group__0_in_ruleXWhileExpression3168 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXDoWhileExpression_in_entryRuleXDoWhileExpression3195 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXDoWhileExpression3202 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__0_in_ruleXDoWhileExpression3228 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXBlockExpression_in_entryRuleXBlockExpression3255 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXBlockExpression3262 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XBlockExpression__Group__0_in_ruleXBlockExpression3288 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpressionInsideBlock_in_entryRuleXExpressionInsideBlock3315 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXExpressionInsideBlock3322 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XExpressionInsideBlock__Alternatives_in_ruleXExpressionInsideBlock3348 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXVariableDeclaration_in_entryRuleXVariableDeclaration3375 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXVariableDeclaration3382 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group__0_in_ruleXVariableDeclaration3408 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_entryRuleJvmFormalParameter3435 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleJvmFormalParameter3442 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmFormalParameter__Group__0_in_ruleJvmFormalParameter3468 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFullJvmFormalParameter_in_entryRuleFullJvmFormalParameter3495 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleFullJvmFormalParameter3502 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FullJvmFormalParameter__Group__0_in_ruleFullJvmFormalParameter3528 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXFeatureCall_in_entryRuleXFeatureCall3555 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXFeatureCall3562 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group__0_in_ruleXFeatureCall3588 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFeatureCallID_in_entryRuleFeatureCallID3615 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleFeatureCallID3622 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeatureCallID__Alternatives_in_ruleFeatureCallID3648 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleIdOrSuper_in_entryRuleIdOrSuper3675 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleIdOrSuper3682 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__IdOrSuper__Alternatives_in_ruleIdOrSuper3708 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXConstructorCall_in_entryRuleXConstructorCall3735 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXConstructorCall3742 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group__0_in_ruleXConstructorCall3768 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXBooleanLiteral_in_entryRuleXBooleanLiteral3795 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXBooleanLiteral3802 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XBooleanLiteral__Group__0_in_ruleXBooleanLiteral3828 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXNullLiteral_in_entryRuleXNullLiteral3855 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXNullLiteral3862 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XNullLiteral__Group__0_in_ruleXNullLiteral3888 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXNumberLiteral_in_entryRuleXNumberLiteral3915 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXNumberLiteral3922 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XNumberLiteral__Group__0_in_ruleXNumberLiteral3948 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXStringLiteral_in_entryRuleXStringLiteral3975 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXStringLiteral3982 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XStringLiteral__Group__0_in_ruleXStringLiteral4008 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXTypeLiteral_in_entryRuleXTypeLiteral4035 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXTypeLiteral4042 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTypeLiteral__Group__0_in_ruleXTypeLiteral4068 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXThrowExpression_in_entryRuleXThrowExpression4095 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXThrowExpression4102 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XThrowExpression__Group__0_in_ruleXThrowExpression4128 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXReturnExpression_in_entryRuleXReturnExpression4155 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXReturnExpression4162 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XReturnExpression__Group__0_in_ruleXReturnExpression4188 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXTryCatchFinallyExpression_in_entryRuleXTryCatchFinallyExpression4215 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXTryCatchFinallyExpression4222 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group__0_in_ruleXTryCatchFinallyExpression4248 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXCatchClause_in_entryRuleXCatchClause4275 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXCatchClause4282 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCatchClause__Group__0_in_ruleXCatchClause4308 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName4335 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedName4342 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__QualifiedName__Group__0_in_ruleQualifiedName4368 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleNumber_in_entryRuleNumber4400 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleNumber4407 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Number__Alternatives_in_ruleNumber4437 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_entryRuleJvmTypeReference4466 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleJvmTypeReference4473 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmTypeReference__Alternatives_in_ruleJvmTypeReference4499 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleArrayBrackets_in_entryRuleArrayBrackets4526 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleArrayBrackets4533 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ArrayBrackets__Group__0_in_ruleArrayBrackets4559 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXFunctionTypeRef_in_entryRuleXFunctionTypeRef4586 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXFunctionTypeRef4593 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group__0_in_ruleXFunctionTypeRef4619 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmParameterizedTypeReference_in_entryRuleJvmParameterizedTypeReference4646 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleJvmParameterizedTypeReference4653 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group__0_in_ruleJvmParameterizedTypeReference4679 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_entryRuleJvmArgumentTypeReference4706 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleJvmArgumentTypeReference4713 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmArgumentTypeReference__Alternatives_in_ruleJvmArgumentTypeReference4739 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmWildcardTypeReference_in_entryRuleJvmWildcardTypeReference4766 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleJvmWildcardTypeReference4773 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmWildcardTypeReference__Group__0_in_ruleJvmWildcardTypeReference4799 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmUpperBound_in_entryRuleJvmUpperBound4826 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleJvmUpperBound4833 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmUpperBound__Group__0_in_ruleJvmUpperBound4859 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmUpperBoundAnded_in_entryRuleJvmUpperBoundAnded4886 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleJvmUpperBoundAnded4893 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmUpperBoundAnded__Group__0_in_ruleJvmUpperBoundAnded4919 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmLowerBound_in_entryRuleJvmLowerBound4946 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleJvmLowerBound4953 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmLowerBound__Group__0_in_ruleJvmLowerBound4979 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedNameWithWildcard_in_entryRuleQualifiedNameWithWildcard5008 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedNameWithWildcard5015 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__QualifiedNameWithWildcard__Group__0_in_ruleQualifiedNameWithWildcard5041 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleValidID_in_entryRuleValidID5068 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleValidID5075 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleValidID5101 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXImportSection_in_entryRuleXImportSection5127 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXImportSection5134 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XImportSection__ImportDeclarationsAssignment_in_ruleXImportSection5162 = new BitSet(new long[]{0x0000100000000002L});
+ public static final BitSet FOLLOW_rule__XImportSection__ImportDeclarationsAssignment_in_ruleXImportSection5174 = new BitSet(new long[]{0x0000100000000002L});
+ public static final BitSet FOLLOW_ruleXImportDeclaration_in_entryRuleXImportDeclaration5204 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXImportDeclaration5211 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__Group__0_in_ruleXImportDeclaration5237 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_0__0_in_rule__XAssignment__Alternatives5274 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_1__0_in_rule__XAssignment__Alternatives5292 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_16_in_rule__OpMultiAssign__Alternatives5326 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_17_in_rule__OpMultiAssign__Alternatives5346 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_18_in_rule__OpEquality__Alternatives5381 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_19_in_rule__OpEquality__Alternatives5401 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_20_in_rule__OpEquality__Alternatives5421 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_21_in_rule__OpEquality__Alternatives5441 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0__0_in_rule__XRelationalExpression__Alternatives_15475 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1__0_in_rule__XRelationalExpression__Alternatives_15493 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_22_in_rule__OpCompare__Alternatives5527 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_23_in_rule__OpCompare__Alternatives5547 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_24_in_rule__OpCompare__Alternatives5567 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_25_in_rule__OpCompare__Alternatives5587 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_26_in_rule__OpOther__Alternatives5622 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_27_in_rule__OpOther__Alternatives5642 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_2__0_in_rule__OpOther__Alternatives5661 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_28_in_rule__OpOther__Alternatives5680 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_29_in_rule__OpOther__Alternatives5700 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_5__0_in_rule__OpOther__Alternatives5719 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_6__0_in_rule__OpOther__Alternatives5737 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_30_in_rule__OpOther__Alternatives5756 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_31_in_rule__OpOther__Alternatives5776 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_32_in_rule__OpOther__Alternatives5796 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_5_1_0__0_in_rule__OpOther__Alternatives_5_15830 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_24_in_rule__OpOther__Alternatives_5_15849 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_6_1_0__0_in_rule__OpOther__Alternatives_6_15883 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_25_in_rule__OpOther__Alternatives_6_15902 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_33_in_rule__OpAdd__Alternatives5937 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_34_in_rule__OpAdd__Alternatives5957 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_35_in_rule__OpMulti__Alternatives5992 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_36_in_rule__OpMulti__Alternatives6012 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_37_in_rule__OpMulti__Alternatives6032 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_38_in_rule__OpMulti__Alternatives6052 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XUnaryOperation__Group_0__0_in_rule__XUnaryOperation__Alternatives6086 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXCastedExpression_in_rule__XUnaryOperation__Alternatives6104 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_39_in_rule__OpUnary__Alternatives6137 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_34_in_rule__OpUnary__Alternatives6157 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_33_in_rule__OpUnary__Alternatives6177 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0__0_in_rule__XMemberFeatureCall__Alternatives_16211 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__0_in_rule__XMemberFeatureCall__Alternatives_16229 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_40_in_rule__XMemberFeatureCall__Alternatives_1_0_0_0_16263 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1_in_rule__XMemberFeatureCall__Alternatives_1_0_0_0_16282 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_40_in_rule__XMemberFeatureCall__Alternatives_1_1_0_0_16316 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1_in_rule__XMemberFeatureCall__Alternatives_1_1_0_0_16335 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2_in_rule__XMemberFeatureCall__Alternatives_1_1_0_0_16353 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0_in_rule__XMemberFeatureCall__Alternatives_1_1_3_16386 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1__0_in_rule__XMemberFeatureCall__Alternatives_1_1_3_16404 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXConstructorCall_in_rule__XPrimaryExpression__Alternatives6437 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXBlockExpression_in_rule__XPrimaryExpression__Alternatives6454 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXSwitchExpression_in_rule__XPrimaryExpression__Alternatives6471 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXFeatureCall_in_rule__XPrimaryExpression__Alternatives6488 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXLiteral_in_rule__XPrimaryExpression__Alternatives6505 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXIfExpression_in_rule__XPrimaryExpression__Alternatives6522 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXForLoopExpression_in_rule__XPrimaryExpression__Alternatives6539 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXWhileExpression_in_rule__XPrimaryExpression__Alternatives6556 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXDoWhileExpression_in_rule__XPrimaryExpression__Alternatives6573 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXThrowExpression_in_rule__XPrimaryExpression__Alternatives6590 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXReturnExpression_in_rule__XPrimaryExpression__Alternatives6607 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXTryCatchFinallyExpression_in_rule__XPrimaryExpression__Alternatives6624 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXParenthesizedExpression_in_rule__XPrimaryExpression__Alternatives6641 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXCollectionLiteral_in_rule__XLiteral__Alternatives6673 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXClosure_in_rule__XLiteral__Alternatives6691 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXBooleanLiteral_in_rule__XLiteral__Alternatives6709 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXNumberLiteral_in_rule__XLiteral__Alternatives6726 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXNullLiteral_in_rule__XLiteral__Alternatives6743 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXStringLiteral_in_rule__XLiteral__Alternatives6760 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXTypeLiteral_in_rule__XLiteral__Alternatives6777 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXSetLiteral_in_rule__XCollectionLiteral__Alternatives6809 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXListLiteral_in_rule__XCollectionLiteral__Alternatives6826 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0__0_in_rule__XSwitchExpression__Alternatives_26858 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1__0_in_rule__XSwitchExpression__Alternatives_26876 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXVariableDeclaration_in_rule__XExpressionInsideBlock__Alternatives6909 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XExpressionInsideBlock__Alternatives6926 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__WriteableAssignment_1_0_in_rule__XVariableDeclaration__Alternatives_16958 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_41_in_rule__XVariableDeclaration__Alternatives_16977 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group_2_0__0_in_rule__XVariableDeclaration__Alternatives_27011 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__NameAssignment_2_1_in_rule__XVariableDeclaration__Alternatives_27029 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0_in_rule__XFeatureCall__Alternatives_3_17062 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_3_1_1__0_in_rule__XFeatureCall__Alternatives_3_17080 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleValidID_in_rule__FeatureCallID__Alternatives7113 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_42_in_rule__FeatureCallID__Alternatives7131 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_43_in_rule__FeatureCallID__Alternatives7151 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_44_in_rule__FeatureCallID__Alternatives7171 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_45_in_rule__FeatureCallID__Alternatives7191 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFeatureCallID_in_rule__IdOrSuper__Alternatives7225 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_46_in_rule__IdOrSuper__Alternatives7243 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__ArgumentsAssignment_4_1_0_in_rule__XConstructorCall__Alternatives_4_17277 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_4_1_1__0_in_rule__XConstructorCall__Alternatives_4_17295 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_47_in_rule__XBooleanLiteral__Alternatives_17329 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XBooleanLiteral__IsTrueAssignment_1_1_in_rule__XBooleanLiteral__Alternatives_17348 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0__0_in_rule__XTryCatchFinallyExpression__Alternatives_37381 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group_3_1__0_in_rule__XTryCatchFinallyExpression__Alternatives_37399 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_HEX_in_rule__Number__Alternatives7432 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Number__Group_1__0_in_rule__Number__Alternatives7449 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_rule__Number__Alternatives_1_07482 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_DECIMAL_in_rule__Number__Alternatives_1_07499 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_rule__Number__Alternatives_1_1_17531 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_DECIMAL_in_rule__Number__Alternatives_1_1_17548 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmTypeReference__Group_0__0_in_rule__JvmTypeReference__Alternatives7580 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXFunctionTypeRef_in_rule__JvmTypeReference__Alternatives7598 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__JvmArgumentTypeReference__Alternatives7630 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmWildcardTypeReference_in_rule__JvmArgumentTypeReference__Alternatives7647 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_in_rule__JvmWildcardTypeReference__Alternatives_27679 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_in_rule__JvmWildcardTypeReference__Alternatives_27697 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__Group_1_0__0_in_rule__XImportDeclaration__Alternatives_17731 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__ImportedTypeAssignment_1_1_in_rule__XImportDeclaration__Alternatives_17749 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__ImportedNamespaceAssignment_1_2_in_rule__XImportDeclaration__Alternatives_17767 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Model__Group__0__Impl_in_rule__Model__Group__07798 = new BitSet(new long[]{0x0001000000000000L});
+ public static final BitSet FOLLOW_rule__Model__Group__1_in_rule__Model__Group__07801 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Model__ImportSectionAssignment_0_in_rule__Model__Group__0__Impl7828 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Model__Group__1__Impl_in_rule__Model__Group__17859 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Model__ModuleAssignment_1_in_rule__Model__Group__1__Impl7886 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group__0__Impl_in_rule__Module__Group__07920 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__Module__Group__1_in_rule__Module__Group__07923 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_48_in_rule__Module__Group__0__Impl7951 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group__1__Impl_in_rule__Module__Group__17982 = new BitSet(new long[]{0x0002040000000000L});
+ public static final BitSet FOLLOW_rule__Module__Group__2_in_rule__Module__Group__17985 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__NameAssignment_1_in_rule__Module__Group__1__Impl8012 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group__2__Impl_in_rule__Module__Group__28042 = new BitSet(new long[]{0x0002040000000000L});
+ public static final BitSet FOLLOW_rule__Module__Group__3_in_rule__Module__Group__28045 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__ExtendsClauseAssignment_2_in_rule__Module__Group__2__Impl8072 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group__3__Impl_in_rule__Module__Group__38103 = new BitSet(new long[]{0x9298000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_rule__Module__Group__4_in_rule__Module__Group__38106 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rule__Module__Group__3__Impl8134 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group__4__Impl_in_rule__Module__Group__48165 = new BitSet(new long[]{0x0004000000000000L});
+ public static final BitSet FOLLOW_rule__Module__Group__5_in_rule__Module__Group__48168 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4_in_rule__Module__Group__4__Impl8195 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group__5__Impl_in_rule__Module__Group__58225 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_rule__Module__Group__5__Impl8253 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group_4_6__0__Impl_in_rule__Module__Group_4_6__08296 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_rule__Module__Group_4_6__1_in_rule__Module__Group_4_6__08299 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_51_in_rule__Module__Group_4_6__0__Impl8327 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group_4_6__1__Impl_in_rule__Module__Group_4_6__18358 = new BitSet(new long[]{0x0004000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_rule__Module__Group_4_6__2_in_rule__Module__Group_4_6__18361 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rule__Module__Group_4_6__1__Impl8389 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group_4_6__2__Impl_in_rule__Module__Group_4_6__28420 = new BitSet(new long[]{0x0004000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_rule__Module__Group_4_6__3_in_rule__Module__Group_4_6__28423 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__PartsAssignment_4_6_2_in_rule__Module__Group_4_6__2__Impl8450 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L});
+ public static final BitSet FOLLOW_rule__Module__Group_4_6__3__Impl_in_rule__Module__Group_4_6__38481 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_rule__Module__Group_4_6__3__Impl8509 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ExtendsClause__Group__0__Impl_in_rule__ExtendsClause__Group__08548 = new BitSet(new long[]{0x0000000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__ExtendsClause__Group__1_in_rule__ExtendsClause__Group__08551 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_42_in_rule__ExtendsClause__Group__0__Impl8579 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ExtendsClause__Group__1__Impl_in_rule__ExtendsClause__Group__18610 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ExtendsClause__SuperTypeAssignment_1_in_rule__ExtendsClause__Group__1__Impl8637 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group__0__Impl_in_rule__LabelProvider__Group__08671 = new BitSet(new long[]{0x0010000000000000L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group__1_in_rule__LabelProvider__Group__08674 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group__1__Impl_in_rule__LabelProvider__Group__18732 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group__2_in_rule__LabelProvider__Group__18735 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_52_in_rule__LabelProvider__Group__1__Impl8763 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group__2__Impl_in_rule__LabelProvider__Group__28794 = new BitSet(new long[]{0x0060000000000000L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group__3_in_rule__LabelProvider__Group__28797 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rule__LabelProvider__Group__2__Impl8825 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group__3__Impl_in_rule__LabelProvider__Group__38856 = new BitSet(new long[]{0x0004000000000000L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group__4_in_rule__LabelProvider__Group__38859 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__UnorderedGroup_3_in_rule__LabelProvider__Group__3__Impl8886 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group__4__Impl_in_rule__LabelProvider__Group__48916 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_rule__LabelProvider__Group__4__Impl8944 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group_3_0__0__Impl_in_rule__LabelProvider__Group_3_0__08985 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group_3_0__1_in_rule__LabelProvider__Group_3_0__08988 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_53_in_rule__LabelProvider__Group_3_0__0__Impl9016 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group_3_0__1__Impl_in_rule__LabelProvider__Group_3_0__19047 = new BitSet(new long[]{0x0004000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group_3_0__2_in_rule__LabelProvider__Group_3_0__19050 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rule__LabelProvider__Group_3_0__1__Impl9078 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group_3_0__2__Impl_in_rule__LabelProvider__Group_3_0__29109 = new BitSet(new long[]{0x0004000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group_3_0__3_in_rule__LabelProvider__Group_3_0__29112 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__LabelSpecificationsAssignment_3_0_2_in_rule__LabelProvider__Group_3_0__2__Impl9139 = new BitSet(new long[]{0x0000000020000012L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group_3_0__3__Impl_in_rule__LabelProvider__Group_3_0__39170 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_rule__LabelProvider__Group_3_0__3__Impl9198 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group_3_1__0__Impl_in_rule__LabelProvider__Group_3_1__09237 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group_3_1__1_in_rule__LabelProvider__Group_3_1__09240 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_54_in_rule__LabelProvider__Group_3_1__0__Impl9268 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group_3_1__1__Impl_in_rule__LabelProvider__Group_3_1__19299 = new BitSet(new long[]{0x0004000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group_3_1__2_in_rule__LabelProvider__Group_3_1__19302 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rule__LabelProvider__Group_3_1__1__Impl9330 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group_3_1__2__Impl_in_rule__LabelProvider__Group_3_1__29361 = new BitSet(new long[]{0x0004000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group_3_1__3_in_rule__LabelProvider__Group_3_1__29364 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__ImageSpecificationsAssignment_3_1_2_in_rule__LabelProvider__Group_3_1__2__Impl9391 = new BitSet(new long[]{0x0000000020000012L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group_3_1__3__Impl_in_rule__LabelProvider__Group_3_1__39422 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_rule__LabelProvider__Group_3_1__3__Impl9450 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelSpecification__Group__0__Impl_in_rule__LabelSpecification__Group__09489 = new BitSet(new long[]{0x0000000004000010L});
+ public static final BitSet FOLLOW_rule__LabelSpecification__Group__1_in_rule__LabelSpecification__Group__09492 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelSpecification__ParameterTypeAssignment_0_in_rule__LabelSpecification__Group__0__Impl9519 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelSpecification__Group__1__Impl_in_rule__LabelSpecification__Group__19549 = new BitSet(new long[]{0x0000000004000010L});
+ public static final BitSet FOLLOW_rule__LabelSpecification__Group__2_in_rule__LabelSpecification__Group__19552 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelSpecification__NameAssignment_1_in_rule__LabelSpecification__Group__1__Impl9579 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelSpecification__Group__2__Impl_in_rule__LabelSpecification__Group__29610 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__LabelSpecification__Group__3_in_rule__LabelSpecification__Group__29613 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_26_in_rule__LabelSpecification__Group__2__Impl9641 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelSpecification__Group__3__Impl_in_rule__LabelSpecification__Group__39672 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelSpecification__ExpressionAssignment_3_in_rule__LabelSpecification__Group__3__Impl9699 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__Group__0__Impl_in_rule__PropertyDescriptionProvider__Group__09737 = new BitSet(new long[]{0x0080000000000000L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__Group__1_in_rule__PropertyDescriptionProvider__Group__09740 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__Group__1__Impl_in_rule__PropertyDescriptionProvider__Group__19798 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__Group__2_in_rule__PropertyDescriptionProvider__Group__19801 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_55_in_rule__PropertyDescriptionProvider__Group__1__Impl9829 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__Group__2__Impl_in_rule__PropertyDescriptionProvider__Group__29860 = new BitSet(new long[]{0x0024000000000000L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__Group__3_in_rule__PropertyDescriptionProvider__Group__29863 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rule__PropertyDescriptionProvider__Group__2__Impl9891 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__Group__3__Impl_in_rule__PropertyDescriptionProvider__Group__39922 = new BitSet(new long[]{0x0024000000000000L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__Group__4_in_rule__PropertyDescriptionProvider__Group__39925 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__Group_3__0_in_rule__PropertyDescriptionProvider__Group__3__Impl9952 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__Group__4__Impl_in_rule__PropertyDescriptionProvider__Group__49983 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_rule__PropertyDescriptionProvider__Group__4__Impl10011 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__Group_3__0__Impl_in_rule__PropertyDescriptionProvider__Group_3__010052 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__Group_3__1_in_rule__PropertyDescriptionProvider__Group_3__010055 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_53_in_rule__PropertyDescriptionProvider__Group_3__0__Impl10083 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__Group_3__1__Impl_in_rule__PropertyDescriptionProvider__Group_3__110114 = new BitSet(new long[]{0x0004000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__Group_3__2_in_rule__PropertyDescriptionProvider__Group_3__110117 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rule__PropertyDescriptionProvider__Group_3__1__Impl10145 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__Group_3__2__Impl_in_rule__PropertyDescriptionProvider__Group_3__210176 = new BitSet(new long[]{0x0004000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__Group_3__3_in_rule__PropertyDescriptionProvider__Group_3__210179 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_2_in_rule__PropertyDescriptionProvider__Group_3__2__Impl10206 = new BitSet(new long[]{0x0000000020000012L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionProvider__Group_3__3__Impl_in_rule__PropertyDescriptionProvider__Group_3__310237 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_rule__PropertyDescriptionProvider__Group_3__3__Impl10265 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionSpecification__Group__0__Impl_in_rule__PropertyDescriptionSpecification__Group__010304 = new BitSet(new long[]{0x0100000000000000L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionSpecification__Group__1_in_rule__PropertyDescriptionSpecification__Group__010307 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionSpecification__ParameterTypeAssignment_0_in_rule__PropertyDescriptionSpecification__Group__0__Impl10334 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionSpecification__Group__1__Impl_in_rule__PropertyDescriptionSpecification__Group__110364 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionSpecification__Group__2_in_rule__PropertyDescriptionSpecification__Group__110367 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_56_in_rule__PropertyDescriptionSpecification__Group__1__Impl10395 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionSpecification__Group__2__Impl_in_rule__PropertyDescriptionSpecification__Group__210426 = new BitSet(new long[]{0x0000000004000000L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionSpecification__Group__3_in_rule__PropertyDescriptionSpecification__Group__210429 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionSpecification__FeatureAssignment_2_in_rule__PropertyDescriptionSpecification__Group__2__Impl10456 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionSpecification__Group__3__Impl_in_rule__PropertyDescriptionSpecification__Group__310486 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionSpecification__Group__4_in_rule__PropertyDescriptionSpecification__Group__310489 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_26_in_rule__PropertyDescriptionSpecification__Group__3__Impl10517 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionSpecification__Group__4__Impl_in_rule__PropertyDescriptionSpecification__Group__410548 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__PropertyDescriptionSpecification__ExpressionAssignment_4_in_rule__PropertyDescriptionSpecification__Group__4__Impl10575 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__Group__0__Impl_in_rule__FeaturesProvider__Group__010615 = new BitSet(new long[]{0x0200000000000000L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__Group__1_in_rule__FeaturesProvider__Group__010618 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__Group__1__Impl_in_rule__FeaturesProvider__Group__110676 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__Group__2_in_rule__FeaturesProvider__Group__110679 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_57_in_rule__FeaturesProvider__Group__1__Impl10707 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__Group__2__Impl_in_rule__FeaturesProvider__Group__210738 = new BitSet(new long[]{0x0404000000000000L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__Group__3_in_rule__FeaturesProvider__Group__210741 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rule__FeaturesProvider__Group__2__Impl10769 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__Group__3__Impl_in_rule__FeaturesProvider__Group__310800 = new BitSet(new long[]{0x0404000000000000L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__Group__4_in_rule__FeaturesProvider__Group__310803 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__Group_3__0_in_rule__FeaturesProvider__Group__3__Impl10830 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__Group__4__Impl_in_rule__FeaturesProvider__Group__410861 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_rule__FeaturesProvider__Group__4__Impl10889 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__Group_3__0__Impl_in_rule__FeaturesProvider__Group_3__010930 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__Group_3__1_in_rule__FeaturesProvider__Group_3__010933 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_58_in_rule__FeaturesProvider__Group_3__0__Impl10961 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__Group_3__1__Impl_in_rule__FeaturesProvider__Group_3__110992 = new BitSet(new long[]{0x0004000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__Group_3__2_in_rule__FeaturesProvider__Group_3__110995 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rule__FeaturesProvider__Group_3__1__Impl11023 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__Group_3__2__Impl_in_rule__FeaturesProvider__Group_3__211054 = new BitSet(new long[]{0x0004000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__Group_3__3_in_rule__FeaturesProvider__Group_3__211057 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__FeatureSpecificationsAssignment_3_2_in_rule__FeaturesProvider__Group_3__2__Impl11084 = new BitSet(new long[]{0x0000000020000012L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__FeaturesProvider__Group_3__3__Impl_in_rule__FeaturesProvider__Group_3__311115 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_rule__FeaturesProvider__Group_3__3__Impl11143 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeatureSpecification__Group__0__Impl_in_rule__FeatureSpecification__Group__011182 = new BitSet(new long[]{0x0000000004000000L});
+ public static final BitSet FOLLOW_rule__FeatureSpecification__Group__1_in_rule__FeatureSpecification__Group__011185 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeatureSpecification__ParameterTypeAssignment_0_in_rule__FeatureSpecification__Group__0__Impl11212 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeatureSpecification__Group__1__Impl_in_rule__FeatureSpecification__Group__111242 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__FeatureSpecification__Group__2_in_rule__FeatureSpecification__Group__111245 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_26_in_rule__FeatureSpecification__Group__1__Impl11273 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeatureSpecification__Group__2__Impl_in_rule__FeatureSpecification__Group__211304 = new BitSet(new long[]{0x0800000000000000L});
+ public static final BitSet FOLLOW_rule__FeatureSpecification__Group__3_in_rule__FeatureSpecification__Group__211307 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeatureSpecification__FeaturesAssignment_2_in_rule__FeatureSpecification__Group__2__Impl11334 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeatureSpecification__Group__3__Impl_in_rule__FeatureSpecification__Group__311364 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeatureSpecification__Group_3__0_in_rule__FeatureSpecification__Group__3__Impl11391 = new BitSet(new long[]{0x0800000000000002L});
+ public static final BitSet FOLLOW_rule__FeatureSpecification__Group_3__0__Impl_in_rule__FeatureSpecification__Group_3__011430 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__FeatureSpecification__Group_3__1_in_rule__FeatureSpecification__Group_3__011433 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_59_in_rule__FeatureSpecification__Group_3__0__Impl11461 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeatureSpecification__Group_3__1__Impl_in_rule__FeatureSpecification__Group_3__111492 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FeatureSpecification__FeaturesAssignment_3_1_in_rule__FeatureSpecification__Group_3__1__Impl11519 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__Group__0__Impl_in_rule__FormControlFactory__Group__011553 = new BitSet(new long[]{0x1000000000000000L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__Group__1_in_rule__FormControlFactory__Group__011556 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__Group__1__Impl_in_rule__FormControlFactory__Group__111614 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__Group__2_in_rule__FormControlFactory__Group__111617 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_60_in_rule__FormControlFactory__Group__1__Impl11645 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__Group__2__Impl_in_rule__FormControlFactory__Group__211676 = new BitSet(new long[]{0x2004000000000000L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__Group__3_in_rule__FormControlFactory__Group__211679 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rule__FormControlFactory__Group__2__Impl11707 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__Group__3__Impl_in_rule__FormControlFactory__Group__311738 = new BitSet(new long[]{0x2004000000000000L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__Group__4_in_rule__FormControlFactory__Group__311741 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__Group_3__0_in_rule__FormControlFactory__Group__3__Impl11768 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__Group__4__Impl_in_rule__FormControlFactory__Group__411799 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_rule__FormControlFactory__Group__4__Impl11827 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__Group_3__0__Impl_in_rule__FormControlFactory__Group_3__011868 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__Group_3__1_in_rule__FormControlFactory__Group_3__011871 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_61_in_rule__FormControlFactory__Group_3__0__Impl11899 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__Group_3__1__Impl_in_rule__FormControlFactory__Group_3__111930 = new BitSet(new long[]{0x0004000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__Group_3__2_in_rule__FormControlFactory__Group_3__111933 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rule__FormControlFactory__Group_3__1__Impl11961 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__Group_3__2__Impl_in_rule__FormControlFactory__Group_3__211992 = new BitSet(new long[]{0x0004000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__Group_3__3_in_rule__FormControlFactory__Group_3__211995 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__ControlSpecificationsAssignment_3_2_in_rule__FormControlFactory__Group_3__2__Impl12022 = new BitSet(new long[]{0x0000000020000012L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__FormControlFactory__Group_3__3__Impl_in_rule__FormControlFactory__Group_3__312053 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_rule__FormControlFactory__Group_3__3__Impl12081 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__Group__0__Impl_in_rule__FormControlSpecification__Group__012120 = new BitSet(new long[]{0x0100000000000000L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__Group__1_in_rule__FormControlSpecification__Group__012123 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__ParameterTypeAssignment_0_in_rule__FormControlSpecification__Group__0__Impl12150 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__Group__1__Impl_in_rule__FormControlSpecification__Group__112180 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__Group__2_in_rule__FormControlSpecification__Group__112183 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_56_in_rule__FormControlSpecification__Group__1__Impl12211 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__Group__2__Impl_in_rule__FormControlSpecification__Group__212242 = new BitSet(new long[]{0x0000000004000000L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__Group__3_in_rule__FormControlSpecification__Group__212245 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__FeatureAssignment_2_in_rule__FormControlSpecification__Group__2__Impl12272 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__Group__3__Impl_in_rule__FormControlSpecification__Group__312302 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__Group__4_in_rule__FormControlSpecification__Group__312305 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_26_in_rule__FormControlSpecification__Group__3__Impl12333 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__Group__4__Impl_in_rule__FormControlSpecification__Group__412364 = new BitSet(new long[]{0x4000000000000000L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__Group__5_in_rule__FormControlSpecification__Group__412367 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__ExpressionAssignment_4_in_rule__FormControlSpecification__Group__4__Impl12394 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__Group__5__Impl_in_rule__FormControlSpecification__Group__512424 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__Group_5__0_in_rule__FormControlSpecification__Group__5__Impl12451 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__Group_5__0__Impl_in_rule__FormControlSpecification__Group_5__012494 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__Group_5__1_in_rule__FormControlSpecification__Group_5__012497 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_62_in_rule__FormControlSpecification__Group_5__0__Impl12525 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__Group_5__1__Impl_in_rule__FormControlSpecification__Group_5__112556 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FormControlSpecification__TargetAssignment_5_1_in_rule__FormControlSpecification__Group_5__1__Impl12583 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ProposalCreator__Group__0__Impl_in_rule__ProposalCreator__Group__012617 = new BitSet(new long[]{0x8000000000000000L});
+ public static final BitSet FOLLOW_rule__ProposalCreator__Group__1_in_rule__ProposalCreator__Group__012620 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ProposalCreator__Group__1__Impl_in_rule__ProposalCreator__Group__112678 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_rule__ProposalCreator__Group__2_in_rule__ProposalCreator__Group__112681 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_63_in_rule__ProposalCreator__Group__1__Impl12709 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ProposalCreator__Group__2__Impl_in_rule__ProposalCreator__Group__212740 = new BitSet(new long[]{0x0004000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__ProposalCreator__Group__3_in_rule__ProposalCreator__Group__212743 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rule__ProposalCreator__Group__2__Impl12771 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ProposalCreator__Group__3__Impl_in_rule__ProposalCreator__Group__312802 = new BitSet(new long[]{0x0004000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__ProposalCreator__Group__4_in_rule__ProposalCreator__Group__312805 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ProposalCreator__ProposalsSpecificationsAssignment_3_in_rule__ProposalCreator__Group__3__Impl12832 = new BitSet(new long[]{0x0000000020000012L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__ProposalCreator__Group__4__Impl_in_rule__ProposalCreator__Group__412863 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_rule__ProposalCreator__Group__4__Impl12891 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ProposalSpecification__Group__0__Impl_in_rule__ProposalSpecification__Group__012932 = new BitSet(new long[]{0x0100000000000000L});
+ public static final BitSet FOLLOW_rule__ProposalSpecification__Group__1_in_rule__ProposalSpecification__Group__012935 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ProposalSpecification__ParameterTypeAssignment_0_in_rule__ProposalSpecification__Group__0__Impl12962 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ProposalSpecification__Group__1__Impl_in_rule__ProposalSpecification__Group__112992 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__ProposalSpecification__Group__2_in_rule__ProposalSpecification__Group__112995 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_56_in_rule__ProposalSpecification__Group__1__Impl13023 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ProposalSpecification__Group__2__Impl_in_rule__ProposalSpecification__Group__213054 = new BitSet(new long[]{0x0000000004000000L});
+ public static final BitSet FOLLOW_rule__ProposalSpecification__Group__3_in_rule__ProposalSpecification__Group__213057 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ProposalSpecification__FeatureAssignment_2_in_rule__ProposalSpecification__Group__2__Impl13084 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ProposalSpecification__Group__3__Impl_in_rule__ProposalSpecification__Group__313114 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__ProposalSpecification__Group__4_in_rule__ProposalSpecification__Group__313117 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_26_in_rule__ProposalSpecification__Group__3__Impl13145 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ProposalSpecification__Group__4__Impl_in_rule__ProposalSpecification__Group__413176 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ProposalSpecification__ExpressionAssignment_4_in_rule__ProposalSpecification__Group__4__Impl13203 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__Group__0__Impl_in_rule__ViewerContentProvider__Group__013243 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__Group__1_in_rule__ViewerContentProvider__Group__013246 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__Group__1__Impl_in_rule__ViewerContentProvider__Group__113304 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__Group__2_in_rule__ViewerContentProvider__Group__113307 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_64_in_rule__ViewerContentProvider__Group__1__Impl13335 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__Group__2__Impl_in_rule__ViewerContentProvider__Group__213366 = new BitSet(new long[]{0x0004000000000000L,0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__Group__3_in_rule__ViewerContentProvider__Group__213369 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rule__ViewerContentProvider__Group__2__Impl13397 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__Group__3__Impl_in_rule__ViewerContentProvider__Group__313428 = new BitSet(new long[]{0x0004000000000000L,0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__Group__4_in_rule__ViewerContentProvider__Group__313431 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__Group_3__0_in_rule__ViewerContentProvider__Group__3__Impl13458 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__Group__4__Impl_in_rule__ViewerContentProvider__Group__413489 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_rule__ViewerContentProvider__Group__4__Impl13517 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__Group_3__0__Impl_in_rule__ViewerContentProvider__Group_3__013558 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__Group_3__1_in_rule__ViewerContentProvider__Group_3__013561 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_65_in_rule__ViewerContentProvider__Group_3__0__Impl13589 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__Group_3__1__Impl_in_rule__ViewerContentProvider__Group_3__113620 = new BitSet(new long[]{0x0004000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__Group_3__2_in_rule__ViewerContentProvider__Group_3__113623 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rule__ViewerContentProvider__Group_3__1__Impl13651 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__Group_3__2__Impl_in_rule__ViewerContentProvider__Group_3__213682 = new BitSet(new long[]{0x0004000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__Group_3__3_in_rule__ViewerContentProvider__Group_3__213685 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_2_in_rule__ViewerContentProvider__Group_3__2__Impl13712 = new BitSet(new long[]{0x0000000020000012L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__ViewerContentProvider__Group_3__3__Impl_in_rule__ViewerContentProvider__Group_3__313743 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_rule__ViewerContentProvider__Group_3__3__Impl13771 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__0__Impl_in_rule__ViewSpecification__Group__013810 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__1_in_rule__ViewSpecification__Group__013813 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__1__Impl_in_rule__ViewSpecification__Group__113871 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__2_in_rule__ViewSpecification__Group__113874 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_66_in_rule__ViewSpecification__Group__1__Impl13902 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__2__Impl_in_rule__ViewSpecification__Group__213933 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__3_in_rule__ViewSpecification__Group__213936 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__IdAssignment_2_in_rule__ViewSpecification__Group__2__Impl13963 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__3__Impl_in_rule__ViewSpecification__Group__313993 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__4_in_rule__ViewSpecification__Group__313996 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rule__ViewSpecification__Group__3__Impl14024 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__4__Impl_in_rule__ViewSpecification__Group__414055 = new BitSet(new long[]{0x0000000000000100L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__5_in_rule__ViewSpecification__Group__414058 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_67_in_rule__ViewSpecification__Group__4__Impl14086 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__5__Impl_in_rule__ViewSpecification__Group__514117 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__6_in_rule__ViewSpecification__Group__514120 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__ViewNameAssignment_5_in_rule__ViewSpecification__Group__5__Impl14147 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__6__Impl_in_rule__ViewSpecification__Group__614177 = new BitSet(new long[]{0x0000000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__7_in_rule__ViewSpecification__Group__614180 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_68_in_rule__ViewSpecification__Group__6__Impl14208 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__7__Impl_in_rule__ViewSpecification__Group__714239 = new BitSet(new long[]{0x0004000000000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__8_in_rule__ViewSpecification__Group__714242 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__TypeAssignment_7_in_rule__ViewSpecification__Group__7__Impl14269 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__8__Impl_in_rule__ViewSpecification__Group__814299 = new BitSet(new long[]{0x0004000000000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__9_in_rule__ViewSpecification__Group__814302 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group_8__0_in_rule__ViewSpecification__Group__8__Impl14329 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group__9__Impl_in_rule__ViewSpecification__Group__914360 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_rule__ViewSpecification__Group__9__Impl14388 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group_8__0__Impl_in_rule__ViewSpecification__Group_8__014439 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group_8__1_in_rule__ViewSpecification__Group_8__014442 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_69_in_rule__ViewSpecification__Group_8__0__Impl14470 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__Group_8__1__Impl_in_rule__ViewSpecification__Group_8__114501 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ViewSpecification__CategoryAssignment_8_1_in_rule__ViewSpecification__Group_8__1__Impl14528 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_0__0__Impl_in_rule__XAssignment__Group_0__014562 = new BitSet(new long[]{0x00003C0000000010L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_0__1_in_rule__XAssignment__Group_0__014565 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_0__1__Impl_in_rule__XAssignment__Group_0__114623 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_0__2_in_rule__XAssignment__Group_0__114626 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__FeatureAssignment_0_1_in_rule__XAssignment__Group_0__1__Impl14653 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_0__2__Impl_in_rule__XAssignment__Group_0__214683 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_0__3_in_rule__XAssignment__Group_0__214686 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpSingleAssign_in_rule__XAssignment__Group_0__2__Impl14713 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_0__3__Impl_in_rule__XAssignment__Group_0__314742 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__ValueAssignment_0_3_in_rule__XAssignment__Group_0__3__Impl14769 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_1__0__Impl_in_rule__XAssignment__Group_1__014807 = new BitSet(new long[]{0x0000000000030000L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_1__1_in_rule__XAssignment__Group_1__014810 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXOrExpression_in_rule__XAssignment__Group_1__0__Impl14837 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_1__1__Impl_in_rule__XAssignment__Group_1__114866 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_1_1__0_in_rule__XAssignment__Group_1__1__Impl14893 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_1_1__0__Impl_in_rule__XAssignment__Group_1_1__014928 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_1_1__1_in_rule__XAssignment__Group_1_1__014931 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_1_1_0__0_in_rule__XAssignment__Group_1_1__0__Impl14958 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_1_1__1__Impl_in_rule__XAssignment__Group_1_1__114988 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__RightOperandAssignment_1_1_1_in_rule__XAssignment__Group_1_1__1__Impl15015 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_1_1_0__0__Impl_in_rule__XAssignment__Group_1_1_0__015049 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_1_1_0_0__0_in_rule__XAssignment__Group_1_1_0__0__Impl15076 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_1_1_0_0__0__Impl_in_rule__XAssignment__Group_1_1_0_0__015108 = new BitSet(new long[]{0x0000000000030000L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_1_1_0_0__1_in_rule__XAssignment__Group_1_1_0_0__015111 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_1_1_0_0__1__Impl_in_rule__XAssignment__Group_1_1_0_0__115169 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__FeatureAssignment_1_1_0_0_1_in_rule__XAssignment__Group_1_1_0_0__1__Impl15196 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOrExpression__Group__0__Impl_in_rule__XOrExpression__Group__015230 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_rule__XOrExpression__Group__1_in_rule__XOrExpression__Group__015233 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXAndExpression_in_rule__XOrExpression__Group__0__Impl15260 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOrExpression__Group__1__Impl_in_rule__XOrExpression__Group__115289 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOrExpression__Group_1__0_in_rule__XOrExpression__Group__1__Impl15316 = new BitSet(new long[]{0x0000000000004002L});
+ public static final BitSet FOLLOW_rule__XOrExpression__Group_1__0__Impl_in_rule__XOrExpression__Group_1__015351 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XOrExpression__Group_1__1_in_rule__XOrExpression__Group_1__015354 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOrExpression__Group_1_0__0_in_rule__XOrExpression__Group_1__0__Impl15381 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOrExpression__Group_1__1__Impl_in_rule__XOrExpression__Group_1__115411 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOrExpression__RightOperandAssignment_1_1_in_rule__XOrExpression__Group_1__1__Impl15438 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOrExpression__Group_1_0__0__Impl_in_rule__XOrExpression__Group_1_0__015472 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOrExpression__Group_1_0_0__0_in_rule__XOrExpression__Group_1_0__0__Impl15499 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOrExpression__Group_1_0_0__0__Impl_in_rule__XOrExpression__Group_1_0_0__015531 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_rule__XOrExpression__Group_1_0_0__1_in_rule__XOrExpression__Group_1_0_0__015534 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOrExpression__Group_1_0_0__1__Impl_in_rule__XOrExpression__Group_1_0_0__115592 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOrExpression__FeatureAssignment_1_0_0_1_in_rule__XOrExpression__Group_1_0_0__1__Impl15619 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAndExpression__Group__0__Impl_in_rule__XAndExpression__Group__015653 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_rule__XAndExpression__Group__1_in_rule__XAndExpression__Group__015656 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXEqualityExpression_in_rule__XAndExpression__Group__0__Impl15683 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAndExpression__Group__1__Impl_in_rule__XAndExpression__Group__115712 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAndExpression__Group_1__0_in_rule__XAndExpression__Group__1__Impl15739 = new BitSet(new long[]{0x0000000000008002L});
+ public static final BitSet FOLLOW_rule__XAndExpression__Group_1__0__Impl_in_rule__XAndExpression__Group_1__015774 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XAndExpression__Group_1__1_in_rule__XAndExpression__Group_1__015777 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAndExpression__Group_1_0__0_in_rule__XAndExpression__Group_1__0__Impl15804 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAndExpression__Group_1__1__Impl_in_rule__XAndExpression__Group_1__115834 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAndExpression__RightOperandAssignment_1_1_in_rule__XAndExpression__Group_1__1__Impl15861 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAndExpression__Group_1_0__0__Impl_in_rule__XAndExpression__Group_1_0__015895 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAndExpression__Group_1_0_0__0_in_rule__XAndExpression__Group_1_0__0__Impl15922 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAndExpression__Group_1_0_0__0__Impl_in_rule__XAndExpression__Group_1_0_0__015954 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_rule__XAndExpression__Group_1_0_0__1_in_rule__XAndExpression__Group_1_0_0__015957 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAndExpression__Group_1_0_0__1__Impl_in_rule__XAndExpression__Group_1_0_0__116015 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAndExpression__FeatureAssignment_1_0_0_1_in_rule__XAndExpression__Group_1_0_0__1__Impl16042 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XEqualityExpression__Group__0__Impl_in_rule__XEqualityExpression__Group__016076 = new BitSet(new long[]{0x00000000003C0000L});
+ public static final BitSet FOLLOW_rule__XEqualityExpression__Group__1_in_rule__XEqualityExpression__Group__016079 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXRelationalExpression_in_rule__XEqualityExpression__Group__0__Impl16106 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XEqualityExpression__Group__1__Impl_in_rule__XEqualityExpression__Group__116135 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1__0_in_rule__XEqualityExpression__Group__1__Impl16162 = new BitSet(new long[]{0x00000000003C0002L});
+ public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1__0__Impl_in_rule__XEqualityExpression__Group_1__016197 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1__1_in_rule__XEqualityExpression__Group_1__016200 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1_0__0_in_rule__XEqualityExpression__Group_1__0__Impl16227 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1__1__Impl_in_rule__XEqualityExpression__Group_1__116257 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XEqualityExpression__RightOperandAssignment_1_1_in_rule__XEqualityExpression__Group_1__1__Impl16284 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1_0__0__Impl_in_rule__XEqualityExpression__Group_1_0__016318 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1_0_0__0_in_rule__XEqualityExpression__Group_1_0__0__Impl16345 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1_0_0__0__Impl_in_rule__XEqualityExpression__Group_1_0_0__016377 = new BitSet(new long[]{0x00000000003C0000L});
+ public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1_0_0__1_in_rule__XEqualityExpression__Group_1_0_0__016380 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1_0_0__1__Impl_in_rule__XEqualityExpression__Group_1_0_0__116438 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XEqualityExpression__FeatureAssignment_1_0_0_1_in_rule__XEqualityExpression__Group_1_0_0__1__Impl16465 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group__0__Impl_in_rule__XRelationalExpression__Group__016499 = new BitSet(new long[]{0x0000000003C00000L,0x0000000000000040L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group__1_in_rule__XRelationalExpression__Group__016502 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXOtherOperatorExpression_in_rule__XRelationalExpression__Group__0__Impl16529 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group__1__Impl_in_rule__XRelationalExpression__Group__116558 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Alternatives_1_in_rule__XRelationalExpression__Group__1__Impl16585 = new BitSet(new long[]{0x0000000003C00002L,0x0000000000000040L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0__0__Impl_in_rule__XRelationalExpression__Group_1_0__016620 = new BitSet(new long[]{0x0000000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0__1_in_rule__XRelationalExpression__Group_1_0__016623 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0_0__0_in_rule__XRelationalExpression__Group_1_0__0__Impl16650 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0__1__Impl_in_rule__XRelationalExpression__Group_1_0__116680 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__TypeAssignment_1_0_1_in_rule__XRelationalExpression__Group_1_0__1__Impl16707 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0_0__0__Impl_in_rule__XRelationalExpression__Group_1_0_0__016741 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0_0_0__0_in_rule__XRelationalExpression__Group_1_0_0__0__Impl16768 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0_0_0__0__Impl_in_rule__XRelationalExpression__Group_1_0_0_0__016800 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0_0_0__1_in_rule__XRelationalExpression__Group_1_0_0_0__016803 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_0_0_0__1__Impl_in_rule__XRelationalExpression__Group_1_0_0_0__116861 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_70_in_rule__XRelationalExpression__Group_1_0_0_0__1__Impl16889 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1__0__Impl_in_rule__XRelationalExpression__Group_1_1__016924 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1__1_in_rule__XRelationalExpression__Group_1_1__016927 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1_0__0_in_rule__XRelationalExpression__Group_1_1__0__Impl16954 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1__1__Impl_in_rule__XRelationalExpression__Group_1_1__116984 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__RightOperandAssignment_1_1_1_in_rule__XRelationalExpression__Group_1_1__1__Impl17011 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1_0__0__Impl_in_rule__XRelationalExpression__Group_1_1_0__017045 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1_0_0__0_in_rule__XRelationalExpression__Group_1_1_0__0__Impl17072 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1_0_0__0__Impl_in_rule__XRelationalExpression__Group_1_1_0_0__017104 = new BitSet(new long[]{0x0000000003C00000L,0x0000000000000040L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1_0_0__1_in_rule__XRelationalExpression__Group_1_1_0_0__017107 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Group_1_1_0_0__1__Impl_in_rule__XRelationalExpression__Group_1_1_0_0__117165 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1_in_rule__XRelationalExpression__Group_1_1_0_0__1__Impl17192 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group__0__Impl_in_rule__XOtherOperatorExpression__Group__017226 = new BitSet(new long[]{0x00000001FF000000L});
+ public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group__1_in_rule__XOtherOperatorExpression__Group__017229 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXAdditiveExpression_in_rule__XOtherOperatorExpression__Group__0__Impl17256 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group__1__Impl_in_rule__XOtherOperatorExpression__Group__117285 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1__0_in_rule__XOtherOperatorExpression__Group__1__Impl17312 = new BitSet(new long[]{0x00000001FF000002L});
+ public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1__0__Impl_in_rule__XOtherOperatorExpression__Group_1__017347 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1__1_in_rule__XOtherOperatorExpression__Group_1__017350 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1_0__0_in_rule__XOtherOperatorExpression__Group_1__0__Impl17377 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1__1__Impl_in_rule__XOtherOperatorExpression__Group_1__117407 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOtherOperatorExpression__RightOperandAssignment_1_1_in_rule__XOtherOperatorExpression__Group_1__1__Impl17434 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1_0__0__Impl_in_rule__XOtherOperatorExpression__Group_1_0__017468 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1_0_0__0_in_rule__XOtherOperatorExpression__Group_1_0__0__Impl17495 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1_0_0__0__Impl_in_rule__XOtherOperatorExpression__Group_1_0_0__017527 = new BitSet(new long[]{0x00000001FF000000L});
+ public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1_0_0__1_in_rule__XOtherOperatorExpression__Group_1_0_0__017530 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1_0_0__1__Impl_in_rule__XOtherOperatorExpression__Group_1_0_0__117588 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1_in_rule__XOtherOperatorExpression__Group_1_0_0__1__Impl17615 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_2__0__Impl_in_rule__OpOther__Group_2__017649 = new BitSet(new long[]{0x0000000010000000L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_2__1_in_rule__OpOther__Group_2__017652 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_24_in_rule__OpOther__Group_2__0__Impl17680 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_2__1__Impl_in_rule__OpOther__Group_2__117711 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_28_in_rule__OpOther__Group_2__1__Impl17739 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_5__0__Impl_in_rule__OpOther__Group_5__017774 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_5__1_in_rule__OpOther__Group_5__017777 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_24_in_rule__OpOther__Group_5__0__Impl17805 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_5__1__Impl_in_rule__OpOther__Group_5__117836 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Alternatives_5_1_in_rule__OpOther__Group_5__1__Impl17863 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_5_1_0__0__Impl_in_rule__OpOther__Group_5_1_0__017897 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_5_1_0_0__0_in_rule__OpOther__Group_5_1_0__0__Impl17924 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_5_1_0_0__0__Impl_in_rule__OpOther__Group_5_1_0_0__017956 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_5_1_0_0__1_in_rule__OpOther__Group_5_1_0_0__017959 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_24_in_rule__OpOther__Group_5_1_0_0__0__Impl17987 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_5_1_0_0__1__Impl_in_rule__OpOther__Group_5_1_0_0__118018 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_24_in_rule__OpOther__Group_5_1_0_0__1__Impl18046 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_6__0__Impl_in_rule__OpOther__Group_6__018081 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_6__1_in_rule__OpOther__Group_6__018084 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_25_in_rule__OpOther__Group_6__0__Impl18112 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_6__1__Impl_in_rule__OpOther__Group_6__118143 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Alternatives_6_1_in_rule__OpOther__Group_6__1__Impl18170 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_6_1_0__0__Impl_in_rule__OpOther__Group_6_1_0__018204 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_6_1_0_0__0_in_rule__OpOther__Group_6_1_0__0__Impl18231 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_6_1_0_0__0__Impl_in_rule__OpOther__Group_6_1_0_0__018263 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_6_1_0_0__1_in_rule__OpOther__Group_6_1_0_0__018266 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_25_in_rule__OpOther__Group_6_1_0_0__0__Impl18294 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_6_1_0_0__1__Impl_in_rule__OpOther__Group_6_1_0_0__118325 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_25_in_rule__OpOther__Group_6_1_0_0__1__Impl18353 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAdditiveExpression__Group__0__Impl_in_rule__XAdditiveExpression__Group__018388 = new BitSet(new long[]{0x0000000600000000L});
+ public static final BitSet FOLLOW_rule__XAdditiveExpression__Group__1_in_rule__XAdditiveExpression__Group__018391 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXMultiplicativeExpression_in_rule__XAdditiveExpression__Group__0__Impl18418 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAdditiveExpression__Group__1__Impl_in_rule__XAdditiveExpression__Group__118447 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1__0_in_rule__XAdditiveExpression__Group__1__Impl18474 = new BitSet(new long[]{0x0000000600000002L});
+ public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1__0__Impl_in_rule__XAdditiveExpression__Group_1__018509 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1__1_in_rule__XAdditiveExpression__Group_1__018512 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1_0__0_in_rule__XAdditiveExpression__Group_1__0__Impl18539 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1__1__Impl_in_rule__XAdditiveExpression__Group_1__118569 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAdditiveExpression__RightOperandAssignment_1_1_in_rule__XAdditiveExpression__Group_1__1__Impl18596 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1_0__0__Impl_in_rule__XAdditiveExpression__Group_1_0__018630 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1_0_0__0_in_rule__XAdditiveExpression__Group_1_0__0__Impl18657 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1_0_0__0__Impl_in_rule__XAdditiveExpression__Group_1_0_0__018689 = new BitSet(new long[]{0x0000000600000000L});
+ public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1_0_0__1_in_rule__XAdditiveExpression__Group_1_0_0__018692 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1_0_0__1__Impl_in_rule__XAdditiveExpression__Group_1_0_0__118750 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAdditiveExpression__FeatureAssignment_1_0_0_1_in_rule__XAdditiveExpression__Group_1_0_0__1__Impl18777 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group__0__Impl_in_rule__XMultiplicativeExpression__Group__018811 = new BitSet(new long[]{0x0000007800000000L});
+ public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group__1_in_rule__XMultiplicativeExpression__Group__018814 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXUnaryOperation_in_rule__XMultiplicativeExpression__Group__0__Impl18841 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group__1__Impl_in_rule__XMultiplicativeExpression__Group__118870 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1__0_in_rule__XMultiplicativeExpression__Group__1__Impl18897 = new BitSet(new long[]{0x0000007800000002L});
+ public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1__0__Impl_in_rule__XMultiplicativeExpression__Group_1__018932 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1__1_in_rule__XMultiplicativeExpression__Group_1__018935 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1_0__0_in_rule__XMultiplicativeExpression__Group_1__0__Impl18962 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1__1__Impl_in_rule__XMultiplicativeExpression__Group_1__118992 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMultiplicativeExpression__RightOperandAssignment_1_1_in_rule__XMultiplicativeExpression__Group_1__1__Impl19019 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1_0__0__Impl_in_rule__XMultiplicativeExpression__Group_1_0__019053 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1_0_0__0_in_rule__XMultiplicativeExpression__Group_1_0__0__Impl19080 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1_0_0__0__Impl_in_rule__XMultiplicativeExpression__Group_1_0_0__019112 = new BitSet(new long[]{0x0000007800000000L});
+ public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1_0_0__1_in_rule__XMultiplicativeExpression__Group_1_0_0__019115 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1_0_0__1__Impl_in_rule__XMultiplicativeExpression__Group_1_0_0__119173 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1_in_rule__XMultiplicativeExpression__Group_1_0_0__1__Impl19200 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XUnaryOperation__Group_0__0__Impl_in_rule__XUnaryOperation__Group_0__019234 = new BitSet(new long[]{0x0000008600000000L});
+ public static final BitSet FOLLOW_rule__XUnaryOperation__Group_0__1_in_rule__XUnaryOperation__Group_0__019237 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XUnaryOperation__Group_0__1__Impl_in_rule__XUnaryOperation__Group_0__119295 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XUnaryOperation__Group_0__2_in_rule__XUnaryOperation__Group_0__119298 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XUnaryOperation__FeatureAssignment_0_1_in_rule__XUnaryOperation__Group_0__1__Impl19325 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XUnaryOperation__Group_0__2__Impl_in_rule__XUnaryOperation__Group_0__219355 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XUnaryOperation__OperandAssignment_0_2_in_rule__XUnaryOperation__Group_0__2__Impl19382 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCastedExpression__Group__0__Impl_in_rule__XCastedExpression__Group__019418 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
+ public static final BitSet FOLLOW_rule__XCastedExpression__Group__1_in_rule__XCastedExpression__Group__019421 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXMemberFeatureCall_in_rule__XCastedExpression__Group__0__Impl19448 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCastedExpression__Group__1__Impl_in_rule__XCastedExpression__Group__119477 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCastedExpression__Group_1__0_in_rule__XCastedExpression__Group__1__Impl19504 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000080L});
+ public static final BitSet FOLLOW_rule__XCastedExpression__Group_1__0__Impl_in_rule__XCastedExpression__Group_1__019539 = new BitSet(new long[]{0x0000000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XCastedExpression__Group_1__1_in_rule__XCastedExpression__Group_1__019542 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCastedExpression__Group_1_0__0_in_rule__XCastedExpression__Group_1__0__Impl19569 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCastedExpression__Group_1__1__Impl_in_rule__XCastedExpression__Group_1__119599 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCastedExpression__TypeAssignment_1_1_in_rule__XCastedExpression__Group_1__1__Impl19626 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCastedExpression__Group_1_0__0__Impl_in_rule__XCastedExpression__Group_1_0__019660 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCastedExpression__Group_1_0_0__0_in_rule__XCastedExpression__Group_1_0__0__Impl19687 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCastedExpression__Group_1_0_0__0__Impl_in_rule__XCastedExpression__Group_1_0_0__019719 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
+ public static final BitSet FOLLOW_rule__XCastedExpression__Group_1_0_0__1_in_rule__XCastedExpression__Group_1_0_0__019722 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCastedExpression__Group_1_0_0__1__Impl_in_rule__XCastedExpression__Group_1_0_0__119780 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_71_in_rule__XCastedExpression__Group_1_0_0__1__Impl19808 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group__0__Impl_in_rule__XMemberFeatureCall__Group__019843 = new BitSet(new long[]{0x0000010000000000L,0x0000000300000000L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group__1_in_rule__XMemberFeatureCall__Group__019846 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXPrimaryExpression_in_rule__XMemberFeatureCall__Group__0__Impl19873 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group__1__Impl_in_rule__XMemberFeatureCall__Group__119902 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Alternatives_1_in_rule__XMemberFeatureCall__Group__1__Impl19929 = new BitSet(new long[]{0x0000010000000002L,0x0000000300000000L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0__0__Impl_in_rule__XMemberFeatureCall__Group_1_0__019964 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0__1_in_rule__XMemberFeatureCall__Group_1_0__019967 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0__0_in_rule__XMemberFeatureCall__Group_1_0__0__Impl19994 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0__1__Impl_in_rule__XMemberFeatureCall__Group_1_0__120024 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__ValueAssignment_1_0_1_in_rule__XMemberFeatureCall__Group_1_0__1__Impl20051 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0__0__Impl_in_rule__XMemberFeatureCall__Group_1_0_0__020085 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__0_in_rule__XMemberFeatureCall__Group_1_0_0__0__Impl20112 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl_in_rule__XMemberFeatureCall__Group_1_0_0_0__020144 = new BitSet(new long[]{0x0000010000000000L,0x0000000100000000L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__1_in_rule__XMemberFeatureCall__Group_1_0_0_0__020147 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl_in_rule__XMemberFeatureCall__Group_1_0_0_0__120205 = new BitSet(new long[]{0x00003C0000000010L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__2_in_rule__XMemberFeatureCall__Group_1_0_0_0__120208 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Alternatives_1_0_0_0_1_in_rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl20235 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl_in_rule__XMemberFeatureCall__Group_1_0_0_0__220265 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__3_in_rule__XMemberFeatureCall__Group_1_0_0_0__220268 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2_in_rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl20295 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl_in_rule__XMemberFeatureCall__Group_1_0_0_0__320325 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpSingleAssign_in_rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl20352 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__0__Impl_in_rule__XMemberFeatureCall__Group_1_1__020389 = new BitSet(new long[]{0x00003C0002000010L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__1_in_rule__XMemberFeatureCall__Group_1_1__020392 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_0__0_in_rule__XMemberFeatureCall__Group_1_1__0__Impl20419 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__1__Impl_in_rule__XMemberFeatureCall__Group_1_1__120449 = new BitSet(new long[]{0x00003C0002000010L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__2_in_rule__XMemberFeatureCall__Group_1_1__120452 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__0_in_rule__XMemberFeatureCall__Group_1_1__1__Impl20479 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__2__Impl_in_rule__XMemberFeatureCall__Group_1_1__220510 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002400L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__3_in_rule__XMemberFeatureCall__Group_1_1__220513 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__FeatureAssignment_1_1_2_in_rule__XMemberFeatureCall__Group_1_1__2__Impl20540 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__3__Impl_in_rule__XMemberFeatureCall__Group_1_1__320570 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002400L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__4_in_rule__XMemberFeatureCall__Group_1_1__320573 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__0_in_rule__XMemberFeatureCall__Group_1_1__3__Impl20600 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1__4__Impl_in_rule__XMemberFeatureCall__Group_1_1__420631 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4_in_rule__XMemberFeatureCall__Group_1_1__4__Impl20658 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_0__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_0__020699 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_0_0__0_in_rule__XMemberFeatureCall__Group_1_1_0__0__Impl20726 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_0_0__020758 = new BitSet(new long[]{0x0000010000000000L,0x0000000300000000L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_0_0__1_in_rule__XMemberFeatureCall__Group_1_1_0_0__020761 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl_in_rule__XMemberFeatureCall__Group_1_1_0_0__120819 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Alternatives_1_1_0_0_1_in_rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl20846 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_1__020880 = new BitSet(new long[]{0x0000000020000010L,0x0000000040002000L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__1_in_rule__XMemberFeatureCall__Group_1_1_1__020883 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_25_in_rule__XMemberFeatureCall__Group_1_1_1__0__Impl20911 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__1__Impl_in_rule__XMemberFeatureCall__Group_1_1_1__120942 = new BitSet(new long[]{0x0800000001000000L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__2_in_rule__XMemberFeatureCall__Group_1_1_1__120945 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1_in_rule__XMemberFeatureCall__Group_1_1_1__1__Impl20972 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__2__Impl_in_rule__XMemberFeatureCall__Group_1_1_1__221002 = new BitSet(new long[]{0x0800000001000000L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__3_in_rule__XMemberFeatureCall__Group_1_1_1__221005 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1_2__0_in_rule__XMemberFeatureCall__Group_1_1_1__2__Impl21032 = new BitSet(new long[]{0x0800000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1__3__Impl_in_rule__XMemberFeatureCall__Group_1_1_1__321063 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_24_in_rule__XMemberFeatureCall__Group_1_1_1__3__Impl21091 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_1_2__021130 = new BitSet(new long[]{0x0000000020000010L,0x0000000040002000L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1_2__1_in_rule__XMemberFeatureCall__Group_1_1_1_2__021133 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_59_in_rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl21161 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl_in_rule__XMemberFeatureCall__Group_1_1_1_2__121192 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1_in_rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl21219 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_3__021253 = new BitSet(new long[]{0x0002FC86220001F0L,0x000000140FF96700L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__1_in_rule__XMemberFeatureCall__Group_1_1_3__021256 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0_in_rule__XMemberFeatureCall__Group_1_1_3__0__Impl21283 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__1__Impl_in_rule__XMemberFeatureCall__Group_1_1_3__121313 = new BitSet(new long[]{0x0002FC86220001F0L,0x000000140FF96700L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__2_in_rule__XMemberFeatureCall__Group_1_1_3__121316 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Alternatives_1_1_3_1_in_rule__XMemberFeatureCall__Group_1_1_3__1__Impl21343 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__2__Impl_in_rule__XMemberFeatureCall__Group_1_1_3__221374 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_72_in_rule__XMemberFeatureCall__Group_1_1_3__2__Impl21402 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_3_1_1__021439 = new BitSet(new long[]{0x0800000000000000L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1__1_in_rule__XMemberFeatureCall__Group_1_1_3_1_1__021442 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0_in_rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl21469 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl_in_rule__XMemberFeatureCall__Group_1_1_3_1_1__121499 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0_in_rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl21526 = new BitSet(new long[]{0x0800000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl_in_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__021561 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1_in_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__021564 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_59_in_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl21592 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl_in_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__121623 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1_in_rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl21650 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__Group__0__Impl_in_rule__XSetLiteral__Group__021684 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__Group__1_in_rule__XSetLiteral__Group__021687 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__Group__1__Impl_in_rule__XSetLiteral__Group__121745 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__Group__2_in_rule__XSetLiteral__Group__121748 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_73_in_rule__XSetLiteral__Group__1__Impl21776 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__Group__2__Impl_in_rule__XSetLiteral__Group__221807 = new BitSet(new long[]{0x0006FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__Group__3_in_rule__XSetLiteral__Group__221810 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rule__XSetLiteral__Group__2__Impl21838 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__Group__3__Impl_in_rule__XSetLiteral__Group__321869 = new BitSet(new long[]{0x0006FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__Group__4_in_rule__XSetLiteral__Group__321872 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__Group_3__0_in_rule__XSetLiteral__Group__3__Impl21899 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__Group__4__Impl_in_rule__XSetLiteral__Group__421930 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_rule__XSetLiteral__Group__4__Impl21958 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__Group_3__0__Impl_in_rule__XSetLiteral__Group_3__021999 = new BitSet(new long[]{0x0800000000000000L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__Group_3__1_in_rule__XSetLiteral__Group_3__022002 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__ElementsAssignment_3_0_in_rule__XSetLiteral__Group_3__0__Impl22029 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__Group_3__1__Impl_in_rule__XSetLiteral__Group_3__122059 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__Group_3_1__0_in_rule__XSetLiteral__Group_3__1__Impl22086 = new BitSet(new long[]{0x0800000000000002L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__Group_3_1__0__Impl_in_rule__XSetLiteral__Group_3_1__022121 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__Group_3_1__1_in_rule__XSetLiteral__Group_3_1__022124 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_59_in_rule__XSetLiteral__Group_3_1__0__Impl22152 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__Group_3_1__1__Impl_in_rule__XSetLiteral__Group_3_1__122183 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSetLiteral__ElementsAssignment_3_1_1_in_rule__XSetLiteral__Group_3_1__1__Impl22210 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XListLiteral__Group__0__Impl_in_rule__XListLiteral__Group__022244 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+ public static final BitSet FOLLOW_rule__XListLiteral__Group__1_in_rule__XListLiteral__Group__022247 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XListLiteral__Group__1__Impl_in_rule__XListLiteral__Group__122305 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+ public static final BitSet FOLLOW_rule__XListLiteral__Group__2_in_rule__XListLiteral__Group__122308 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_73_in_rule__XListLiteral__Group__1__Impl22336 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XListLiteral__Group__2__Impl_in_rule__XListLiteral__Group__222367 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96E00L});
+ public static final BitSet FOLLOW_rule__XListLiteral__Group__3_in_rule__XListLiteral__Group__222370 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_74_in_rule__XListLiteral__Group__2__Impl22398 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XListLiteral__Group__3__Impl_in_rule__XListLiteral__Group__322429 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96E00L});
+ public static final BitSet FOLLOW_rule__XListLiteral__Group__4_in_rule__XListLiteral__Group__322432 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XListLiteral__Group_3__0_in_rule__XListLiteral__Group__3__Impl22459 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XListLiteral__Group__4__Impl_in_rule__XListLiteral__Group__422490 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_75_in_rule__XListLiteral__Group__4__Impl22518 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XListLiteral__Group_3__0__Impl_in_rule__XListLiteral__Group_3__022559 = new BitSet(new long[]{0x0800000000000000L});
+ public static final BitSet FOLLOW_rule__XListLiteral__Group_3__1_in_rule__XListLiteral__Group_3__022562 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XListLiteral__ElementsAssignment_3_0_in_rule__XListLiteral__Group_3__0__Impl22589 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XListLiteral__Group_3__1__Impl_in_rule__XListLiteral__Group_3__122619 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XListLiteral__Group_3_1__0_in_rule__XListLiteral__Group_3__1__Impl22646 = new BitSet(new long[]{0x0800000000000002L});
+ public static final BitSet FOLLOW_rule__XListLiteral__Group_3_1__0__Impl_in_rule__XListLiteral__Group_3_1__022681 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XListLiteral__Group_3_1__1_in_rule__XListLiteral__Group_3_1__022684 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_59_in_rule__XListLiteral__Group_3_1__0__Impl22712 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XListLiteral__Group_3_1__1__Impl_in_rule__XListLiteral__Group_3_1__122743 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XListLiteral__ElementsAssignment_3_1_1_in_rule__XListLiteral__Group_3_1__1__Impl22770 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group__0__Impl_in_rule__XClosure__Group__022804 = new BitSet(new long[]{0x0002FE86220001F0L,0x0000001C0FF96600L});
+ public static final BitSet FOLLOW_rule__XClosure__Group__1_in_rule__XClosure__Group__022807 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_0__0_in_rule__XClosure__Group__0__Impl22834 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group__1__Impl_in_rule__XClosure__Group__122864 = new BitSet(new long[]{0x0002FE86220001F0L,0x0000001C0FF96600L});
+ public static final BitSet FOLLOW_rule__XClosure__Group__2_in_rule__XClosure__Group__122867 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_1__0_in_rule__XClosure__Group__1__Impl22894 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group__2__Impl_in_rule__XClosure__Group__222925 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
+ public static final BitSet FOLLOW_rule__XClosure__Group__3_in_rule__XClosure__Group__222928 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__ExpressionAssignment_2_in_rule__XClosure__Group__2__Impl22955 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group__3__Impl_in_rule__XClosure__Group__322985 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_75_in_rule__XClosure__Group__3__Impl23013 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_0__0__Impl_in_rule__XClosure__Group_0__023052 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_0_0__0_in_rule__XClosure__Group_0__0__Impl23079 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_0_0__0__Impl_in_rule__XClosure__Group_0_0__023111 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_0_0__1_in_rule__XClosure__Group_0_0__023114 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_0_0__1__Impl_in_rule__XClosure__Group_0_0__123172 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_74_in_rule__XClosure__Group_0_0__1__Impl23200 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_1__0__Impl_in_rule__XClosure__Group_1__023235 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_1_0__0_in_rule__XClosure__Group_1__0__Impl23262 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_1_0__0__Impl_in_rule__XClosure__Group_1_0__023294 = new BitSet(new long[]{0x0000000020000010L,0x0000000400002000L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_1_0__1_in_rule__XClosure__Group_1_0__023297 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_1_0_0__0_in_rule__XClosure__Group_1_0__0__Impl23324 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_1_0__1__Impl_in_rule__XClosure__Group_1_0__123355 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__ExplicitSyntaxAssignment_1_0_1_in_rule__XClosure__Group_1_0__1__Impl23382 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_1_0_0__0__Impl_in_rule__XClosure__Group_1_0_0__023416 = new BitSet(new long[]{0x0800000000000000L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_1_0_0__1_in_rule__XClosure__Group_1_0_0__023419 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0_in_rule__XClosure__Group_1_0_0__0__Impl23446 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_1_0_0__1__Impl_in_rule__XClosure__Group_1_0_0__123476 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_1_0_0_1__0_in_rule__XClosure__Group_1_0_0__1__Impl23503 = new BitSet(new long[]{0x0800000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_1_0_0_1__0__Impl_in_rule__XClosure__Group_1_0_0_1__023538 = new BitSet(new long[]{0x0000000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_1_0_0_1__1_in_rule__XClosure__Group_1_0_0_1__023541 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_59_in_rule__XClosure__Group_1_0_0_1__0__Impl23569 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_1_0_0_1__1__Impl_in_rule__XClosure__Group_1_0_0_1__123600 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1_in_rule__XClosure__Group_1_0_0_1__1__Impl23627 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XExpressionInClosure__Group__0__Impl_in_rule__XExpressionInClosure__Group__023661 = new BitSet(new long[]{0x0002FE86220001F0L,0x0000001C0FF96600L});
+ public static final BitSet FOLLOW_rule__XExpressionInClosure__Group__1_in_rule__XExpressionInClosure__Group__023664 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XExpressionInClosure__Group__1__Impl_in_rule__XExpressionInClosure__Group__123722 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XExpressionInClosure__Group_1__0_in_rule__XExpressionInClosure__Group__1__Impl23749 = new BitSet(new long[]{0x0002FE86020001F2L,0x000000180FF96600L});
+ public static final BitSet FOLLOW_rule__XExpressionInClosure__Group_1__0__Impl_in_rule__XExpressionInClosure__Group_1__023784 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
+ public static final BitSet FOLLOW_rule__XExpressionInClosure__Group_1__1_in_rule__XExpressionInClosure__Group_1__023787 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XExpressionInClosure__ExpressionsAssignment_1_0_in_rule__XExpressionInClosure__Group_1__0__Impl23814 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XExpressionInClosure__Group_1__1__Impl_in_rule__XExpressionInClosure__Group_1__123844 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_76_in_rule__XExpressionInClosure__Group_1__1__Impl23873 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group__0__Impl_in_rule__XShortClosure__Group__023910 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group__1_in_rule__XShortClosure__Group__023913 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group_0__0_in_rule__XShortClosure__Group__0__Impl23940 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group__1__Impl_in_rule__XShortClosure__Group__123970 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__ExpressionAssignment_1_in_rule__XShortClosure__Group__1__Impl23997 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group_0__0__Impl_in_rule__XShortClosure__Group_0__024031 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0__0_in_rule__XShortClosure__Group_0__0__Impl24058 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0__0__Impl_in_rule__XShortClosure__Group_0_0__024090 = new BitSet(new long[]{0x0000000020000010L,0x0000000400002000L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0__1_in_rule__XShortClosure__Group_0_0__024093 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0__1__Impl_in_rule__XShortClosure__Group_0_0__124151 = new BitSet(new long[]{0x0000000020000010L,0x0000000400002000L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0__2_in_rule__XShortClosure__Group_0_0__124154 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0_1__0_in_rule__XShortClosure__Group_0_0__1__Impl24181 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0__2__Impl_in_rule__XShortClosure__Group_0_0__224212 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2_in_rule__XShortClosure__Group_0_0__2__Impl24239 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0_1__0__Impl_in_rule__XShortClosure__Group_0_0_1__024275 = new BitSet(new long[]{0x0800000000000000L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0_1__1_in_rule__XShortClosure__Group_0_0_1__024278 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0_in_rule__XShortClosure__Group_0_0_1__0__Impl24305 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0_1__1__Impl_in_rule__XShortClosure__Group_0_0_1__124335 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0_1_1__0_in_rule__XShortClosure__Group_0_0_1__1__Impl24362 = new BitSet(new long[]{0x0800000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0_1_1__0__Impl_in_rule__XShortClosure__Group_0_0_1_1__024397 = new BitSet(new long[]{0x0000000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0_1_1__1_in_rule__XShortClosure__Group_0_0_1_1__024400 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_59_in_rule__XShortClosure__Group_0_0_1_1__0__Impl24428 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__Group_0_0_1_1__1__Impl_in_rule__XShortClosure__Group_0_0_1_1__124459 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1_in_rule__XShortClosure__Group_0_0_1_1__1__Impl24486 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XParenthesizedExpression__Group__0__Impl_in_rule__XParenthesizedExpression__Group__024520 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XParenthesizedExpression__Group__1_in_rule__XParenthesizedExpression__Group__024523 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_77_in_rule__XParenthesizedExpression__Group__0__Impl24551 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XParenthesizedExpression__Group__1__Impl_in_rule__XParenthesizedExpression__Group__124582 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_rule__XParenthesizedExpression__Group__2_in_rule__XParenthesizedExpression__Group__124585 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XParenthesizedExpression__Group__1__Impl24612 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XParenthesizedExpression__Group__2__Impl_in_rule__XParenthesizedExpression__Group__224641 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_72_in_rule__XParenthesizedExpression__Group__2__Impl24669 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group__0__Impl_in_rule__XIfExpression__Group__024706 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group__1_in_rule__XIfExpression__Group__024709 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group__1__Impl_in_rule__XIfExpression__Group__124767 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group__2_in_rule__XIfExpression__Group__124770 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_78_in_rule__XIfExpression__Group__1__Impl24798 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group__2__Impl_in_rule__XIfExpression__Group__224829 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group__3_in_rule__XIfExpression__Group__224832 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_77_in_rule__XIfExpression__Group__2__Impl24860 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group__3__Impl_in_rule__XIfExpression__Group__324891 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group__4_in_rule__XIfExpression__Group__324894 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XIfExpression__IfAssignment_3_in_rule__XIfExpression__Group__3__Impl24921 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group__4__Impl_in_rule__XIfExpression__Group__424951 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group__5_in_rule__XIfExpression__Group__424954 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_72_in_rule__XIfExpression__Group__4__Impl24982 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group__5__Impl_in_rule__XIfExpression__Group__525013 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group__6_in_rule__XIfExpression__Group__525016 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XIfExpression__ThenAssignment_5_in_rule__XIfExpression__Group__5__Impl25043 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group__6__Impl_in_rule__XIfExpression__Group__625073 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group_6__0_in_rule__XIfExpression__Group__6__Impl25100 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group_6__0__Impl_in_rule__XIfExpression__Group_6__025145 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group_6__1_in_rule__XIfExpression__Group_6__025148 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_79_in_rule__XIfExpression__Group_6__0__Impl25177 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group_6__1__Impl_in_rule__XIfExpression__Group_6__125209 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XIfExpression__ElseAssignment_6_1_in_rule__XIfExpression__Group_6__1__Impl25236 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group__0__Impl_in_rule__XSwitchExpression__Group__025270 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group__1_in_rule__XSwitchExpression__Group__025273 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group__1__Impl_in_rule__XSwitchExpression__Group__125331 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group__2_in_rule__XSwitchExpression__Group__125334 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_80_in_rule__XSwitchExpression__Group__1__Impl25362 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group__2__Impl_in_rule__XSwitchExpression__Group__225393 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group__3_in_rule__XSwitchExpression__Group__225396 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Alternatives_2_in_rule__XSwitchExpression__Group__2__Impl25423 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group__3__Impl_in_rule__XSwitchExpression__Group__325453 = new BitSet(new long[]{0x0100000020000010L,0x0000000000042000L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group__4_in_rule__XSwitchExpression__Group__325456 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rule__XSwitchExpression__Group__3__Impl25484 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group__4__Impl_in_rule__XSwitchExpression__Group__425515 = new BitSet(new long[]{0x0004000000000000L,0x0000000000020000L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group__5_in_rule__XSwitchExpression__Group__425518 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__CasesAssignment_4_in_rule__XSwitchExpression__Group__4__Impl25547 = new BitSet(new long[]{0x0100000020000012L,0x0000000000042000L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__CasesAssignment_4_in_rule__XSwitchExpression__Group__4__Impl25559 = new BitSet(new long[]{0x0100000020000012L,0x0000000000042000L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group__5__Impl_in_rule__XSwitchExpression__Group__525592 = new BitSet(new long[]{0x0004000000000000L,0x0000000000020000L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group__6_in_rule__XSwitchExpression__Group__525595 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_5__0_in_rule__XSwitchExpression__Group__5__Impl25622 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group__6__Impl_in_rule__XSwitchExpression__Group__625653 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_rule__XSwitchExpression__Group__6__Impl25681 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0__0__Impl_in_rule__XSwitchExpression__Group_2_0__025726 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0__1_in_rule__XSwitchExpression__Group_2_0__025729 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0_0__0_in_rule__XSwitchExpression__Group_2_0__0__Impl25756 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0__1__Impl_in_rule__XSwitchExpression__Group_2_0__125787 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__SwitchAssignment_2_0_1_in_rule__XSwitchExpression__Group_2_0__1__Impl25814 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0_0__0__Impl_in_rule__XSwitchExpression__Group_2_0_0__025848 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0_0_0__0_in_rule__XSwitchExpression__Group_2_0_0__0__Impl25875 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0_0_0__0__Impl_in_rule__XSwitchExpression__Group_2_0_0_0__025907 = new BitSet(new long[]{0x0100000000000000L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0_0_0__1_in_rule__XSwitchExpression__Group_2_0_0_0__025910 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_0_in_rule__XSwitchExpression__Group_2_0_0_0__0__Impl25937 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_0_0_0__1__Impl_in_rule__XSwitchExpression__Group_2_0_0_0__125967 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_56_in_rule__XSwitchExpression__Group_2_0_0_0__1__Impl25995 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1__0__Impl_in_rule__XSwitchExpression__Group_2_1__026030 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1__1_in_rule__XSwitchExpression__Group_2_1__026033 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1_0__0_in_rule__XSwitchExpression__Group_2_1__0__Impl26060 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1__1__Impl_in_rule__XSwitchExpression__Group_2_1__126090 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1__2_in_rule__XSwitchExpression__Group_2_1__126093 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__SwitchAssignment_2_1_1_in_rule__XSwitchExpression__Group_2_1__1__Impl26120 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1__2__Impl_in_rule__XSwitchExpression__Group_2_1__226150 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_72_in_rule__XSwitchExpression__Group_2_1__2__Impl26178 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1_0__0__Impl_in_rule__XSwitchExpression__Group_2_1_0__026215 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1_0_0__0_in_rule__XSwitchExpression__Group_2_1_0__0__Impl26242 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1_0_0__0__Impl_in_rule__XSwitchExpression__Group_2_1_0_0__026274 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1_0_0__1_in_rule__XSwitchExpression__Group_2_1_0_0__026277 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_77_in_rule__XSwitchExpression__Group_2_1_0_0__0__Impl26305 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1_0_0__1__Impl_in_rule__XSwitchExpression__Group_2_1_0_0__126336 = new BitSet(new long[]{0x0100000000000000L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1_0_0__2_in_rule__XSwitchExpression__Group_2_1_0_0__126339 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_1_in_rule__XSwitchExpression__Group_2_1_0_0__1__Impl26366 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_2_1_0_0__2__Impl_in_rule__XSwitchExpression__Group_2_1_0_0__226396 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_56_in_rule__XSwitchExpression__Group_2_1_0_0__2__Impl26424 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_5__0__Impl_in_rule__XSwitchExpression__Group_5__026461 = new BitSet(new long[]{0x0100000000000000L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_5__1_in_rule__XSwitchExpression__Group_5__026464 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_81_in_rule__XSwitchExpression__Group_5__0__Impl26492 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_5__1__Impl_in_rule__XSwitchExpression__Group_5__126523 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_5__2_in_rule__XSwitchExpression__Group_5__126526 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_56_in_rule__XSwitchExpression__Group_5__1__Impl26554 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__Group_5__2__Impl_in_rule__XSwitchExpression__Group_5__226585 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XSwitchExpression__DefaultAssignment_5_2_in_rule__XSwitchExpression__Group_5__2__Impl26612 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCasePart__Group__0__Impl_in_rule__XCasePart__Group__026648 = new BitSet(new long[]{0x0100000020000010L,0x0000000000042000L});
+ public static final BitSet FOLLOW_rule__XCasePart__Group__1_in_rule__XCasePart__Group__026651 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCasePart__TypeGuardAssignment_0_in_rule__XCasePart__Group__0__Impl26678 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCasePart__Group__1__Impl_in_rule__XCasePart__Group__126709 = new BitSet(new long[]{0x0100000020000010L,0x0000000000042000L});
+ public static final BitSet FOLLOW_rule__XCasePart__Group__2_in_rule__XCasePart__Group__126712 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCasePart__Group_1__0_in_rule__XCasePart__Group__1__Impl26739 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCasePart__Group__2__Impl_in_rule__XCasePart__Group__226770 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XCasePart__Group__3_in_rule__XCasePart__Group__226773 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_56_in_rule__XCasePart__Group__2__Impl26801 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCasePart__Group__3__Impl_in_rule__XCasePart__Group__326832 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCasePart__ThenAssignment_3_in_rule__XCasePart__Group__3__Impl26859 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCasePart__Group_1__0__Impl_in_rule__XCasePart__Group_1__026897 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XCasePart__Group_1__1_in_rule__XCasePart__Group_1__026900 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_82_in_rule__XCasePart__Group_1__0__Impl26928 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCasePart__Group_1__1__Impl_in_rule__XCasePart__Group_1__126959 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCasePart__CaseAssignment_1_1_in_rule__XCasePart__Group_1__1__Impl26986 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__Group__0__Impl_in_rule__XForLoopExpression__Group__027020 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__Group__1_in_rule__XForLoopExpression__Group__027023 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__Group__1__Impl_in_rule__XForLoopExpression__Group__127081 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__Group__2_in_rule__XForLoopExpression__Group__127084 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_83_in_rule__XForLoopExpression__Group__1__Impl27112 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__Group__2__Impl_in_rule__XForLoopExpression__Group__227143 = new BitSet(new long[]{0x0000000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__Group__3_in_rule__XForLoopExpression__Group__227146 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_77_in_rule__XForLoopExpression__Group__2__Impl27174 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__Group__3__Impl_in_rule__XForLoopExpression__Group__327205 = new BitSet(new long[]{0x0100000000000000L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__Group__4_in_rule__XForLoopExpression__Group__327208 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__DeclaredParamAssignment_3_in_rule__XForLoopExpression__Group__3__Impl27235 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__Group__4__Impl_in_rule__XForLoopExpression__Group__427265 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__Group__5_in_rule__XForLoopExpression__Group__427268 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_56_in_rule__XForLoopExpression__Group__4__Impl27296 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__Group__5__Impl_in_rule__XForLoopExpression__Group__527327 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__Group__6_in_rule__XForLoopExpression__Group__527330 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__ForExpressionAssignment_5_in_rule__XForLoopExpression__Group__5__Impl27357 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__Group__6__Impl_in_rule__XForLoopExpression__Group__627387 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__Group__7_in_rule__XForLoopExpression__Group__627390 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_72_in_rule__XForLoopExpression__Group__6__Impl27418 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__Group__7__Impl_in_rule__XForLoopExpression__Group__727449 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XForLoopExpression__EachExpressionAssignment_7_in_rule__XForLoopExpression__Group__7__Impl27476 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XWhileExpression__Group__0__Impl_in_rule__XWhileExpression__Group__027522 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+ public static final BitSet FOLLOW_rule__XWhileExpression__Group__1_in_rule__XWhileExpression__Group__027525 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XWhileExpression__Group__1__Impl_in_rule__XWhileExpression__Group__127583 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XWhileExpression__Group__2_in_rule__XWhileExpression__Group__127586 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_84_in_rule__XWhileExpression__Group__1__Impl27614 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XWhileExpression__Group__2__Impl_in_rule__XWhileExpression__Group__227645 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XWhileExpression__Group__3_in_rule__XWhileExpression__Group__227648 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_77_in_rule__XWhileExpression__Group__2__Impl27676 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XWhileExpression__Group__3__Impl_in_rule__XWhileExpression__Group__327707 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_rule__XWhileExpression__Group__4_in_rule__XWhileExpression__Group__327710 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XWhileExpression__PredicateAssignment_3_in_rule__XWhileExpression__Group__3__Impl27737 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XWhileExpression__Group__4__Impl_in_rule__XWhileExpression__Group__427767 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XWhileExpression__Group__5_in_rule__XWhileExpression__Group__427770 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_72_in_rule__XWhileExpression__Group__4__Impl27798 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XWhileExpression__Group__5__Impl_in_rule__XWhileExpression__Group__527829 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XWhileExpression__BodyAssignment_5_in_rule__XWhileExpression__Group__5__Impl27856 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__0__Impl_in_rule__XDoWhileExpression__Group__027898 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+ public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__1_in_rule__XDoWhileExpression__Group__027901 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__1__Impl_in_rule__XDoWhileExpression__Group__127959 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__2_in_rule__XDoWhileExpression__Group__127962 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_85_in_rule__XDoWhileExpression__Group__1__Impl27990 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__2__Impl_in_rule__XDoWhileExpression__Group__228021 = new BitSet(new long[]{0x0000000000000000L,0x0000000000100000L});
+ public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__3_in_rule__XDoWhileExpression__Group__228024 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XDoWhileExpression__BodyAssignment_2_in_rule__XDoWhileExpression__Group__2__Impl28051 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__3__Impl_in_rule__XDoWhileExpression__Group__328081 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__4_in_rule__XDoWhileExpression__Group__328084 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_84_in_rule__XDoWhileExpression__Group__3__Impl28112 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__4__Impl_in_rule__XDoWhileExpression__Group__428143 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__5_in_rule__XDoWhileExpression__Group__428146 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_77_in_rule__XDoWhileExpression__Group__4__Impl28174 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__5__Impl_in_rule__XDoWhileExpression__Group__528205 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__6_in_rule__XDoWhileExpression__Group__528208 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XDoWhileExpression__PredicateAssignment_5_in_rule__XDoWhileExpression__Group__5__Impl28235 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XDoWhileExpression__Group__6__Impl_in_rule__XDoWhileExpression__Group__628265 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_72_in_rule__XDoWhileExpression__Group__6__Impl28293 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XBlockExpression__Group__0__Impl_in_rule__XBlockExpression__Group__028338 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_rule__XBlockExpression__Group__1_in_rule__XBlockExpression__Group__028341 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XBlockExpression__Group__1__Impl_in_rule__XBlockExpression__Group__128399 = new BitSet(new long[]{0x0006FE86020001F0L,0x000000180FF96600L});
+ public static final BitSet FOLLOW_rule__XBlockExpression__Group__2_in_rule__XBlockExpression__Group__128402 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_rule__XBlockExpression__Group__1__Impl28430 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XBlockExpression__Group__2__Impl_in_rule__XBlockExpression__Group__228461 = new BitSet(new long[]{0x0006FE86020001F0L,0x000000180FF96600L});
+ public static final BitSet FOLLOW_rule__XBlockExpression__Group__3_in_rule__XBlockExpression__Group__228464 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XBlockExpression__Group_2__0_in_rule__XBlockExpression__Group__2__Impl28491 = new BitSet(new long[]{0x0002FE86020001F2L,0x000000180FF96600L});
+ public static final BitSet FOLLOW_rule__XBlockExpression__Group__3__Impl_in_rule__XBlockExpression__Group__328522 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_rule__XBlockExpression__Group__3__Impl28550 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XBlockExpression__Group_2__0__Impl_in_rule__XBlockExpression__Group_2__028589 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
+ public static final BitSet FOLLOW_rule__XBlockExpression__Group_2__1_in_rule__XBlockExpression__Group_2__028592 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XBlockExpression__ExpressionsAssignment_2_0_in_rule__XBlockExpression__Group_2__0__Impl28619 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XBlockExpression__Group_2__1__Impl_in_rule__XBlockExpression__Group_2__128649 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_76_in_rule__XBlockExpression__Group_2__1__Impl28678 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group__0__Impl_in_rule__XVariableDeclaration__Group__028715 = new BitSet(new long[]{0x0000020000000000L,0x0000000800000000L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group__1_in_rule__XVariableDeclaration__Group__028718 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group__1__Impl_in_rule__XVariableDeclaration__Group__128776 = new BitSet(new long[]{0x0000000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group__2_in_rule__XVariableDeclaration__Group__128779 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Alternatives_1_in_rule__XVariableDeclaration__Group__1__Impl28806 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group__2__Impl_in_rule__XVariableDeclaration__Group__228836 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group__3_in_rule__XVariableDeclaration__Group__228839 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Alternatives_2_in_rule__XVariableDeclaration__Group__2__Impl28866 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group__3__Impl_in_rule__XVariableDeclaration__Group__328896 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group_3__0_in_rule__XVariableDeclaration__Group__3__Impl28923 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group_2_0__0__Impl_in_rule__XVariableDeclaration__Group_2_0__028962 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group_2_0_0__0_in_rule__XVariableDeclaration__Group_2_0__0__Impl28989 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group_2_0_0__0__Impl_in_rule__XVariableDeclaration__Group_2_0_0__029021 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group_2_0_0__1_in_rule__XVariableDeclaration__Group_2_0_0__029024 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__TypeAssignment_2_0_0_0_in_rule__XVariableDeclaration__Group_2_0_0__0__Impl29051 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group_2_0_0__1__Impl_in_rule__XVariableDeclaration__Group_2_0_0__129081 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__NameAssignment_2_0_0_1_in_rule__XVariableDeclaration__Group_2_0_0__1__Impl29108 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group_3__0__Impl_in_rule__XVariableDeclaration__Group_3__029142 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group_3__1_in_rule__XVariableDeclaration__Group_3__029145 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_13_in_rule__XVariableDeclaration__Group_3__0__Impl29173 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group_3__1__Impl_in_rule__XVariableDeclaration__Group_3__129204 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__RightAssignment_3_1_in_rule__XVariableDeclaration__Group_3__1__Impl29231 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmFormalParameter__Group__0__Impl_in_rule__JvmFormalParameter__Group__029265 = new BitSet(new long[]{0x0000000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__JvmFormalParameter__Group__1_in_rule__JvmFormalParameter__Group__029268 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmFormalParameter__ParameterTypeAssignment_0_in_rule__JvmFormalParameter__Group__0__Impl29295 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmFormalParameter__Group__1__Impl_in_rule__JvmFormalParameter__Group__129326 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmFormalParameter__NameAssignment_1_in_rule__JvmFormalParameter__Group__1__Impl29353 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FullJvmFormalParameter__Group__0__Impl_in_rule__FullJvmFormalParameter__Group__029387 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__FullJvmFormalParameter__Group__1_in_rule__FullJvmFormalParameter__Group__029390 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FullJvmFormalParameter__ParameterTypeAssignment_0_in_rule__FullJvmFormalParameter__Group__0__Impl29417 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FullJvmFormalParameter__Group__1__Impl_in_rule__FullJvmFormalParameter__Group__129447 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__FullJvmFormalParameter__NameAssignment_1_in_rule__FullJvmFormalParameter__Group__1__Impl29474 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group__0__Impl_in_rule__XFeatureCall__Group__029508 = new BitSet(new long[]{0x00007C0002000010L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group__1_in_rule__XFeatureCall__Group__029511 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group__1__Impl_in_rule__XFeatureCall__Group__129569 = new BitSet(new long[]{0x00007C0002000010L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group__2_in_rule__XFeatureCall__Group__129572 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_1__0_in_rule__XFeatureCall__Group__1__Impl29599 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group__2__Impl_in_rule__XFeatureCall__Group__229630 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002400L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group__3_in_rule__XFeatureCall__Group__229633 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__FeatureAssignment_2_in_rule__XFeatureCall__Group__2__Impl29660 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group__3__Impl_in_rule__XFeatureCall__Group__329690 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002400L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group__4_in_rule__XFeatureCall__Group__329693 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_3__0_in_rule__XFeatureCall__Group__3__Impl29720 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group__4__Impl_in_rule__XFeatureCall__Group__429751 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__FeatureCallArgumentsAssignment_4_in_rule__XFeatureCall__Group__4__Impl29778 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_1__0__Impl_in_rule__XFeatureCall__Group_1__029819 = new BitSet(new long[]{0x0000000020000010L,0x0000000040002000L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_1__1_in_rule__XFeatureCall__Group_1__029822 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_25_in_rule__XFeatureCall__Group_1__0__Impl29850 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_1__1__Impl_in_rule__XFeatureCall__Group_1__129881 = new BitSet(new long[]{0x0800000001000000L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_1__2_in_rule__XFeatureCall__Group_1__129884 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__TypeArgumentsAssignment_1_1_in_rule__XFeatureCall__Group_1__1__Impl29911 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_1__2__Impl_in_rule__XFeatureCall__Group_1__229941 = new BitSet(new long[]{0x0800000001000000L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_1__3_in_rule__XFeatureCall__Group_1__229944 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_1_2__0_in_rule__XFeatureCall__Group_1__2__Impl29971 = new BitSet(new long[]{0x0800000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_1__3__Impl_in_rule__XFeatureCall__Group_1__330002 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_24_in_rule__XFeatureCall__Group_1__3__Impl30030 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_1_2__0__Impl_in_rule__XFeatureCall__Group_1_2__030069 = new BitSet(new long[]{0x0000000020000010L,0x0000000040002000L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_1_2__1_in_rule__XFeatureCall__Group_1_2__030072 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_59_in_rule__XFeatureCall__Group_1_2__0__Impl30100 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_1_2__1__Impl_in_rule__XFeatureCall__Group_1_2__130131 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__TypeArgumentsAssignment_1_2_1_in_rule__XFeatureCall__Group_1_2__1__Impl30158 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_3__0__Impl_in_rule__XFeatureCall__Group_3__030192 = new BitSet(new long[]{0x0002FC86220001F0L,0x000000140FF96700L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_3__1_in_rule__XFeatureCall__Group_3__030195 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__ExplicitOperationCallAssignment_3_0_in_rule__XFeatureCall__Group_3__0__Impl30222 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_3__1__Impl_in_rule__XFeatureCall__Group_3__130252 = new BitSet(new long[]{0x0002FC86220001F0L,0x000000140FF96700L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_3__2_in_rule__XFeatureCall__Group_3__130255 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Alternatives_3_1_in_rule__XFeatureCall__Group_3__1__Impl30282 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_3__2__Impl_in_rule__XFeatureCall__Group_3__230313 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_72_in_rule__XFeatureCall__Group_3__2__Impl30341 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_3_1_1__0__Impl_in_rule__XFeatureCall__Group_3_1_1__030378 = new BitSet(new long[]{0x0800000000000000L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_3_1_1__1_in_rule__XFeatureCall__Group_3_1_1__030381 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0_in_rule__XFeatureCall__Group_3_1_1__0__Impl30408 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_3_1_1__1__Impl_in_rule__XFeatureCall__Group_3_1_1__130438 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_3_1_1_1__0_in_rule__XFeatureCall__Group_3_1_1__1__Impl30465 = new BitSet(new long[]{0x0800000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_3_1_1_1__0__Impl_in_rule__XFeatureCall__Group_3_1_1_1__030500 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_3_1_1_1__1_in_rule__XFeatureCall__Group_3_1_1_1__030503 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_59_in_rule__XFeatureCall__Group_3_1_1_1__0__Impl30531 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_3_1_1_1__1__Impl_in_rule__XFeatureCall__Group_3_1_1_1__130562 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1_in_rule__XFeatureCall__Group_3_1_1_1__1__Impl30589 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group__0__Impl_in_rule__XConstructorCall__Group__030623 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group__1_in_rule__XConstructorCall__Group__030626 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group__1__Impl_in_rule__XConstructorCall__Group__130684 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group__2_in_rule__XConstructorCall__Group__130687 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_86_in_rule__XConstructorCall__Group__1__Impl30715 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group__2__Impl_in_rule__XConstructorCall__Group__230746 = new BitSet(new long[]{0x0000000002000000L,0x0000000000002400L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group__3_in_rule__XConstructorCall__Group__230749 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__ConstructorAssignment_2_in_rule__XConstructorCall__Group__2__Impl30776 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group__3__Impl_in_rule__XConstructorCall__Group__330806 = new BitSet(new long[]{0x0000000002000000L,0x0000000000002400L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group__4_in_rule__XConstructorCall__Group__330809 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_3__0_in_rule__XConstructorCall__Group__3__Impl30836 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group__4__Impl_in_rule__XConstructorCall__Group__430867 = new BitSet(new long[]{0x0000000002000000L,0x0000000000002400L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group__5_in_rule__XConstructorCall__Group__430870 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_4__0_in_rule__XConstructorCall__Group__4__Impl30897 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group__5__Impl_in_rule__XConstructorCall__Group__530928 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__ArgumentsAssignment_5_in_rule__XConstructorCall__Group__5__Impl30955 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_3__0__Impl_in_rule__XConstructorCall__Group_3__030998 = new BitSet(new long[]{0x0000000020000010L,0x0000000040002000L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_3__1_in_rule__XConstructorCall__Group_3__031001 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_25_in_rule__XConstructorCall__Group_3__0__Impl31030 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_3__1__Impl_in_rule__XConstructorCall__Group_3__131062 = new BitSet(new long[]{0x0800000001000000L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_3__2_in_rule__XConstructorCall__Group_3__131065 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__TypeArgumentsAssignment_3_1_in_rule__XConstructorCall__Group_3__1__Impl31092 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_3__2__Impl_in_rule__XConstructorCall__Group_3__231122 = new BitSet(new long[]{0x0800000001000000L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_3__3_in_rule__XConstructorCall__Group_3__231125 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_3_2__0_in_rule__XConstructorCall__Group_3__2__Impl31152 = new BitSet(new long[]{0x0800000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_3__3__Impl_in_rule__XConstructorCall__Group_3__331183 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_24_in_rule__XConstructorCall__Group_3__3__Impl31211 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_3_2__0__Impl_in_rule__XConstructorCall__Group_3_2__031250 = new BitSet(new long[]{0x0000000020000010L,0x0000000040002000L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_3_2__1_in_rule__XConstructorCall__Group_3_2__031253 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_59_in_rule__XConstructorCall__Group_3_2__0__Impl31281 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_3_2__1__Impl_in_rule__XConstructorCall__Group_3_2__131312 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__TypeArgumentsAssignment_3_2_1_in_rule__XConstructorCall__Group_3_2__1__Impl31339 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_4__0__Impl_in_rule__XConstructorCall__Group_4__031373 = new BitSet(new long[]{0x0002FC86220001F0L,0x000000140FF96700L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_4__1_in_rule__XConstructorCall__Group_4__031376 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_77_in_rule__XConstructorCall__Group_4__0__Impl31405 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_4__1__Impl_in_rule__XConstructorCall__Group_4__131437 = new BitSet(new long[]{0x0002FC86220001F0L,0x000000140FF96700L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_4__2_in_rule__XConstructorCall__Group_4__131440 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Alternatives_4_1_in_rule__XConstructorCall__Group_4__1__Impl31467 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_4__2__Impl_in_rule__XConstructorCall__Group_4__231498 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_72_in_rule__XConstructorCall__Group_4__2__Impl31526 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_4_1_1__0__Impl_in_rule__XConstructorCall__Group_4_1_1__031563 = new BitSet(new long[]{0x0800000000000000L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_4_1_1__1_in_rule__XConstructorCall__Group_4_1_1__031566 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__ArgumentsAssignment_4_1_1_0_in_rule__XConstructorCall__Group_4_1_1__0__Impl31593 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_4_1_1__1__Impl_in_rule__XConstructorCall__Group_4_1_1__131623 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_4_1_1_1__0_in_rule__XConstructorCall__Group_4_1_1__1__Impl31650 = new BitSet(new long[]{0x0800000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_4_1_1_1__0__Impl_in_rule__XConstructorCall__Group_4_1_1_1__031685 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_4_1_1_1__1_in_rule__XConstructorCall__Group_4_1_1_1__031688 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_59_in_rule__XConstructorCall__Group_4_1_1_1__0__Impl31716 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_4_1_1_1__1__Impl_in_rule__XConstructorCall__Group_4_1_1_1__131747 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1_in_rule__XConstructorCall__Group_4_1_1_1__1__Impl31774 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XBooleanLiteral__Group__0__Impl_in_rule__XBooleanLiteral__Group__031808 = new BitSet(new long[]{0x0000800000000000L,0x0000001000000000L});
+ public static final BitSet FOLLOW_rule__XBooleanLiteral__Group__1_in_rule__XBooleanLiteral__Group__031811 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XBooleanLiteral__Group__1__Impl_in_rule__XBooleanLiteral__Group__131869 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XBooleanLiteral__Alternatives_1_in_rule__XBooleanLiteral__Group__1__Impl31896 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XNullLiteral__Group__0__Impl_in_rule__XNullLiteral__Group__031930 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
+ public static final BitSet FOLLOW_rule__XNullLiteral__Group__1_in_rule__XNullLiteral__Group__031933 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XNullLiteral__Group__1__Impl_in_rule__XNullLiteral__Group__131991 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_87_in_rule__XNullLiteral__Group__1__Impl32019 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XNumberLiteral__Group__0__Impl_in_rule__XNumberLiteral__Group__032054 = new BitSet(new long[]{0x00000000000000E0L});
+ public static final BitSet FOLLOW_rule__XNumberLiteral__Group__1_in_rule__XNumberLiteral__Group__032057 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XNumberLiteral__Group__1__Impl_in_rule__XNumberLiteral__Group__132115 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XNumberLiteral__ValueAssignment_1_in_rule__XNumberLiteral__Group__1__Impl32142 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XStringLiteral__Group__0__Impl_in_rule__XStringLiteral__Group__032176 = new BitSet(new long[]{0x0000000000000100L});
+ public static final BitSet FOLLOW_rule__XStringLiteral__Group__1_in_rule__XStringLiteral__Group__032179 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XStringLiteral__Group__1__Impl_in_rule__XStringLiteral__Group__132237 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XStringLiteral__ValueAssignment_1_in_rule__XStringLiteral__Group__1__Impl32264 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTypeLiteral__Group__0__Impl_in_rule__XTypeLiteral__Group__032298 = new BitSet(new long[]{0x00008000000001E0L,0x0000001001800600L});
+ public static final BitSet FOLLOW_rule__XTypeLiteral__Group__1_in_rule__XTypeLiteral__Group__032301 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTypeLiteral__Group__1__Impl_in_rule__XTypeLiteral__Group__132359 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XTypeLiteral__Group__2_in_rule__XTypeLiteral__Group__132362 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_88_in_rule__XTypeLiteral__Group__1__Impl32390 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTypeLiteral__Group__2__Impl_in_rule__XTypeLiteral__Group__232421 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__XTypeLiteral__Group__3_in_rule__XTypeLiteral__Group__232424 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_77_in_rule__XTypeLiteral__Group__2__Impl32452 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTypeLiteral__Group__3__Impl_in_rule__XTypeLiteral__Group__332483 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000500L});
+ public static final BitSet FOLLOW_rule__XTypeLiteral__Group__4_in_rule__XTypeLiteral__Group__332486 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTypeLiteral__TypeAssignment_3_in_rule__XTypeLiteral__Group__3__Impl32513 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTypeLiteral__Group__4__Impl_in_rule__XTypeLiteral__Group__432543 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000500L});
+ public static final BitSet FOLLOW_rule__XTypeLiteral__Group__5_in_rule__XTypeLiteral__Group__432546 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTypeLiteral__ArrayDimensionsAssignment_4_in_rule__XTypeLiteral__Group__4__Impl32573 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_rule__XTypeLiteral__Group__5__Impl_in_rule__XTypeLiteral__Group__532604 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_72_in_rule__XTypeLiteral__Group__5__Impl32632 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XThrowExpression__Group__0__Impl_in_rule__XThrowExpression__Group__032675 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
+ public static final BitSet FOLLOW_rule__XThrowExpression__Group__1_in_rule__XThrowExpression__Group__032678 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XThrowExpression__Group__1__Impl_in_rule__XThrowExpression__Group__132736 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XThrowExpression__Group__2_in_rule__XThrowExpression__Group__132739 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_89_in_rule__XThrowExpression__Group__1__Impl32767 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XThrowExpression__Group__2__Impl_in_rule__XThrowExpression__Group__232798 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XThrowExpression__ExpressionAssignment_2_in_rule__XThrowExpression__Group__2__Impl32825 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XReturnExpression__Group__0__Impl_in_rule__XReturnExpression__Group__032861 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
+ public static final BitSet FOLLOW_rule__XReturnExpression__Group__1_in_rule__XReturnExpression__Group__032864 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XReturnExpression__Group__1__Impl_in_rule__XReturnExpression__Group__132922 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XReturnExpression__Group__2_in_rule__XReturnExpression__Group__132925 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_90_in_rule__XReturnExpression__Group__1__Impl32953 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XReturnExpression__Group__2__Impl_in_rule__XReturnExpression__Group__232984 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XReturnExpression__ExpressionAssignment_2_in_rule__XReturnExpression__Group__2__Impl33011 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group__0__Impl_in_rule__XTryCatchFinallyExpression__Group__033048 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group__1_in_rule__XTryCatchFinallyExpression__Group__033051 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group__1__Impl_in_rule__XTryCatchFinallyExpression__Group__133109 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group__2_in_rule__XTryCatchFinallyExpression__Group__133112 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_91_in_rule__XTryCatchFinallyExpression__Group__1__Impl33140 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group__2__Impl_in_rule__XTryCatchFinallyExpression__Group__233171 = new BitSet(new long[]{0x0000000000000000L,0x0000000030000000L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group__3_in_rule__XTryCatchFinallyExpression__Group__233174 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__ExpressionAssignment_2_in_rule__XTryCatchFinallyExpression__Group__2__Impl33201 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group__3__Impl_in_rule__XTryCatchFinallyExpression__Group__333231 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Alternatives_3_in_rule__XTryCatchFinallyExpression__Group__3__Impl33258 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0__0__Impl_in_rule__XTryCatchFinallyExpression__Group_3_0__033296 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0__1_in_rule__XTryCatchFinallyExpression__Group_3_0__033299 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0_in_rule__XTryCatchFinallyExpression__Group_3_0__0__Impl33328 = new BitSet(new long[]{0x0000000000000002L,0x0000000020000000L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0_in_rule__XTryCatchFinallyExpression__Group_3_0__0__Impl33340 = new BitSet(new long[]{0x0000000000000002L,0x0000000020000000L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0__1__Impl_in_rule__XTryCatchFinallyExpression__Group_3_0__133373 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0_1__0_in_rule__XTryCatchFinallyExpression__Group_3_0__1__Impl33400 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl_in_rule__XTryCatchFinallyExpression__Group_3_0_1__033435 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0_1__1_in_rule__XTryCatchFinallyExpression__Group_3_0_1__033438 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_92_in_rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl33467 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl_in_rule__XTryCatchFinallyExpression__Group_3_0_1__133499 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1_in_rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl33526 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group_3_1__0__Impl_in_rule__XTryCatchFinallyExpression__Group_3_1__033560 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group_3_1__1_in_rule__XTryCatchFinallyExpression__Group_3_1__033563 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_92_in_rule__XTryCatchFinallyExpression__Group_3_1__0__Impl33591 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group_3_1__1__Impl_in_rule__XTryCatchFinallyExpression__Group_3_1__133622 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1_in_rule__XTryCatchFinallyExpression__Group_3_1__1__Impl33649 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCatchClause__Group__0__Impl_in_rule__XCatchClause__Group__033683 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XCatchClause__Group__1_in_rule__XCatchClause__Group__033686 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_93_in_rule__XCatchClause__Group__0__Impl33715 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCatchClause__Group__1__Impl_in_rule__XCatchClause__Group__133747 = new BitSet(new long[]{0x0000000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XCatchClause__Group__2_in_rule__XCatchClause__Group__133750 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_77_in_rule__XCatchClause__Group__1__Impl33778 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCatchClause__Group__2__Impl_in_rule__XCatchClause__Group__233809 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_rule__XCatchClause__Group__3_in_rule__XCatchClause__Group__233812 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCatchClause__DeclaredParamAssignment_2_in_rule__XCatchClause__Group__2__Impl33839 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCatchClause__Group__3__Impl_in_rule__XCatchClause__Group__333869 = new BitSet(new long[]{0x0002FC86020001F0L,0x000000100FF96600L});
+ public static final BitSet FOLLOW_rule__XCatchClause__Group__4_in_rule__XCatchClause__Group__333872 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_72_in_rule__XCatchClause__Group__3__Impl33900 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCatchClause__Group__4__Impl_in_rule__XCatchClause__Group__433931 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCatchClause__ExpressionAssignment_4_in_rule__XCatchClause__Group__4__Impl33958 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__QualifiedName__Group__0__Impl_in_rule__QualifiedName__Group__033998 = new BitSet(new long[]{0x0000010000000000L});
+ public static final BitSet FOLLOW_rule__QualifiedName__Group__1_in_rule__QualifiedName__Group__034001 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleValidID_in_rule__QualifiedName__Group__0__Impl34028 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__QualifiedName__Group__1__Impl_in_rule__QualifiedName__Group__134057 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__QualifiedName__Group_1__0_in_rule__QualifiedName__Group__1__Impl34084 = new BitSet(new long[]{0x0000010000000002L});
+ public static final BitSet FOLLOW_rule__QualifiedName__Group_1__0__Impl_in_rule__QualifiedName__Group_1__034119 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__QualifiedName__Group_1__1_in_rule__QualifiedName__Group_1__034122 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_40_in_rule__QualifiedName__Group_1__0__Impl34151 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__QualifiedName__Group_1__1__Impl_in_rule__QualifiedName__Group_1__134183 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleValidID_in_rule__QualifiedName__Group_1__1__Impl34210 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Number__Group_1__0__Impl_in_rule__Number__Group_1__034243 = new BitSet(new long[]{0x0000010000000000L});
+ public static final BitSet FOLLOW_rule__Number__Group_1__1_in_rule__Number__Group_1__034246 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Number__Alternatives_1_0_in_rule__Number__Group_1__0__Impl34273 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Number__Group_1__1__Impl_in_rule__Number__Group_1__134303 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Number__Group_1_1__0_in_rule__Number__Group_1__1__Impl34330 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Number__Group_1_1__0__Impl_in_rule__Number__Group_1_1__034365 = new BitSet(new long[]{0x00000000000000C0L});
+ public static final BitSet FOLLOW_rule__Number__Group_1_1__1_in_rule__Number__Group_1_1__034368 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_40_in_rule__Number__Group_1_1__0__Impl34396 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Number__Group_1_1__1__Impl_in_rule__Number__Group_1_1__134427 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Number__Alternatives_1_1_1_in_rule__Number__Group_1_1__1__Impl34454 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmTypeReference__Group_0__0__Impl_in_rule__JvmTypeReference__Group_0__034489 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+ public static final BitSet FOLLOW_rule__JvmTypeReference__Group_0__1_in_rule__JvmTypeReference__Group_0__034492 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmParameterizedTypeReference_in_rule__JvmTypeReference__Group_0__0__Impl34519 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmTypeReference__Group_0__1__Impl_in_rule__JvmTypeReference__Group_0__134548 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmTypeReference__Group_0_1__0_in_rule__JvmTypeReference__Group_0__1__Impl34575 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_rule__JvmTypeReference__Group_0_1__0__Impl_in_rule__JvmTypeReference__Group_0_1__034610 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmTypeReference__Group_0_1_0__0_in_rule__JvmTypeReference__Group_0_1__0__Impl34637 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmTypeReference__Group_0_1_0__0__Impl_in_rule__JvmTypeReference__Group_0_1_0__034669 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+ public static final BitSet FOLLOW_rule__JvmTypeReference__Group_0_1_0__1_in_rule__JvmTypeReference__Group_0_1_0__034672 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmTypeReference__Group_0_1_0__1__Impl_in_rule__JvmTypeReference__Group_0_1_0__134730 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleArrayBrackets_in_rule__JvmTypeReference__Group_0_1_0__1__Impl34757 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ArrayBrackets__Group__0__Impl_in_rule__ArrayBrackets__Group__034790 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
+ public static final BitSet FOLLOW_rule__ArrayBrackets__Group__1_in_rule__ArrayBrackets__Group__034793 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_74_in_rule__ArrayBrackets__Group__0__Impl34821 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__ArrayBrackets__Group__1__Impl_in_rule__ArrayBrackets__Group__134852 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_75_in_rule__ArrayBrackets__Group__1__Impl34880 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group__0__Impl_in_rule__XFunctionTypeRef__Group__034915 = new BitSet(new long[]{0x0000000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group__1_in_rule__XFunctionTypeRef__Group__034918 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group_0__0_in_rule__XFunctionTypeRef__Group__0__Impl34945 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group__1__Impl_in_rule__XFunctionTypeRef__Group__134976 = new BitSet(new long[]{0x0000000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group__2_in_rule__XFunctionTypeRef__Group__134979 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_29_in_rule__XFunctionTypeRef__Group__1__Impl35007 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group__2__Impl_in_rule__XFunctionTypeRef__Group__235038 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__ReturnTypeAssignment_2_in_rule__XFunctionTypeRef__Group__2__Impl35065 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group_0__0__Impl_in_rule__XFunctionTypeRef__Group_0__035101 = new BitSet(new long[]{0x0000000020000010L,0x0000000000002100L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group_0__1_in_rule__XFunctionTypeRef__Group_0__035104 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_77_in_rule__XFunctionTypeRef__Group_0__0__Impl35132 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group_0__1__Impl_in_rule__XFunctionTypeRef__Group_0__135163 = new BitSet(new long[]{0x0000000020000010L,0x0000000000002100L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group_0__2_in_rule__XFunctionTypeRef__Group_0__135166 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group_0_1__0_in_rule__XFunctionTypeRef__Group_0__1__Impl35193 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group_0__2__Impl_in_rule__XFunctionTypeRef__Group_0__235224 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_72_in_rule__XFunctionTypeRef__Group_0__2__Impl35252 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group_0_1__0__Impl_in_rule__XFunctionTypeRef__Group_0_1__035289 = new BitSet(new long[]{0x0800000000000000L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group_0_1__1_in_rule__XFunctionTypeRef__Group_0_1__035292 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0_in_rule__XFunctionTypeRef__Group_0_1__0__Impl35319 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group_0_1__1__Impl_in_rule__XFunctionTypeRef__Group_0_1__135349 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group_0_1_1__0_in_rule__XFunctionTypeRef__Group_0_1__1__Impl35376 = new BitSet(new long[]{0x0800000000000002L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group_0_1_1__0__Impl_in_rule__XFunctionTypeRef__Group_0_1_1__035411 = new BitSet(new long[]{0x0000000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group_0_1_1__1_in_rule__XFunctionTypeRef__Group_0_1_1__035414 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_59_in_rule__XFunctionTypeRef__Group_0_1_1__0__Impl35442 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__Group_0_1_1__1__Impl_in_rule__XFunctionTypeRef__Group_0_1_1__135473 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1_in_rule__XFunctionTypeRef__Group_0_1_1__1__Impl35500 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group__0__Impl_in_rule__JvmParameterizedTypeReference__Group__035534 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group__1_in_rule__JvmParameterizedTypeReference__Group__035537 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__TypeAssignment_0_in_rule__JvmParameterizedTypeReference__Group__0__Impl35564 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group__1__Impl_in_rule__JvmParameterizedTypeReference__Group__135594 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group_1__0_in_rule__JvmParameterizedTypeReference__Group__1__Impl35621 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group_1__0__Impl_in_rule__JvmParameterizedTypeReference__Group_1__035656 = new BitSet(new long[]{0x0000000020000010L,0x0000000040002000L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group_1__1_in_rule__JvmParameterizedTypeReference__Group_1__035659 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_25_in_rule__JvmParameterizedTypeReference__Group_1__0__Impl35688 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group_1__1__Impl_in_rule__JvmParameterizedTypeReference__Group_1__135720 = new BitSet(new long[]{0x0800000001000000L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group_1__2_in_rule__JvmParameterizedTypeReference__Group_1__135723 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1_in_rule__JvmParameterizedTypeReference__Group_1__1__Impl35750 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group_1__2__Impl_in_rule__JvmParameterizedTypeReference__Group_1__235780 = new BitSet(new long[]{0x0800000001000000L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group_1__3_in_rule__JvmParameterizedTypeReference__Group_1__235783 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group_1_2__0_in_rule__JvmParameterizedTypeReference__Group_1__2__Impl35810 = new BitSet(new long[]{0x0800000000000002L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group_1__3__Impl_in_rule__JvmParameterizedTypeReference__Group_1__335841 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_24_in_rule__JvmParameterizedTypeReference__Group_1__3__Impl35869 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group_1_2__0__Impl_in_rule__JvmParameterizedTypeReference__Group_1_2__035908 = new BitSet(new long[]{0x0000000020000010L,0x0000000040002000L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group_1_2__1_in_rule__JvmParameterizedTypeReference__Group_1_2__035911 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_59_in_rule__JvmParameterizedTypeReference__Group_1_2__0__Impl35939 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group_1_2__1__Impl_in_rule__JvmParameterizedTypeReference__Group_1_2__135970 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1_in_rule__JvmParameterizedTypeReference__Group_1_2__1__Impl35997 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmWildcardTypeReference__Group__0__Impl_in_rule__JvmWildcardTypeReference__Group__036031 = new BitSet(new long[]{0x0000000020000010L,0x0000000040002000L});
+ public static final BitSet FOLLOW_rule__JvmWildcardTypeReference__Group__1_in_rule__JvmWildcardTypeReference__Group__036034 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmWildcardTypeReference__Group__1__Impl_in_rule__JvmWildcardTypeReference__Group__136092 = new BitSet(new long[]{0x0000440000000000L});
+ public static final BitSet FOLLOW_rule__JvmWildcardTypeReference__Group__2_in_rule__JvmWildcardTypeReference__Group__136095 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_94_in_rule__JvmWildcardTypeReference__Group__1__Impl36123 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmWildcardTypeReference__Group__2__Impl_in_rule__JvmWildcardTypeReference__Group__236154 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmWildcardTypeReference__Alternatives_2_in_rule__JvmWildcardTypeReference__Group__2__Impl36181 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmUpperBound__Group__0__Impl_in_rule__JvmUpperBound__Group__036218 = new BitSet(new long[]{0x0000000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__JvmUpperBound__Group__1_in_rule__JvmUpperBound__Group__036221 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_42_in_rule__JvmUpperBound__Group__0__Impl36249 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmUpperBound__Group__1__Impl_in_rule__JvmUpperBound__Group__136280 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmUpperBound__TypeReferenceAssignment_1_in_rule__JvmUpperBound__Group__1__Impl36307 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmUpperBoundAnded__Group__0__Impl_in_rule__JvmUpperBoundAnded__Group__036341 = new BitSet(new long[]{0x0000000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__JvmUpperBoundAnded__Group__1_in_rule__JvmUpperBoundAnded__Group__036344 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_95_in_rule__JvmUpperBoundAnded__Group__0__Impl36372 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmUpperBoundAnded__Group__1__Impl_in_rule__JvmUpperBoundAnded__Group__136403 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmUpperBoundAnded__TypeReferenceAssignment_1_in_rule__JvmUpperBoundAnded__Group__1__Impl36430 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmLowerBound__Group__0__Impl_in_rule__JvmLowerBound__Group__036464 = new BitSet(new long[]{0x0000000020000010L,0x0000000000002000L});
+ public static final BitSet FOLLOW_rule__JvmLowerBound__Group__1_in_rule__JvmLowerBound__Group__036467 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_46_in_rule__JvmLowerBound__Group__0__Impl36495 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmLowerBound__Group__1__Impl_in_rule__JvmLowerBound__Group__136526 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmLowerBound__TypeReferenceAssignment_1_in_rule__JvmLowerBound__Group__1__Impl36553 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__QualifiedNameWithWildcard__Group__0__Impl_in_rule__QualifiedNameWithWildcard__Group__036589 = new BitSet(new long[]{0x0000010000000000L});
+ public static final BitSet FOLLOW_rule__QualifiedNameWithWildcard__Group__1_in_rule__QualifiedNameWithWildcard__Group__036592 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_rule__QualifiedNameWithWildcard__Group__0__Impl36619 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__QualifiedNameWithWildcard__Group__1__Impl_in_rule__QualifiedNameWithWildcard__Group__136648 = new BitSet(new long[]{0x0000000800000000L});
+ public static final BitSet FOLLOW_rule__QualifiedNameWithWildcard__Group__2_in_rule__QualifiedNameWithWildcard__Group__136651 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_40_in_rule__QualifiedNameWithWildcard__Group__1__Impl36679 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__QualifiedNameWithWildcard__Group__2__Impl_in_rule__QualifiedNameWithWildcard__Group__236710 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_35_in_rule__QualifiedNameWithWildcard__Group__2__Impl36738 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__Group__0__Impl_in_rule__XImportDeclaration__Group__036775 = new BitSet(new long[]{0x0000080000000010L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__Group__1_in_rule__XImportDeclaration__Group__036778 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_44_in_rule__XImportDeclaration__Group__0__Impl36806 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__Group__1__Impl_in_rule__XImportDeclaration__Group__136837 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__Group__2_in_rule__XImportDeclaration__Group__136840 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__Alternatives_1_in_rule__XImportDeclaration__Group__1__Impl36867 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__Group__2__Impl_in_rule__XImportDeclaration__Group__236897 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_76_in_rule__XImportDeclaration__Group__2__Impl36926 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__Group_1_0__0__Impl_in_rule__XImportDeclaration__Group_1_0__036965 = new BitSet(new long[]{0x0000200000000010L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__Group_1_0__1_in_rule__XImportDeclaration__Group_1_0__036968 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__StaticAssignment_1_0_0_in_rule__XImportDeclaration__Group_1_0__0__Impl36995 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__Group_1_0__1__Impl_in_rule__XImportDeclaration__Group_1_0__137025 = new BitSet(new long[]{0x0000200000000010L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__Group_1_0__2_in_rule__XImportDeclaration__Group_1_0__137028 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__ExtensionAssignment_1_0_1_in_rule__XImportDeclaration__Group_1_0__1__Impl37055 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__Group_1_0__2__Impl_in_rule__XImportDeclaration__Group_1_0__237086 = new BitSet(new long[]{0x0000010000000000L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__Group_1_0__3_in_rule__XImportDeclaration__Group_1_0__237089 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__ImportedTypeAssignment_1_0_2_in_rule__XImportDeclaration__Group_1_0__2__Impl37116 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__Group_1_0__3__Impl_in_rule__XImportDeclaration__Group_1_0__337146 = new BitSet(new long[]{0x0000000800000000L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__Group_1_0__4_in_rule__XImportDeclaration__Group_1_0__337149 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_40_in_rule__XImportDeclaration__Group_1_0__3__Impl37177 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XImportDeclaration__Group_1_0__4__Impl_in_rule__XImportDeclaration__Group_1_0__437208 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_35_in_rule__XImportDeclaration__Group_1_0__4__Impl37236 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__0_in_rule__Module__UnorderedGroup_437278 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__LabelProviderAssignment_4_0_in_rule__Module__UnorderedGroup_4__Impl37365 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__PropertyDescriptionProviderAssignment_4_1_in_rule__Module__UnorderedGroup_4__Impl37456 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__FeaturesProviderAssignment_4_2_in_rule__Module__UnorderedGroup_4__Impl37547 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__FormControlFactoryAssignment_4_3_in_rule__Module__UnorderedGroup_4__Impl37638 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__ProposalCreatorAssignment_4_4_in_rule__Module__UnorderedGroup_4__Impl37729 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__ViewerContentProviderAssignment_4_5_in_rule__Module__UnorderedGroup_4__Impl37820 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__Group_4_6__0_in_rule__Module__UnorderedGroup_4__Impl37911 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__Impl_in_rule__Module__UnorderedGroup_4__037970 = new BitSet(new long[]{0x9298000000000002L,0x0000000000000001L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__1_in_rule__Module__UnorderedGroup_4__037973 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__Impl_in_rule__Module__UnorderedGroup_4__137998 = new BitSet(new long[]{0x9298000000000002L,0x0000000000000001L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__2_in_rule__Module__UnorderedGroup_4__138001 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__Impl_in_rule__Module__UnorderedGroup_4__238026 = new BitSet(new long[]{0x9298000000000002L,0x0000000000000001L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__3_in_rule__Module__UnorderedGroup_4__238029 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__Impl_in_rule__Module__UnorderedGroup_4__338054 = new BitSet(new long[]{0x9298000000000002L,0x0000000000000001L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__4_in_rule__Module__UnorderedGroup_4__338057 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__Impl_in_rule__Module__UnorderedGroup_4__438082 = new BitSet(new long[]{0x9298000000000002L,0x0000000000000001L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__5_in_rule__Module__UnorderedGroup_4__438085 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__Impl_in_rule__Module__UnorderedGroup_4__538110 = new BitSet(new long[]{0x9298000000000002L,0x0000000000000001L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__6_in_rule__Module__UnorderedGroup_4__538113 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__Impl_in_rule__Module__UnorderedGroup_4__638138 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__UnorderedGroup_3__0_in_rule__LabelProvider__UnorderedGroup_338176 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group_3_0__0_in_rule__LabelProvider__UnorderedGroup_3__Impl38263 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group_3_1__0_in_rule__LabelProvider__UnorderedGroup_3__Impl38354 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__UnorderedGroup_3__Impl_in_rule__LabelProvider__UnorderedGroup_3__038413 = new BitSet(new long[]{0x0060000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__UnorderedGroup_3__1_in_rule__LabelProvider__UnorderedGroup_3__038416 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__UnorderedGroup_3__Impl_in_rule__LabelProvider__UnorderedGroup_3__138441 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXImportSection_in_rule__Model__ImportSectionAssignment_038473 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleModule_in_rule__Model__ModuleAssignment_138504 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_rule__Module__NameAssignment_138535 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleExtendsClause_in_rule__Module__ExtendsClauseAssignment_238566 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLabelProvider_in_rule__Module__LabelProviderAssignment_4_038597 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulePropertyDescriptionProvider_in_rule__Module__PropertyDescriptionProviderAssignment_4_138628 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFeaturesProvider_in_rule__Module__FeaturesProviderAssignment_4_238659 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFormControlFactory_in_rule__Module__FormControlFactoryAssignment_4_338690 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleProposalCreator_in_rule__Module__ProposalCreatorAssignment_4_438721 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleViewerContentProvider_in_rule__Module__ViewerContentProviderAssignment_4_538752 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulePartSpecification_in_rule__Module__PartsAssignment_4_6_238783 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__ExtendsClause__SuperTypeAssignment_138814 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLabelSpecification_in_rule__LabelProvider__LabelSpecificationsAssignment_3_0_238845 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLabelSpecification_in_rule__LabelProvider__ImageSpecificationsAssignment_3_1_238876 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__LabelSpecification__ParameterTypeAssignment_038907 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleValidID_in_rule__LabelSpecification__NameAssignment_138938 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__LabelSpecification__ExpressionAssignment_338969 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulePropertyDescriptionSpecification_in_rule__PropertyDescriptionProvider__LabelSpecificationsAssignment_3_239000 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__PropertyDescriptionSpecification__ParameterTypeAssignment_039031 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__PropertyDescriptionSpecification__FeatureAssignment_239066 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__PropertyDescriptionSpecification__ExpressionAssignment_439101 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFeatureSpecification_in_rule__FeaturesProvider__FeatureSpecificationsAssignment_3_239132 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__FeatureSpecification__ParameterTypeAssignment_039163 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__FeatureSpecification__FeaturesAssignment_239198 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__FeatureSpecification__FeaturesAssignment_3_139237 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFormControlSpecification_in_rule__FormControlFactory__ControlSpecificationsAssignment_3_239272 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__FormControlSpecification__ParameterTypeAssignment_039303 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__FormControlSpecification__FeatureAssignment_239338 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__FormControlSpecification__ExpressionAssignment_439373 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__FormControlSpecification__TargetAssignment_5_139404 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleProposalSpecification_in_rule__ProposalCreator__ProposalsSpecificationsAssignment_339435 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__ProposalSpecification__ParameterTypeAssignment_039466 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__ProposalSpecification__FeatureAssignment_239501 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__ProposalSpecification__ExpressionAssignment_439536 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLabelSpecification_in_rule__ViewerContentProvider__ChildrenSpecificationsAssignment_3_239567 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_rule__ViewSpecification__IdAssignment_239598 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_STRING_in_rule__ViewSpecification__ViewNameAssignment_539629 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__ViewSpecification__TypeAssignment_739660 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_rule__ViewSpecification__CategoryAssignment_8_139691 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFeatureCallID_in_rule__XAssignment__FeatureAssignment_0_139726 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXAssignment_in_rule__XAssignment__ValueAssignment_0_339761 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpMultiAssign_in_rule__XAssignment__FeatureAssignment_1_1_0_0_139796 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXAssignment_in_rule__XAssignment__RightOperandAssignment_1_1_139831 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpOr_in_rule__XOrExpression__FeatureAssignment_1_0_0_139866 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXAndExpression_in_rule__XOrExpression__RightOperandAssignment_1_139901 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpAnd_in_rule__XAndExpression__FeatureAssignment_1_0_0_139936 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXEqualityExpression_in_rule__XAndExpression__RightOperandAssignment_1_139971 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpEquality_in_rule__XEqualityExpression__FeatureAssignment_1_0_0_140006 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXRelationalExpression_in_rule__XEqualityExpression__RightOperandAssignment_1_140041 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__XRelationalExpression__TypeAssignment_1_0_140072 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpCompare_in_rule__XRelationalExpression__FeatureAssignment_1_1_0_0_140107 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXOtherOperatorExpression_in_rule__XRelationalExpression__RightOperandAssignment_1_1_140142 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpOther_in_rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_140177 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXAdditiveExpression_in_rule__XOtherOperatorExpression__RightOperandAssignment_1_140212 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpAdd_in_rule__XAdditiveExpression__FeatureAssignment_1_0_0_140247 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXMultiplicativeExpression_in_rule__XAdditiveExpression__RightOperandAssignment_1_140282 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpMulti_in_rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_140317 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXUnaryOperation_in_rule__XMultiplicativeExpression__RightOperandAssignment_1_140352 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpUnary_in_rule__XUnaryOperation__FeatureAssignment_0_140387 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXUnaryOperation_in_rule__XUnaryOperation__OperandAssignment_0_240422 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__XCastedExpression__TypeAssignment_1_140453 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_96_in_rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_140489 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFeatureCallID_in_rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_240532 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXAssignment_in_rule__XMemberFeatureCall__ValueAssignment_1_0_140567 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_97_in_rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_140603 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_96_in_rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_240647 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_140686 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_140717 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFeatureCallID_in_rule__XMemberFeatureCall__FeatureAssignment_1_1_240752 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_77_in_rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_040792 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXShortClosure_in_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_040831 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_040862 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_140893 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXClosure_in_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_440924 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XSetLiteral__ElementsAssignment_3_040955 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XSetLiteral__ElementsAssignment_3_1_140986 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XListLiteral__ElementsAssignment_3_041017 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XListLiteral__ElementsAssignment_3_1_141048 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_041079 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_141110 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_98_in_rule__XClosure__ExplicitSyntaxAssignment_1_0_141146 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpressionInClosure_in_rule__XClosure__ExpressionAssignment_241185 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpressionInsideBlock_in_rule__XExpressionInClosure__ExpressionsAssignment_1_041216 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_041247 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_141278 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_98_in_rule__XShortClosure__ExplicitSyntaxAssignment_0_0_241314 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XShortClosure__ExpressionAssignment_141353 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XIfExpression__IfAssignment_341384 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XIfExpression__ThenAssignment_541415 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XIfExpression__ElseAssignment_6_141446 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleValidID_in_rule__XSwitchExpression__LocalVarNameAssignment_2_0_0_0_041477 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XSwitchExpression__SwitchAssignment_2_0_141508 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleValidID_in_rule__XSwitchExpression__LocalVarNameAssignment_2_1_0_0_141539 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XSwitchExpression__SwitchAssignment_2_1_141570 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXCasePart_in_rule__XSwitchExpression__CasesAssignment_441601 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XSwitchExpression__DefaultAssignment_5_241632 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__XCasePart__TypeGuardAssignment_041663 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XCasePart__CaseAssignment_1_141694 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XCasePart__ThenAssignment_341725 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_rule__XForLoopExpression__DeclaredParamAssignment_341756 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XForLoopExpression__ForExpressionAssignment_541787 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XForLoopExpression__EachExpressionAssignment_741818 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XWhileExpression__PredicateAssignment_341849 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XWhileExpression__BodyAssignment_541880 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XDoWhileExpression__BodyAssignment_241911 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XDoWhileExpression__PredicateAssignment_541942 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpressionInsideBlock_in_rule__XBlockExpression__ExpressionsAssignment_2_041973 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_99_in_rule__XVariableDeclaration__WriteableAssignment_1_042009 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__XVariableDeclaration__TypeAssignment_2_0_0_042048 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleValidID_in_rule__XVariableDeclaration__NameAssignment_2_0_0_142079 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleValidID_in_rule__XVariableDeclaration__NameAssignment_2_142110 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XVariableDeclaration__RightAssignment_3_142141 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__JvmFormalParameter__ParameterTypeAssignment_042172 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleValidID_in_rule__JvmFormalParameter__NameAssignment_142203 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__FullJvmFormalParameter__ParameterTypeAssignment_042234 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleValidID_in_rule__FullJvmFormalParameter__NameAssignment_142265 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_rule__XFeatureCall__TypeArgumentsAssignment_1_142296 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_rule__XFeatureCall__TypeArgumentsAssignment_1_2_142327 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleIdOrSuper_in_rule__XFeatureCall__FeatureAssignment_242362 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_77_in_rule__XFeatureCall__ExplicitOperationCallAssignment_3_042402 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXShortClosure_in_rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_042441 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_042472 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_142503 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXClosure_in_rule__XFeatureCall__FeatureCallArgumentsAssignment_442534 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_rule__XConstructorCall__ConstructorAssignment_242569 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_rule__XConstructorCall__TypeArgumentsAssignment_3_142604 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_rule__XConstructorCall__TypeArgumentsAssignment_3_2_142635 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXShortClosure_in_rule__XConstructorCall__ArgumentsAssignment_4_1_042666 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XConstructorCall__ArgumentsAssignment_4_1_1_042697 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_142728 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXClosure_in_rule__XConstructorCall__ArgumentsAssignment_542759 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_100_in_rule__XBooleanLiteral__IsTrueAssignment_1_142795 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleNumber_in_rule__XNumberLiteral__ValueAssignment_142834 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_STRING_in_rule__XStringLiteral__ValueAssignment_142865 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_rule__XTypeLiteral__TypeAssignment_342900 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleArrayBrackets_in_rule__XTypeLiteral__ArrayDimensionsAssignment_442935 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XThrowExpression__ExpressionAssignment_242966 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XReturnExpression__ExpressionAssignment_242997 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XTryCatchFinallyExpression__ExpressionAssignment_243028 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXCatchClause_in_rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_043059 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_143090 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_143121 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFullJvmFormalParameter_in_rule__XCatchClause__DeclaredParamAssignment_243152 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rule__XCatchClause__ExpressionAssignment_443183 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__XFunctionTypeRef__ParamTypesAssignment_0_1_043214 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_143245 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__XFunctionTypeRef__ReturnTypeAssignment_243276 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_rule__JvmParameterizedTypeReference__TypeAssignment_043311 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_143346 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_143377 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmUpperBound_in_rule__JvmWildcardTypeReference__ConstraintsAssignment_2_043408 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmLowerBound_in_rule__JvmWildcardTypeReference__ConstraintsAssignment_2_143439 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__JvmUpperBound__TypeReferenceAssignment_143470 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__JvmUpperBoundAnded__TypeReferenceAssignment_143501 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rule__JvmLowerBound__TypeReferenceAssignment_143532 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXImportDeclaration_in_rule__XImportSection__ImportDeclarationsAssignment43567 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_43_in_rule__XImportDeclaration__StaticAssignment_1_0_043603 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_45_in_rule__XImportDeclaration__ExtensionAssignment_1_0_143647 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_rule__XImportDeclaration__ImportedTypeAssignment_1_0_243690 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_rule__XImportDeclaration__ImportedTypeAssignment_1_143729 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedNameWithWildcard_in_rule__XImportDeclaration__ImportedNamespaceAssignment_1_243764 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__OpOther__Group_6_1_0__0_in_synpred21_InternalEmfParsleyDsl5883 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0_in_synpred33_InternalEmfParsleyDsl6386 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XVariableDeclaration__Group_2_0__0_in_synpred56_InternalEmfParsleyDsl7011 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0_in_synpred57_InternalEmfParsleyDsl7062 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__ArgumentsAssignment_4_1_0_in_synpred63_InternalEmfParsleyDsl7277 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAssignment__Group_1_1__0_in_synpred92_InternalEmfParsleyDsl14893 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOrExpression__Group_1__0_in_synpred93_InternalEmfParsleyDsl15316 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAndExpression__Group_1__0_in_synpred94_InternalEmfParsleyDsl15739 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XEqualityExpression__Group_1__0_in_synpred95_InternalEmfParsleyDsl16162 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XRelationalExpression__Alternatives_1_in_synpred96_InternalEmfParsleyDsl16585 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XOtherOperatorExpression__Group_1__0_in_synpred97_InternalEmfParsleyDsl17312 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XAdditiveExpression__Group_1__0_in_synpred98_InternalEmfParsleyDsl18474 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMultiplicativeExpression__Group_1__0_in_synpred99_InternalEmfParsleyDsl18897 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XCastedExpression__Group_1__0_in_synpred100_InternalEmfParsleyDsl19504 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Alternatives_1_in_synpred101_InternalEmfParsleyDsl19929 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__Group_1_1_3__0_in_synpred103_InternalEmfParsleyDsl20600 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4_in_synpred104_InternalEmfParsleyDsl20658 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XClosure__Group_1__0_in_synpred112_InternalEmfParsleyDsl22894 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XIfExpression__Group_6__0_in_synpred119_InternalEmfParsleyDsl25100 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__Group_3__0_in_synpred130_InternalEmfParsleyDsl29720 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XFeatureCall__FeatureCallArgumentsAssignment_4_in_synpred131_InternalEmfParsleyDsl29778 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_3__0_in_synpred135_InternalEmfParsleyDsl30836 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__Group_4__0_in_synpred136_InternalEmfParsleyDsl30897 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XConstructorCall__ArgumentsAssignment_5_in_synpred137_InternalEmfParsleyDsl30955 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XReturnExpression__ExpressionAssignment_2_in_synpred142_InternalEmfParsleyDsl33011 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0_in_synpred143_InternalEmfParsleyDsl33340 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__XTryCatchFinallyExpression__Group_3_0_1__0_in_synpred144_InternalEmfParsleyDsl33400 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__QualifiedName__Group_1__0_in_synpred145_InternalEmfParsleyDsl34084 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmTypeReference__Group_0_1__0_in_synpred147_InternalEmfParsleyDsl34575 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__JvmParameterizedTypeReference__Group_1__0_in_synpred151_InternalEmfParsleyDsl35621 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__0_in_synpred156_InternalEmfParsleyDsl37278 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__LabelProviderAssignment_4_0_in_synpred157_InternalEmfParsleyDsl37365 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__PropertyDescriptionProviderAssignment_4_1_in_synpred158_InternalEmfParsleyDsl37456 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__FeaturesProviderAssignment_4_2_in_synpred159_InternalEmfParsleyDsl37547 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__FormControlFactoryAssignment_4_3_in_synpred160_InternalEmfParsleyDsl37638 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__ProposalCreatorAssignment_4_4_in_synpred161_InternalEmfParsleyDsl37729 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__ViewerContentProviderAssignment_4_5_in_synpred162_InternalEmfParsleyDsl37820 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__1_in_synpred163_InternalEmfParsleyDsl37973 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__2_in_synpred164_InternalEmfParsleyDsl38001 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__3_in_synpred165_InternalEmfParsleyDsl38029 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__4_in_synpred166_InternalEmfParsleyDsl38057 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__5_in_synpred167_InternalEmfParsleyDsl38085 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Module__UnorderedGroup_4__6_in_synpred168_InternalEmfParsleyDsl38113 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__UnorderedGroup_3__0_in_synpred169_InternalEmfParsleyDsl38176 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__Group_3_0__0_in_synpred170_InternalEmfParsleyDsl38263 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__LabelProvider__UnorderedGroup_3__1_in_synpred171_InternalEmfParsleyDsl38416 = new BitSet(new long[]{0x0000000000000002L});
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/internal/EmfParsleyDslActivator.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/internal/EmfParsleyDslActivator.java
new file mode 100644
index 000000000..b7814c2d7
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/internal/EmfParsleyDslActivator.java
@@ -0,0 +1,95 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.dsl.ui.internal;
+
+import java.util.Collections;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.ui.shared.SharedStateModule;
+import org.eclipse.xtext.util.Modules2;
+import org.osgi.framework.BundleContext;
+
+import com.google.common.collect.Maps;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class EmfParsleyDslActivator extends AbstractUIPlugin {
+
+ public static final String ORG_ECLIPSE_EMF_PARSLEY_DSL_EMFPARSLEYDSL = "org.eclipse.emf.parsley.dsl.EmfParsleyDsl";
+
+ private static final Logger logger = Logger.getLogger(EmfParsleyDslActivator.class);
+
+ private static EmfParsleyDslActivator INSTANCE;
+
+ private Map<String, Injector> injectors = Collections.synchronizedMap(Maps.<String, Injector> newHashMapWithExpectedSize(1));
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ INSTANCE = this;
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ injectors.clear();
+ INSTANCE = null;
+ super.stop(context);
+ }
+
+ public static EmfParsleyDslActivator getInstance() {
+ return INSTANCE;
+ }
+
+ public Injector getInjector(String language) {
+ synchronized (injectors) {
+ Injector injector = injectors.get(language);
+ if (injector == null) {
+ injectors.put(language, injector = createInjector(language));
+ }
+ return injector;
+ }
+ }
+
+ protected Injector createInjector(String language) {
+ try {
+ Module runtimeModule = getRuntimeModule(language);
+ Module sharedStateModule = getSharedStateModule();
+ Module uiModule = getUiModule(language);
+ Module mergedModule = Modules2.mixin(runtimeModule, sharedStateModule, uiModule);
+ return Guice.createInjector(mergedModule);
+ } catch (Exception e) {
+ logger.error("Failed to create injector for " + language);
+ logger.error(e.getMessage(), e);
+ throw new RuntimeException("Failed to create injector for " + language, e);
+ }
+ }
+
+ protected Module getRuntimeModule(String grammar) {
+ if (ORG_ECLIPSE_EMF_PARSLEY_DSL_EMFPARSLEYDSL.equals(grammar)) {
+ return new org.eclipse.emf.parsley.dsl.EmfParsleyDslRuntimeModule();
+ }
+
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getUiModule(String grammar) {
+ if (ORG_ECLIPSE_EMF_PARSLEY_DSL_EMFPARSLEYDSL.equals(grammar)) {
+ return new org.eclipse.emf.parsley.dsl.ui.EmfParsleyDslUiModule(this);
+ }
+
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getSharedStateModule() {
+ return new SharedStateModule();
+ }
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProjectWizard.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProjectWizard.java
new file mode 100644
index 000000000..cd910aecb
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProjectWizard.java
@@ -0,0 +1,39 @@
+package org.eclipse.emf.parsley.dsl.ui.wizard;
+
+import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
+import org.eclipse.xtext.ui.wizard.IProjectInfo;
+import org.eclipse.xtext.ui.wizard.IProjectCreator;
+import com.google.inject.Inject;
+
+public class EmfParsleyDslNewProjectWizard extends org.eclipse.xtext.ui.wizard.XtextNewProjectWizard {
+
+ private WizardNewProjectCreationPage mainPage;
+
+ @Inject
+ public EmfParsleyDslNewProjectWizard(IProjectCreator projectCreator) {
+ super(projectCreator);
+ setWindowTitle("New EmfParsleyDsl Project");
+ }
+
+ /**
+ * Use this method to add pages to the wizard.
+ * The one-time generated version of this class will add a default new project page to the wizard.
+ */
+ public void addPages() {
+ mainPage = new WizardNewProjectCreationPage("basicNewProjectPage");
+ mainPage.setTitle("EmfParsleyDsl Project");
+ mainPage.setDescription("Create a new EmfParsleyDsl project.");
+ addPage(mainPage);
+ }
+
+ /**
+ * Use this method to read the project settings from the wizard pages and feed them into the project info class.
+ */
+ @Override
+ protected IProjectInfo getProjectInfo() {
+ org.eclipse.emf.parsley.dsl.ui.wizard.EmfParsleyDslProjectInfo projectInfo = new org.eclipse.emf.parsley.dsl.ui.wizard.EmfParsleyDslProjectInfo();
+ projectInfo.setProjectName(mainPage.getProjectName());
+ return projectInfo;
+ }
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectCreator.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectCreator.java
new file mode 100644
index 000000000..ba2635647
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src-gen/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectCreator.java
@@ -0,0 +1,61 @@
+package org.eclipse.emf.parsley.dsl.ui.wizard;
+
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.xtend.type.impl.java.JavaBeansMetaModel;
+import org.eclipse.xpand2.XpandExecutionContextImpl;
+import org.eclipse.xpand2.XpandFacade;
+import org.eclipse.xpand2.output.Outlet;
+import org.eclipse.xpand2.output.OutputImpl;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
+
+public class EmfParsleyDslProjectCreator extends org.eclipse.xtext.ui.wizard.AbstractPluginProjectCreator {
+
+ protected static final String DSL_GENERATOR_PROJECT_NAME = "org.eclipse.emf.parsley.dsl";
+
+ protected static final String SRC_ROOT = "src";
+ protected static final String SRC_GEN_ROOT = "src-gen";
+ protected final List<String> SRC_FOLDER_LIST = ImmutableList.of(SRC_ROOT, SRC_GEN_ROOT);
+
+ @Override
+ protected EmfParsleyDslProjectInfo getProjectInfo() {
+ return (EmfParsleyDslProjectInfo) super.getProjectInfo();
+ }
+
+ protected String getModelFolderName() {
+ return SRC_ROOT;
+ }
+
+ @Override
+ protected List<String> getAllFolders() {
+ return SRC_FOLDER_LIST;
+ }
+
+ @Override
+ protected List<String> getRequiredBundles() {
+ List<String> result = Lists.newArrayList(super.getRequiredBundles());
+ result.add(DSL_GENERATOR_PROJECT_NAME);
+ return result;
+ }
+
+ protected void enhanceProject(final IProject project, final IProgressMonitor monitor) throws CoreException {
+ OutputImpl output = new OutputImpl();
+ output.addOutlet(new Outlet(false, getEncoding(), null, true, project.getLocation().makeAbsolute().toOSString()));
+
+ XpandExecutionContextImpl execCtx = new XpandExecutionContextImpl(output, null);
+ execCtx.getResourceManager().setFileEncoding("UTF-8");
+ execCtx.registerMetaModel(new JavaBeansMetaModel());
+
+ XpandFacade facade = XpandFacade.create(execCtx);
+ facade.evaluate("org::eclipse::emf::parsley::dsl::ui::wizard::EmfParsleyDslNewProject::main", getProjectInfo());
+
+ project.refreshLocal(IResource.DEPTH_INFINITE, monitor);
+ }
+
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/EmfParsleyDslUiModule.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/EmfParsleyDslUiModule.java
new file mode 100644
index 000000000..f3b793010
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/EmfParsleyDslUiModule.java
@@ -0,0 +1,28 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.dsl.ui;
+
+import org.eclipse.emf.parsley.dsl.ui.builder.EmfParsleyDslDerivedResourceMarkers;
+import org.eclipse.emf.parsley.dsl.ui.wizard.EmfParsleyDslProjectCreatorCustom;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.generator.IDerivedResourceMarkers;
+import org.eclipse.xtext.ui.wizard.IProjectCreator;
+
+/**
+ * Use this class to register components to be used within the IDE.
+ */
+public class EmfParsleyDslUiModule extends org.eclipse.emf.parsley.dsl.ui.AbstractEmfParsleyDslUiModule {
+ public EmfParsleyDslUiModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends IProjectCreator> bindIProjectCreator() {
+ return EmfParsleyDslProjectCreatorCustom.class;
+ }
+
+ public Class<? extends IDerivedResourceMarkers> bindIDerivedResourceMarkers() {
+ return EmfParsleyDslDerivedResourceMarkers.class;
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/builder/EmfParsleyDslDerivedResourceMarkers.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/builder/EmfParsleyDslDerivedResourceMarkers.java
new file mode 100644
index 000000000..f0fd5e4f6
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/builder/EmfParsleyDslDerivedResourceMarkers.java
@@ -0,0 +1,38 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.dsl.ui.builder;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.xtext.builder.DerivedResourceMarkers;
+
+/**
+ * Custom implementation to deal with the "hack" to generate in the
+ * project root folder: in that output configuration we use "src" and then
+ * when generating we use "src/..", thus, when seraching for derived
+ * resource markers, we must make sure that, instead of searching in "src"
+ * we search in the root folder.
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class EmfParsleyDslDerivedResourceMarkers extends
+ DerivedResourceMarkers {
+
+ @Override
+ public Iterable<IMarker> findDerivedResourceMarkers(IResource file,
+ String generatorId) throws CoreException {
+ IResource resource = file;
+
+ String location = file.getLocation().toString();
+ if (location.endsWith("/src")) {
+ // we won't find derived resources in src:
+ // we'll find them in the parent folder
+ resource = file.getParent();
+ }
+
+ return super.findDerivedResourceMarkers(resource, generatorId);
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/contentassist/EmfParsleyDslProposalProvider.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/contentassist/EmfParsleyDslProposalProvider.java
new file mode 100644
index 000000000..c10087df0
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/contentassist/EmfParsleyDslProposalProvider.java
@@ -0,0 +1,101 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.dsl.ui.contentassist;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.dsl.model.EmfFeatureAccess;
+import org.eclipse.emf.parsley.dsl.model.LabelSpecification;
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+import org.eclipse.emf.parsley.dsl.ui.contentassist.AbstractEmfParsleyDslProposalProvider;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.xtext.Assignment;
+import org.eclipse.xtext.common.types.xtext.ui.ITypesProposalProvider;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder;
+
+import com.google.inject.Inject;
+/**
+ * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#contentAssist on how to customize content assistant
+ */
+public class EmfParsleyDslProposalProvider extends AbstractEmfParsleyDslProposalProvider {
+
+ @Inject
+ private ITypesProposalProvider typeProposalProvider;
+
+ @Inject
+ private JvmTypesBuilder typesBuilder;
+
+ @Override
+ public void completeViewSpecification_Type(EObject model,
+ Assignment assignment, ContentAssistContext context,
+ ICompletionProposalAcceptor acceptor) {
+ showOnlySubtypesOf(model, context, acceptor, IViewPart.class,
+ ModelPackage.Literals.VIEW_SPECIFICATION__TYPE);
+ }
+
+ @Override
+ public void completePropertyDescriptionSpecification_ParameterType(
+ EObject model, Assignment assignment, ContentAssistContext context,
+ ICompletionProposalAcceptor acceptor) {
+ showSubtypesOfEObjectForEmfFeatureAccess(model, context, acceptor);
+ }
+
+ @Override
+ public void completeFeatureSpecification_ParameterType(EObject model,
+ Assignment assignment, ContentAssistContext context,
+ ICompletionProposalAcceptor acceptor) {
+ showSubtypesOfEObjectForEmfFeatureAccess(model, context, acceptor);
+ }
+
+ @Override
+ public void completeFormControlSpecification_ParameterType(EObject model,
+ Assignment assignment, ContentAssistContext context,
+ ICompletionProposalAcceptor acceptor) {
+ showSubtypesOfEObjectForEmfFeatureAccess(model, context, acceptor);
+ }
+
+ @Override
+ public void completeExtendsClause_SuperType(EObject model,
+ Assignment assignment, ContentAssistContext context,
+ ICompletionProposalAcceptor acceptor) {
+ showOnlySubtypesOf(model, context, acceptor,
+ EmfComponentsGuiceModule.class,
+ ModelPackage.Literals.EXTENDS_CLAUSE__SUPER_TYPE);
+ }
+
+ protected void showSubtypesOfEObjectForEmfFeatureAccess(EObject model,
+ ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ showOnlySubtypesOf(model, context, acceptor, EObject.class,
+ ModelPackage.Literals.EMF_FEATURE_ACCESS__PARAMETER_TYPE);
+ }
+
+ protected void showOnlySubtypesOf(EObject model,
+ ContentAssistContext context, ICompletionProposalAcceptor acceptor,
+ Class<?> superType, EReference reference) {
+ typeProposalProvider.createSubTypeProposals(
+ typesBuilder.newTypeRef(model, superType).getType(), this,
+ context, reference, acceptor);
+ }
+
+ @Override
+ public void completeXFeatureCall_Feature(EObject model,
+ Assignment assignment, ContentAssistContext context,
+ ICompletionProposalAcceptor acceptor) {
+ if (model instanceof EmfFeatureAccess) {
+ createLocalVariableAndImplicitProposals(model, context, acceptor);
+ return;
+ }
+
+ if (model instanceof LabelSpecification) {
+ createLocalVariableAndImplicitProposals(context.getPreviousModel(),
+ context, acceptor);
+ return;
+ }
+
+ super.completeXFeatureCall_Feature(model, assignment, context, acceptor);
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/labeling/EmfParsleyDslDescriptionLabelProvider.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/labeling/EmfParsleyDslDescriptionLabelProvider.java
new file mode 100644
index 000000000..51e367fec
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/labeling/EmfParsleyDslDescriptionLabelProvider.java
@@ -0,0 +1,27 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.dsl.ui.labeling;
+
+import org.eclipse.xtext.xbase.ui.labeling.XbaseDescriptionLabelProvider;
+
+/**
+ * Provides labels for a IEObjectDescriptions and IResourceDescriptions.
+ *
+ * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider
+ */
+public class EmfParsleyDslDescriptionLabelProvider extends XbaseDescriptionLabelProvider {
+
+/*
+ //Labels and icons can be computed like this:
+
+ String text(IEObjectDescription ele) {
+ return "my "+ele.getName();
+ }
+
+ String image(IEObjectDescription ele) {
+ return ele.getEClass().getName() + ".gif";
+ }
+*/
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/labeling/EmfParsleyDslLabelProvider.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/labeling/EmfParsleyDslLabelProvider.java
new file mode 100644
index 000000000..ea6f8c3eb
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/labeling/EmfParsleyDslLabelProvider.java
@@ -0,0 +1,34 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.dsl.ui.labeling;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.xtext.xbase.ui.labeling.XbaseLabelProvider;
+
+import com.google.inject.Inject;
+
+/**
+ * Provides labels for a EObjects.
+ *
+ * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider
+ */
+public class EmfParsleyDslLabelProvider extends XbaseLabelProvider {
+
+ @Inject
+ public EmfParsleyDslLabelProvider(AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+
+/*
+ //Labels and icons can be computed like this:
+
+ String text(MyModel ele) {
+ return "my "+ele.getName();
+ }
+
+ String image(MyModel ele) {
+ return "MyModel.gif";
+ }
+*/
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/outline/EmfParsleyDslOutlineTreeProvider.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/outline/EmfParsleyDslOutlineTreeProvider.java
new file mode 100644
index 000000000..4669180af
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/outline/EmfParsleyDslOutlineTreeProvider.java
@@ -0,0 +1,14 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.dsl.ui.outline;
+
+import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider;
+
+/**
+ * customization of the default outline structure
+ *
+ */
+public class EmfParsleyDslOutlineTreeProvider extends DefaultOutlineTreeProvider {
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/quickfix/EmfParsleyDslQuickfixProvider.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/quickfix/EmfParsleyDslQuickfixProvider.java
new file mode 100644
index 000000000..f213fd32b
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/quickfix/EmfParsleyDslQuickfixProvider.java
@@ -0,0 +1,19 @@
+
+package org.eclipse.emf.parsley.dsl.ui.quickfix;
+
+import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider;
+
+public class EmfParsleyDslQuickfixProvider extends DefaultQuickfixProvider {
+
+// @Fix(MyJavaValidator.INVALID_NAME)
+// public void capitalizeName(final Issue issue, IssueResolutionAcceptor acceptor) {
+// acceptor.accept(issue, "Capitalize name", "Capitalize the name.", "upcase.png", new IModification() {
+// public void apply(IModificationContext context) throws BadLocationException {
+// IXtextDocument xtextDocument = context.getXtextDocument();
+// String firstLetter = xtextDocument.get(issue.getOffset(), 1);
+// xtextDocument.replace(issue.getOffset(), 1, firstLetter.toUpperCase());
+// }
+// });
+// }
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProject.xpt b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProject.xpt
new file mode 100644
index 000000000..41d72fba4
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProject.xpt
@@ -0,0 +1,28 @@
+«IMPORT org::eclipse::emf::parsley::dsl::ui::wizard»
+
+«DEFINE main FOR EmfParsleyDslProjectInfo»
+«EXPAND model FOR this»
+«EXPAND workflow FOR this»
+«ENDDEFINE»
+
+«DEFINE model FOR EmfParsleyDslProjectInfo»
+«FILE "src/model/Model.parsley"-»
+/*
+ * This is an example model
+ */
+Hello Xtext!
+«ENDFILE»
+«ENDDEFINE»
+
+«DEFINE workflow FOR EmfParsleyDslProjectInfo»
+«FILE "src/Generator.mwe2"-»
+module Generator
+
+var targetDir = "src-gen"
+var modelPath = "src/model"
+
+Workflow {
+ component = @workflow.EmfParsleyDslGenerator auto-inject {}
+}
+«ENDFILE»
+«ENDDEFINE»
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProjectFiles.xtend b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProjectFiles.xtend
new file mode 100644
index 000000000..5b592dc8b
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProjectFiles.xtend
@@ -0,0 +1,14 @@
+package org.eclipse.emf.parsley.dsl.ui.wizard
+
+class EmfParsleyDslNewProjectFiles {
+
+ def exampleDslFile(String projectName)
+'''
+import java.util.*
+
+/* «projectName» Emf Components Dsl Module file */
+module «projectName» {
+
+}
+'''
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectCreatorCustom.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectCreatorCustom.java
new file mode 100644
index 000000000..9c144929e
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectCreatorCustom.java
@@ -0,0 +1,88 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.dsl.ui.wizard;
+
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.parsley.dsl.generator.EmfParsleyDslOutputConfigurationProvider;
+import org.eclipse.emf.parsley.generator.common.EmfParsleyProjectFilesGenerator;
+import org.eclipse.emf.parsley.views.EmfComponentsViewsActivator;
+import org.eclipse.emf.parsley.wizards.NewEmfParsleyProjectSupport;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+public class EmfParsleyDslProjectCreatorCustom extends
+ EmfParsleyDslProjectCreator {
+ static EmfParsleyDslNewProjectFiles filesGenerator = new EmfParsleyDslNewProjectFiles();
+
+ static EmfParsleyProjectFilesGenerator projectFilesGenerator = new EmfParsleyProjectFilesGenerator();
+
+ @Override
+ protected List<String> getAllFolders() {
+ return ImmutableList.of(SRC_ROOT,
+ EmfParsleyDslOutputConfigurationProvider.EMFPARSLEY_GEN);
+ }
+
+ /**
+ * @return the names of the bundles that a new project requires. May not be
+ * <code>null</code>
+ */
+ protected List<String> getRequiredBundles() {
+ return Lists.newArrayList(
+ "org.eclipse.core.runtime",
+ "org.eclipse.ui",
+ EmfComponentsViewsActivator.PLUGIN_ID,
+ "org.eclipse.xtext.xbase.lib");
+ // don't add the components.dsl project dep
+ // otherwise the plugin will depend on xtext stuff
+ // which are not used by the generated code
+ // DSL_GENERATOR_PROJECT_NAME);
+ }
+
+ @Override
+ protected String getActivatorClassName() {
+ return getProjectInfo().getProjectName()
+ + "."
+ + projectFilesGenerator.activatorName(
+ getProjectInfo().getProjectName()).toString();
+ }
+
+ @Override
+ protected void enhanceProject(final IProject project,
+ final IProgressMonitor monitor) throws CoreException {
+ String projectName = getProjectInfo().getProjectName();
+
+ String srcFolder = "src";
+ String projectPackagePath = srcFolder + "/"
+ + projectName.replaceAll("\\.", "/");
+
+ String[] paths = { projectPackagePath };
+ NewEmfParsleyProjectSupport.addToProjectStructure(project, paths,
+ monitor);
+
+ NewEmfParsleyProjectSupport.createActivator(project, projectName,
+ projectPackagePath, monitor);
+ NewEmfParsleyProjectSupport.createExecutableExtensionFactory(
+ project, projectName, projectPackagePath, monitor);
+ NewEmfParsleyProjectSupport.createModule(project, projectName,
+ projectPackagePath, "EmfComponentsGuiceModuleGen", monitor);
+
+ NewEmfParsleyProjectSupport.createProjectFile(project,
+ projectPackagePath + "/module.parsley", filesGenerator
+ .exampleDslFile(projectName).toString(),
+ NewEmfParsleyProjectSupport
+ .createSubProgressMonitor(monitor));
+
+ project.refreshLocal(IResource.DEPTH_INFINITE, monitor);
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectInfo.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectInfo.java
new file mode 100644
index 000000000..5befad2f0
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectInfo.java
@@ -0,0 +1,7 @@
+package org.eclipse.emf.parsley.dsl.ui.wizard;
+
+import org.eclipse.xtext.ui.wizard.DefaultProjectInfo;
+
+public class EmfParsleyDslProjectInfo extends DefaultProjectInfo {
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/templates/templates.xml b/dsl/org.eclipse.emf.parsley.dsl.ui/templates/templates.xml
new file mode 100644
index 000000000..992808e3f
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/templates/templates.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><templates><template autoinsert="true" context="org.eclipse.emf.parsley.dsl.EmfComponentsDsl.ViewSpecification" deleted="false" description="Template for ViewSpecification" enabled="true" name="ViewSpecification" id="viewpart">viewpart ${id} {
+ viewname "View Name"
+ viewclass ${type:CrossReference(JvmTypeReference.type)}
+ // viewcategory my.category
+}</template></templates> \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/xtend-gen/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProjectFiles.java b/dsl/org.eclipse.emf.parsley.dsl.ui/xtend-gen/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProjectFiles.java
new file mode 100644
index 000000000..8b1e5115a
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/xtend-gen/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProjectFiles.java
@@ -0,0 +1,26 @@
+package org.eclipse.emf.parsley.dsl.ui.wizard;
+
+import org.eclipse.xtend2.lib.StringConcatenation;
+
+@SuppressWarnings("all")
+public class EmfParsleyDslNewProjectFiles {
+ public CharSequence exampleDslFile(final String projectName) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("import java.util.*");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("/* ");
+ _builder.append(projectName, "");
+ _builder.append(" Emf Components Dsl Module file */");
+ _builder.newLineIfNotEmpty();
+ _builder.append("module ");
+ _builder.append(projectName, "");
+ _builder.append(" {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/.antlr-generator-3.2.0.jar b/dsl/org.eclipse.emf.parsley.dsl/.antlr-generator-3.2.0.jar
new file mode 100644
index 000000000..424349240
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/.antlr-generator-3.2.0.jar
Binary files differ
diff --git a/dsl/org.eclipse.emf.parsley.dsl/.classpath b/dsl/org.eclipse.emf.parsley.dsl/.classpath
new file mode 100644
index 000000000..ff563c581
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/dsl/org.eclipse.emf.parsley.dsl/.launch/Generate Language Infrastructure (it.rcpvision.emf.components.dsl).launch b/dsl/org.eclipse.emf.parsley.dsl/.launch/Generate Language Infrastructure (it.rcpvision.emf.components.dsl).launch
new file mode 100644
index 000000000..65e486f8a
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/.launch/Generate Language Infrastructure (it.rcpvision.emf.components.dsl).launch
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.emf.mwe2.launch.Mwe2LaunchConfigurationType">
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; id=&quot;1299248699643_13&quot; label=&quot;working set&quot; name=&quot;working set&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.emf.parsley.dsl&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.emf.parsley.dsl.generator&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.emf.parsley.dsl.tests&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.emf.parsley.dsl.ui&quot; type=&quot;4&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.dsl"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="src/org/eclipse/emf/parsley/dsl/GenerateEmfComponentsDsl.mwe2"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.dsl"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx512m"/>
+</launchConfiguration>
diff --git a/dsl/org.eclipse.emf.parsley.dsl/.project b/dsl/org.eclipse.emf.parsley.dsl/.project
new file mode 100644
index 000000000..a06d1ad67
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.dsl</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/dsl/org.eclipse.emf.parsley.dsl/.settings/org.eclipse.core.resources.prefs b/dsl/org.eclipse.emf.parsley.dsl/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 000000000..99f26c020
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/dsl/org.eclipse.emf.parsley.dsl/.settings/org.eclipse.jdt.core.prefs b/dsl/org.eclipse.emf.parsley.dsl/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..7f9744653
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,91 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/dsl/org.eclipse.emf.parsley.dsl/.settings/org.eclipse.jdt.launching.prefs b/dsl/org.eclipse.emf.parsley.dsl/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/dsl/org.eclipse.emf.parsley.dsl/META-INF/MANIFEST.MF b/dsl/org.eclipse.emf.parsley.dsl/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..91606b982
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/META-INF/MANIFEST.MF
@@ -0,0 +1,39 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.emf.parsley.dsl
+Bundle-Vendor: My Company
+Bundle-Version: 0.1.0.qualifier
+Bundle-SymbolicName: org.eclipse.emf.parsley.dsl;singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.xtext;bundle-version="[2.4.2,2.5.0)";visibility:=reexport,
+ org.eclipse.xtext.xbase;bundle-version="[2.4.2,2.5.0)";resolution:=optional;visibility:=reexport,
+ org.eclipse.xtext.generator;bundle-version="[2.4.2,2.5.0)";resolution:=optional,
+ org.apache.commons.logging;bundle-version="1.0.4";resolution:=optional,
+ org.eclipse.emf.codegen.ecore;bundle-version="2.7.0";resolution:=optional,
+ org.eclipse.emf.mwe.utils;bundle-version="[1.3.0,1.4.0)";resolution:=optional,
+ org.eclipse.emf.mwe2.launch;bundle-version="[2.4.0,2.5.0)";resolution:=optional,
+ org.eclipse.xtext.util;bundle-version="[2.4.2,2.5.0)",
+ org.eclipse.emf.ecore;bundle-version="2.7.0",
+ org.eclipse.emf.common;bundle-version="2.7.0",
+ org.antlr.runtime,
+ org.eclipse.xtext.common.types;bundle-version="[2.4.2,2.5.0)",
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.4.2,2.5.0)",
+ org.eclipse.emf.parsley;bundle-version="0.1.0";visibility:=reexport,
+ org.eclipse.emf.parsley.generator.common;bundle-version="0.1.0"
+Import-Package: org.apache.log4j
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.parsley.dsl,
+ org.eclipse.emf.parsley.dsl.formatting,
+ org.eclipse.emf.parsley.dsl.generator,
+ org.eclipse.emf.parsley.dsl.jvmmodel,
+ org.eclipse.emf.parsley.dsl.model,
+ org.eclipse.emf.parsley.dsl.model.impl,
+ org.eclipse.emf.parsley.dsl.model.util,
+ org.eclipse.emf.parsley.dsl.parser.antlr,
+ org.eclipse.emf.parsley.dsl.parser.antlr.internal,
+ org.eclipse.emf.parsley.dsl.scoping,
+ org.eclipse.emf.parsley.dsl.serializer,
+ org.eclipse.emf.parsley.dsl.services,
+ org.eclipse.emf.parsley.dsl.util,
+ org.eclipse.emf.parsley.dsl.validation
+
diff --git a/dsl/org.eclipse.emf.parsley.dsl/build.properties b/dsl/org.eclipse.emf.parsley.dsl/build.properties
new file mode 100644
index 000000000..31255ed05
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/build.properties
@@ -0,0 +1,6 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl/plugin.xml b/dsl/org.eclipse.emf.parsley.dsl/plugin.xml
new file mode 100644
index 000000000..063e86859
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/plugin.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://www.eclipse.org/emf/parsley/dsl/EmfParsleyDsl"
+ class = "org.eclipse.emf.parsley.dsl.model.ModelPackage"
+ genModel = "org/eclipse/emf/parsley/dsl/EmfParsleyDsl.genmodel" />
+
+ </extension>
+
+
+
+
+
+</plugin>
diff --git a/dsl/org.eclipse.emf.parsley.dsl/plugin.xml_gen b/dsl/org.eclipse.emf.parsley.dsl/plugin.xml_gen
new file mode 100644
index 000000000..063e86859
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/plugin.xml_gen
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://www.eclipse.org/emf/parsley/dsl/EmfParsleyDsl"
+ class = "org.eclipse.emf.parsley.dsl.model.ModelPackage"
+ genModel = "org/eclipse/emf/parsley/dsl/EmfParsleyDsl.genmodel" />
+
+ </extension>
+
+
+
+
+
+</plugin>
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/AbstractEmfParsleyDslRuntimeModule.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/AbstractEmfParsleyDslRuntimeModule.java
new file mode 100644
index 000000000..1c185f663
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/AbstractEmfParsleyDslRuntimeModule.java
@@ -0,0 +1,352 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.dsl;
+
+import java.util.Properties;
+
+import org.eclipse.xtext.Constants;
+import org.eclipse.xtext.service.DefaultRuntimeModule;
+
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
+
+/**
+ * Manual modifications go to {org.eclipse.emf.parsley.dsl.EmfParsleyDslRuntimeModule}
+ */
+ @SuppressWarnings("all")
+public abstract class AbstractEmfParsleyDslRuntimeModule extends DefaultRuntimeModule {
+
+ protected Properties properties = null;
+
+ @Override
+ public void configure(Binder binder) {
+ properties = tryBindProperties(binder, "org/eclipse/emf/parsley/dsl/EmfParsleyDsl.properties");
+ super.configure(binder);
+ }
+
+ public void configureLanguageName(Binder binder) {
+ binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.eclipse.emf.parsley.dsl.EmfParsleyDsl");
+ }
+
+ public void configureFileExtensions(Binder binder) {
+ if (properties == null || properties.getProperty(Constants.FILE_EXTENSIONS) == null)
+ binder.bind(String.class).annotatedWith(Names.named(Constants.FILE_EXTENSIONS)).toInstance("parsley");
+ }
+
+ // contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+ public Class<? extends org.eclipse.xtext.IGrammarAccess> bindIGrammarAccess() {
+ return org.eclipse.emf.parsley.dsl.services.EmfParsleyDslGrammarAccess.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+ public Class<? extends org.eclipse.xtext.serializer.sequencer.ISemanticSequencer> bindISemanticSequencer() {
+ return org.eclipse.emf.parsley.dsl.serializer.EmfParsleyDslSemanticSequencer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+ public Class<? extends org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer> bindISyntacticSequencer() {
+ return org.eclipse.emf.parsley.dsl.serializer.EmfParsleyDslSyntacticSequencer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+ public Class<? extends org.eclipse.xtext.serializer.ISerializer> bindISerializer() {
+ return org.eclipse.xtext.serializer.impl.Serializer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.IParser> bindIParser() {
+ return org.eclipse.emf.parsley.dsl.parser.antlr.EmfParsleyDslParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.ITokenToStringConverter> bindITokenToStringConverter() {
+ return org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider> bindIAntlrTokenFileProvider() {
+ return org.eclipse.emf.parsley.dsl.parser.antlr.EmfParsleyDslAntlrTokenFileProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.Lexer> bindLexer() {
+ return org.eclipse.emf.parsley.dsl.parser.antlr.internal.InternalEmfParsleyDslLexer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public com.google.inject.Provider<org.eclipse.emf.parsley.dsl.parser.antlr.internal.InternalEmfParsleyDslLexer> provideInternalEmfParsleyDslLexer() {
+ return org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.emf.parsley.dsl.parser.antlr.internal.InternalEmfParsleyDslLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public void configureRuntimeLexer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.parser.antlr.LexerBindings.RUNTIME)).to(org.eclipse.emf.parsley.dsl.parser.antlr.internal.InternalEmfParsleyDslLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.ITokenDefProvider> bindITokenDefProvider() {
+ return org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.IUnorderedGroupHelper> bindIUnorderedGroupHelper() {
+ return org.eclipse.xtext.parser.antlr.UnorderedGroupHelper.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.validation.JavaValidatorFragment
+ @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.eclipse.emf.parsley.dsl.validation.EmfParsleyDslJavaValidator> bindEmfParsleyDslJavaValidator() {
+ return org.eclipse.emf.parsley.dsl.validation.EmfParsleyDslJavaValidator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+ public void configureIgnoreCaseLinking(com.google.inject.Binder binder) {
+ binder.bindConstant().annotatedWith(org.eclipse.xtext.scoping.IgnoreCaseLinking.class).to(false);
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public Class<? extends org.eclipse.xtext.resource.IContainer.Manager> bindIContainer$Manager() {
+ return org.eclipse.xtext.resource.containers.StateBasedContainerManager.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public Class<? extends org.eclipse.xtext.resource.containers.IAllContainersState.Provider> bindIAllContainersState$Provider() {
+ return org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public void configureIResourceDescriptions(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.formatting.FormatterFragment
+ public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() {
+ return org.eclipse.emf.parsley.dsl.formatting.EmfParsleyDslFormatter.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public java.lang.ClassLoader bindClassLoaderToInstance() {
+ return getClass().getClassLoader();
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public org.eclipse.xtext.common.types.TypesFactory bindTypesFactoryToInstance() {
+ return org.eclipse.xtext.common.types.TypesFactory.eINSTANCE;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.access.IJvmTypeProvider.Factory> bindIJvmTypeProvider$Factory() {
+ return org.eclipse.xtext.common.types.access.ClasspathTypeProviderFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.xtext.AbstractTypeScopeProvider> bindAbstractTypeScopeProvider() {
+ return org.eclipse.xtext.common.types.xtext.ClasspathBasedTypeScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.xbase.interpreter.IEvaluationContext> bindIEvaluationContext() {
+ return org.eclipse.xtext.xbase.interpreter.impl.DefaultEvaluationContext.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.xbase.interpreter.IExpressionInterpreter> bindIExpressionInterpreter() {
+ return org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.naming.IQualifiedNameConverter> bindIQualifiedNameConverter() {
+ return org.eclipse.xtext.xbase.XbaseQualifiedNameConverter.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.naming.IQualifiedNameProvider> bindIQualifiedNameProvider() {
+ return org.eclipse.xtext.xbase.scoping.XbaseQualifiedNameProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.conversion.IValueConverterService> bindIValueConverterService() {
+ return org.eclipse.xtext.xbase.conversion.XbaseValueConverterService.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public void configureLinkingIScopeProvider(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(org.eclipse.xtext.linking.LinkingScopeProviderBinding.class).to(org.eclipse.xtext.xbase.scoping.batch.IBatchScopeProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public void configureSerializerIScopeProvider(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(org.eclipse.xtext.serializer.tokens.SerializerScopeProviderBinding.class).to(org.eclipse.xtext.xbase.serializer.SerializerScopeProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.xbase.typing.ITypeProvider> bindITypeProvider() {
+ return org.eclipse.xtext.xbase.typesystem.legacy.XbaseBatchTypeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public void configureIScopeProviderDelegate(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(Names.named(org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(org.eclipse.xtext.xbase.scoping.XImportSectionNamespaceScopeProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.linking.ILinker> bindILinker() {
+ return org.eclipse.xtext.xbase.linking.XbaseLazyLinker.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.util.TypeConformanceComputer> bindTypeConformanceComputer() {
+ return org.eclipse.xtext.xbase.typesystem.legacy.LegacyTypeConformanceComputer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.resource.XtextResource> bindXtextResource() {
+ return org.eclipse.xtext.xbase.resource.BatchLinkableResource.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.eclipse.xtext.xbase.validation.JvmTypeReferencesValidator> bindJvmTypeReferencesValidator() {
+ return org.eclipse.xtext.xbase.validation.JvmTypeReferencesValidator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.xbase.featurecalls.IdentifiableSimpleNameProvider> bindIdentifiableSimpleNameProvider() {
+ return org.eclipse.xtext.xbase.featurecalls.IdentifiableSimpleNameProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.resource.IDerivedStateComputer> bindIDerivedStateComputer() {
+ return org.eclipse.xtext.xbase.jvmmodel.JvmModelAssociator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.resource.IResourceDescription.Manager> bindIResourceDescription$Manager() {
+ return org.eclipse.xtext.resource.DerivedStateAwareResourceDescriptionManager.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.generator.IGenerator> bindIGenerator() {
+ return org.eclipse.xtext.xbase.compiler.JvmModelGenerator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public org.eclipse.xtext.xtype.XtypeFactory bindXtypeFactoryToInstance() {
+ return org.eclipse.xtext.xtype.XtypeFactory.eINSTANCE;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.util.TypeArgumentContextProvider> bindTypeArgumentContextProvider() {
+ return org.eclipse.xtext.xbase.typesystem.legacy.LegacyTypeArgumentContextProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.debug.IStratumBreakpointSupport> bindIStratumBreakpointSupport() {
+ return org.eclipse.xtext.xbase.debug.XbaseStratumBreakpointSupport.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.generator.LineSeparatorHarmonizer> bindLineSeparatorHarmonizer() {
+ return org.eclipse.xtext.xbase.compiler.output.TraceAwarePostProcessor.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.resource.IDefaultResourceDescriptionStrategy> bindIDefaultResourceDescriptionStrategy() {
+ return org.eclipse.xtext.xbase.resource.XbaseResourceDescriptionStrategy.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.validation.SeverityConverter> bindSeverityConverter() {
+ return org.eclipse.xtext.xbase.validation.XbaseSeverityConverter.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.validation.ConfigurableIssueCodesProvider> bindConfigurableIssueCodesProvider() {
+ return org.eclipse.xtext.xbase.validation.XbaseConfigurableIssueCodes.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.util.VisibilityService> bindVisibilityService() {
+ return org.eclipse.xtext.xbase.typesystem.legacy.LegacyVisibilityService.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.util.FeatureOverridesService> bindFeatureOverridesService() {
+ return org.eclipse.xtext.xbase.typesystem.legacy.LegacyFeatureOverridesService.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.resource.EObjectAtOffsetHelper> bindEObjectAtOffsetHelper() {
+ return org.eclipse.xtext.xbase.linking.BrokenConstructorCallAwareEObjectAtOffsetHelper.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.validation.CancelableDiagnostician> bindCancelableDiagnostician() {
+ return org.eclipse.xtext.xbase.validation.XbaseDiagnostician.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.xbase.scoping.featurecalls.StaticImplicitMethodsFeatureForTypeProvider.ExtensionClassNameProvider> bindStaticImplicitMethodsFeatureForTypeProvider$ExtensionClassNameProvider() {
+ return org.eclipse.xtext.xbase.scoping.batch.ImplicitlyImportedTypesAdapter.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.xbase.typesystem.computation.ITypeComputer> bindITypeComputer() {
+ return org.eclipse.xtext.xbase.annotations.typesystem.XbaseWithAnnotationsTypeComputer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.scoping.IScopeProvider> bindIScopeProvider() {
+ return org.eclipse.xtext.xbase.annotations.scoping.XbaseWithAnnotationsScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.xbase.scoping.batch.XbaseBatchScopeProvider> bindXbaseBatchScopeProvider() {
+ return org.eclipse.xtext.xbase.annotations.typesystem.XbaseWithAnnotationsBatchScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.linking.ILinkingDiagnosticMessageProvider> bindILinkingDiagnosticMessageProvider() {
+ return org.eclipse.xtext.xbase.annotations.validation.UnresolvedAnnotationTypeAwareMessageProducer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.resource.ILocationInFileProvider> bindILocationInFileProvider() {
+ return org.eclipse.xtext.xbase.jvmmodel.JvmLocationInFileProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.scoping.IGlobalScopeProvider> bindIGlobalScopeProvider() {
+ return org.eclipse.xtext.common.types.xtext.TypesAwareDefaultGlobalScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.xbase.validation.FeatureNameValidator> bindFeatureNameValidator() {
+ return org.eclipse.xtext.xbase.validation.LogicalContainerAwareFeatureNameValidator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.xbase.typesystem.internal.DefaultBatchTypeResolver> bindDefaultBatchTypeResolver() {
+ return org.eclipse.xtext.xbase.typesystem.internal.LogicalContainerAwareBatchTypeResolver.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.xbase.typesystem.internal.DefaultReentrantTypeResolver> bindDefaultReentrantTypeResolver() {
+ return org.eclipse.xtext.xbase.typesystem.internal.LogicalContainerAwareReentrantTypeResolver.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.validation.IResourceValidator> bindIResourceValidator() {
+ return org.eclipse.xtext.xbase.annotations.validation.DerivedStateAwareResourceValidator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.xbase.XbaseGeneratorFragment
+ public Class<? extends org.eclipse.xtext.xbase.jvmmodel.IJvmModelInferrer> bindIJvmModelInferrer() {
+ return org.eclipse.emf.parsley.dsl.jvmmodel.EmfParsleyDslJvmModelInferrer.class;
+ }
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDsl.ecore b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDsl.ecore
new file mode 100644
index 000000000..4784b36c8
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDsl.ecore
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model" nsURI="http://www.eclipse.org/emf/parsley/dsl/EmfParsleyDsl"
+ nsPrefix="model">
+ <eClassifiers xsi:type="ecore:EClass" name="Model">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="importSection" eType="ecore:EClass ../../../../../../../org.eclipse.xtext.xbase/model/Xtype.ecore#//XImportSection"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="module" eType="#//Module"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Module" eSuperTypes="#//WithExtendsClause">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="extendsClause" eType="#//ExtendsClause"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labelProvider" eType="#//LabelProvider"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="propertyDescriptionProvider"
+ eType="#//PropertyDescriptionProvider" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="featuresProvider" eType="#//FeaturesProvider"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="formControlFactory" eType="#//FormControlFactory"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="proposalCreator" eType="#//ProposalCreator"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="viewerContentProvider"
+ eType="#//ViewerContentProvider" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parts" upperBound="-1"
+ eType="#//PartSpecification" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExtendsClause">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="superType" eType="ecore:EClass ../../../../../../../org.eclipse.xtext.common.types/model/JavaVMTypes.ecore#//JvmTypeReference"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelProvider">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labelSpecifications" upperBound="-1"
+ eType="#//LabelSpecification" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="imageSpecifications" upperBound="-1"
+ eType="#//LabelSpecification" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelSpecification">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parameterType" eType="ecore:EClass ../../../../../../../org.eclipse.xtext.common.types/model/JavaVMTypes.ecore#//JvmTypeReference"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="ecore:EClass ../../../../../../../org.eclipse.xtext.xbase/model/Xbase.ecore#//XExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PropertyDescriptionProvider">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labelSpecifications" upperBound="-1"
+ eType="#//PropertyDescriptionSpecification" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PropertyDescriptionSpecification" eSuperTypes="#//EmfFeatureAccess">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="feature" eType="ecore:EClass ../../../../../../../org.eclipse.xtext.common.types/model/JavaVMTypes.ecore#//JvmMember"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="ecore:EClass ../../../../../../../org.eclipse.xtext.xbase/model/Xbase.ecore#//XExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeaturesProvider">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="featureSpecifications"
+ upperBound="-1" eType="#//FeatureSpecification" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureSpecification" eSuperTypes="#//EmfFeatureAccess">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="features" unique="false"
+ upperBound="-1" eType="ecore:EClass ../../../../../../../org.eclipse.xtext.common.types/model/JavaVMTypes.ecore#//JvmMember"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FormControlFactory">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="controlSpecifications"
+ upperBound="-1" eType="#//FormControlSpecification" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FormControlSpecification" eSuperTypes="#//EmfFeatureAccess">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="feature" eType="ecore:EClass ../../../../../../../org.eclipse.xtext.common.types/model/JavaVMTypes.ecore#//JvmMember"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="ecore:EClass ../../../../../../../org.eclipse.xtext.xbase/model/Xbase.ecore#//XExpression"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="ecore:EClass ../../../../../../../org.eclipse.xtext.xbase/model/Xbase.ecore#//XExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProposalCreator">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="proposalsSpecifications"
+ upperBound="-1" eType="#//ProposalSpecification" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProposalSpecification" eSuperTypes="#//EmfFeatureAccess">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="feature" eType="ecore:EClass ../../../../../../../org.eclipse.xtext.common.types/model/JavaVMTypes.ecore#//JvmMember"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="ecore:EClass ../../../../../../../org.eclipse.xtext.xbase/model/Xbase.ecore#//XExpression"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ViewerContentProvider">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childrenSpecifications"
+ upperBound="-1" eType="#//LabelSpecification" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EmfFeatureAccess">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parameterType" eType="ecore:EClass ../../../../../../../org.eclipse.xtext.common.types/model/JavaVMTypes.ecore#//JvmTypeReference"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="WithExtendsClause"/>
+ <eClassifiers xsi:type="ecore:EClass" name="PartSpecification"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ViewSpecification" eSuperTypes="#//PartSpecification">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="ecore:EClass ../../../../../../../org.eclipse.xtext.common.types/model/JavaVMTypes.ecore#//JvmTypeReference"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDsl.genmodel b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDsl.genmodel
new file mode 100644
index 000000000..83ca7290d
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDsl.genmodel
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.parsley.dsl/src-gen" editDirectory="/org.eclipse.emf.parsley.dsl.edit/src"
+ editorDirectory="/org.eclipse.emf.parsley.dsl.editor/src" modelPluginID="org.eclipse.emf.parsley.dsl"
+ forceOverwrite="true" modelName="EmfParsleyDsl" updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ complianceLevel="5.0" copyrightFields="false" editPluginID="org.eclipse.emf.parsley.dsl.edit"
+ editorPluginID="org.eclipse.emf.parsley.dsl.editor" runtimeVersion="2.9" usedGenPackages="../../../../../../../org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel#//types ../../../../../../../org.eclipse.xtext.xbase/model/Xbase.genmodel#//xbase ../../../../../../../org.eclipse.xtext.xbase/model/Xbase.genmodel#//xtype">
+ <genPackages prefix="Model" basePackage="org.eclipse.emf.parsley.dsl" disposableProviderFactory="true"
+ ecorePackage="EmfParsleyDsl.ecore#/">
+ <genClasses ecoreClass="EmfParsleyDsl.ecore#//Model">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//Model/importSection"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//Model/module"/>
+ </genClasses>
+ <genClasses ecoreClass="EmfParsleyDsl.ecore#//Module">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EmfParsleyDsl.ecore#//Module/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//Module/extendsClause"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//Module/labelProvider"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//Module/propertyDescriptionProvider"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//Module/featuresProvider"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//Module/formControlFactory"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//Module/proposalCreator"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//Module/viewerContentProvider"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//Module/parts"/>
+ </genClasses>
+ <genClasses ecoreClass="EmfParsleyDsl.ecore#//ExtendsClause">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//ExtendsClause/superType"/>
+ </genClasses>
+ <genClasses ecoreClass="EmfParsleyDsl.ecore#//LabelProvider">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//LabelProvider/labelSpecifications"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//LabelProvider/imageSpecifications"/>
+ </genClasses>
+ <genClasses ecoreClass="EmfParsleyDsl.ecore#//LabelSpecification">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//LabelSpecification/parameterType"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EmfParsleyDsl.ecore#//LabelSpecification/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//LabelSpecification/expression"/>
+ </genClasses>
+ <genClasses ecoreClass="EmfParsleyDsl.ecore#//PropertyDescriptionProvider">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//PropertyDescriptionProvider/labelSpecifications"/>
+ </genClasses>
+ <genClasses ecoreClass="EmfParsleyDsl.ecore#//PropertyDescriptionSpecification">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//PropertyDescriptionSpecification/feature"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//PropertyDescriptionSpecification/expression"/>
+ </genClasses>
+ <genClasses ecoreClass="EmfParsleyDsl.ecore#//FeaturesProvider">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//FeaturesProvider/featureSpecifications"/>
+ </genClasses>
+ <genClasses ecoreClass="EmfParsleyDsl.ecore#//FeatureSpecification">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//FeatureSpecification/features"/>
+ </genClasses>
+ <genClasses ecoreClass="EmfParsleyDsl.ecore#//FormControlFactory">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//FormControlFactory/controlSpecifications"/>
+ </genClasses>
+ <genClasses ecoreClass="EmfParsleyDsl.ecore#//FormControlSpecification">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//FormControlSpecification/feature"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//FormControlSpecification/expression"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//FormControlSpecification/target"/>
+ </genClasses>
+ <genClasses ecoreClass="EmfParsleyDsl.ecore#//ProposalCreator">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//ProposalCreator/proposalsSpecifications"/>
+ </genClasses>
+ <genClasses ecoreClass="EmfParsleyDsl.ecore#//ProposalSpecification">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//ProposalSpecification/feature"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//ProposalSpecification/expression"/>
+ </genClasses>
+ <genClasses ecoreClass="EmfParsleyDsl.ecore#//ViewerContentProvider">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//ViewerContentProvider/childrenSpecifications"/>
+ </genClasses>
+ <genClasses ecoreClass="EmfParsleyDsl.ecore#//EmfFeatureAccess">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//EmfFeatureAccess/parameterType"/>
+ </genClasses>
+ <genClasses ecoreClass="EmfParsleyDsl.ecore#//WithExtendsClause"/>
+ <genClasses ecoreClass="EmfParsleyDsl.ecore#//PartSpecification"/>
+ <genClasses ecoreClass="EmfParsleyDsl.ecore#//ViewSpecification">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EmfParsleyDsl.ecore#//ViewSpecification/id"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EmfParsleyDsl.ecore#//ViewSpecification/viewName"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference EmfParsleyDsl.ecore#//ViewSpecification/type"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute EmfParsleyDsl.ecore#//ViewSpecification/category"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDsl.xtextbin b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDsl.xtextbin
new file mode 100644
index 000000000..3d70d45fc
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDsl.xtextbin
Binary files differ
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDslStandaloneSetupGenerated.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDslStandaloneSetupGenerated.java
new file mode 100644
index 000000000..9601561ac
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/EmfParsleyDslStandaloneSetupGenerated.java
@@ -0,0 +1,46 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.dsl;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.ISetup;
+import org.eclipse.emf.ecore.resource.Resource;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+/**
+ * Generated from StandaloneSetup.xpt!
+ */
+@SuppressWarnings("all")
+public class EmfParsleyDslStandaloneSetupGenerated implements ISetup {
+
+ public Injector createInjectorAndDoEMFRegistration() {
+ org.eclipse.xtext.xbase.XbaseStandaloneSetup.doSetup();
+
+ Injector injector = createInjector();
+ register(injector);
+ return injector;
+ }
+
+ public Injector createInjector() {
+ return Guice.createInjector(new org.eclipse.emf.parsley.dsl.EmfParsleyDslRuntimeModule());
+ }
+
+ public void register(Injector injector) {
+ if (!EPackage.Registry.INSTANCE.containsKey("http://www.eclipse.org/emf/parsley/dsl/EmfParsleyDsl")) {
+ EPackage.Registry.INSTANCE.put("http://www.eclipse.org/emf/parsley/dsl/EmfParsleyDsl", org.eclipse.emf.parsley.dsl.model.ModelPackage.eINSTANCE);
+ }
+
+ org.eclipse.xtext.resource.IResourceFactory resourceFactory = injector.getInstance(org.eclipse.xtext.resource.IResourceFactory.class);
+ org.eclipse.xtext.resource.IResourceServiceProvider serviceProvider = injector.getInstance(org.eclipse.xtext.resource.IResourceServiceProvider.class);
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("parsley", resourceFactory);
+ org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("parsley", serviceProvider);
+
+
+
+
+
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/EmfFeatureAccess.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/EmfFeatureAccess.java
new file mode 100644
index 000000000..bfcb75337
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/EmfFeatureAccess.java
@@ -0,0 +1,53 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.xtext.common.types.JvmTypeReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Emf Feature Access</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.EmfFeatureAccess#getParameterType <em>Parameter Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getEmfFeatureAccess()
+ * @model
+ * @generated
+ */
+public interface EmfFeatureAccess extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Parameter Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parameter Type</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parameter Type</em>' containment reference.
+ * @see #setParameterType(JvmTypeReference)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getEmfFeatureAccess_ParameterType()
+ * @model containment="true"
+ * @generated
+ */
+ JvmTypeReference getParameterType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.EmfFeatureAccess#getParameterType <em>Parameter Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Parameter Type</em>' containment reference.
+ * @see #getParameterType()
+ * @generated
+ */
+ void setParameterType(JvmTypeReference value);
+
+} // EmfFeatureAccess
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ExtendsClause.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ExtendsClause.java
new file mode 100644
index 000000000..b37b8c65c
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ExtendsClause.java
@@ -0,0 +1,53 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.xtext.common.types.JvmTypeReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Extends Clause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.ExtendsClause#getSuperType <em>Super Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getExtendsClause()
+ * @model
+ * @generated
+ */
+public interface ExtendsClause extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Super Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Super Type</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Super Type</em>' containment reference.
+ * @see #setSuperType(JvmTypeReference)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getExtendsClause_SuperType()
+ * @model containment="true"
+ * @generated
+ */
+ JvmTypeReference getSuperType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.ExtendsClause#getSuperType <em>Super Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Super Type</em>' containment reference.
+ * @see #getSuperType()
+ * @generated
+ */
+ void setSuperType(JvmTypeReference value);
+
+} // ExtendsClause
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/FeatureSpecification.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/FeatureSpecification.java
new file mode 100644
index 000000000..70716e9c3
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/FeatureSpecification.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.xtext.common.types.JvmMember;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Feature Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.FeatureSpecification#getFeatures <em>Features</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getFeatureSpecification()
+ * @model
+ * @generated
+ */
+public interface FeatureSpecification extends EmfFeatureAccess
+{
+ /**
+ * Returns the value of the '<em><b>Features</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.xtext.common.types.JvmMember}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Features</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Features</em>' reference list.
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getFeatureSpecification_Features()
+ * @model
+ * @generated
+ */
+ EList<JvmMember> getFeatures();
+
+} // FeatureSpecification
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/FeaturesProvider.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/FeaturesProvider.java
new file mode 100644
index 000000000..2a98620c8
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/FeaturesProvider.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Features Provider</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.FeaturesProvider#getFeatureSpecifications <em>Feature Specifications</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getFeaturesProvider()
+ * @model
+ * @generated
+ */
+public interface FeaturesProvider extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Feature Specifications</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.dsl.model.FeatureSpecification}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Feature Specifications</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Feature Specifications</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getFeaturesProvider_FeatureSpecifications()
+ * @model containment="true"
+ * @generated
+ */
+ EList<FeatureSpecification> getFeatureSpecifications();
+
+} // FeaturesProvider
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/FormControlFactory.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/FormControlFactory.java
new file mode 100644
index 000000000..18985c590
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/FormControlFactory.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Form Control Factory</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.FormControlFactory#getControlSpecifications <em>Control Specifications</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getFormControlFactory()
+ * @model
+ * @generated
+ */
+public interface FormControlFactory extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Control Specifications</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.dsl.model.FormControlSpecification}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Control Specifications</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Control Specifications</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getFormControlFactory_ControlSpecifications()
+ * @model containment="true"
+ * @generated
+ */
+ EList<FormControlSpecification> getControlSpecifications();
+
+} // FormControlFactory
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/FormControlSpecification.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/FormControlSpecification.java
new file mode 100644
index 000000000..87f4ba582
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/FormControlSpecification.java
@@ -0,0 +1,107 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.xtext.common.types.JvmMember;
+
+import org.eclipse.xtext.xbase.XExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Form Control Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.FormControlSpecification#getFeature <em>Feature</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.FormControlSpecification#getExpression <em>Expression</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.FormControlSpecification#getTarget <em>Target</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getFormControlSpecification()
+ * @model
+ * @generated
+ */
+public interface FormControlSpecification extends EmfFeatureAccess
+{
+ /**
+ * Returns the value of the '<em><b>Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Feature</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Feature</em>' reference.
+ * @see #setFeature(JvmMember)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getFormControlSpecification_Feature()
+ * @model
+ * @generated
+ */
+ JvmMember getFeature();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.FormControlSpecification#getFeature <em>Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Feature</em>' reference.
+ * @see #getFeature()
+ * @generated
+ */
+ void setFeature(JvmMember value);
+
+ /**
+ * Returns the value of the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expression</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expression</em>' containment reference.
+ * @see #setExpression(XExpression)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getFormControlSpecification_Expression()
+ * @model containment="true"
+ * @generated
+ */
+ XExpression getExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.FormControlSpecification#getExpression <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expression</em>' containment reference.
+ * @see #getExpression()
+ * @generated
+ */
+ void setExpression(XExpression value);
+
+ /**
+ * Returns the value of the '<em><b>Target</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Target</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Target</em>' containment reference.
+ * @see #setTarget(XExpression)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getFormControlSpecification_Target()
+ * @model containment="true"
+ * @generated
+ */
+ XExpression getTarget();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.FormControlSpecification#getTarget <em>Target</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Target</em>' containment reference.
+ * @see #getTarget()
+ * @generated
+ */
+ void setTarget(XExpression value);
+
+} // FormControlSpecification
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/LabelProvider.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/LabelProvider.java
new file mode 100644
index 000000000..cbb665281
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/LabelProvider.java
@@ -0,0 +1,60 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Label Provider</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.LabelProvider#getLabelSpecifications <em>Label Specifications</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.LabelProvider#getImageSpecifications <em>Image Specifications</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getLabelProvider()
+ * @model
+ * @generated
+ */
+public interface LabelProvider extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Label Specifications</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.dsl.model.LabelSpecification}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Label Specifications</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Label Specifications</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getLabelProvider_LabelSpecifications()
+ * @model containment="true"
+ * @generated
+ */
+ EList<LabelSpecification> getLabelSpecifications();
+
+ /**
+ * Returns the value of the '<em><b>Image Specifications</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.dsl.model.LabelSpecification}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Image Specifications</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Image Specifications</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getLabelProvider_ImageSpecifications()
+ * @model containment="true"
+ * @generated
+ */
+ EList<LabelSpecification> getImageSpecifications();
+
+} // LabelProvider
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/LabelSpecification.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/LabelSpecification.java
new file mode 100644
index 000000000..87b8685a2
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/LabelSpecification.java
@@ -0,0 +1,109 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.xtext.common.types.JvmTypeReference;
+
+import org.eclipse.xtext.xbase.XExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Label Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.LabelSpecification#getParameterType <em>Parameter Type</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.LabelSpecification#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.LabelSpecification#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getLabelSpecification()
+ * @model
+ * @generated
+ */
+public interface LabelSpecification extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Parameter Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parameter Type</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parameter Type</em>' containment reference.
+ * @see #setParameterType(JvmTypeReference)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getLabelSpecification_ParameterType()
+ * @model containment="true"
+ * @generated
+ */
+ JvmTypeReference getParameterType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.LabelSpecification#getParameterType <em>Parameter Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Parameter Type</em>' containment reference.
+ * @see #getParameterType()
+ * @generated
+ */
+ void setParameterType(JvmTypeReference value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getLabelSpecification_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.LabelSpecification#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expression</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expression</em>' containment reference.
+ * @see #setExpression(XExpression)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getLabelSpecification_Expression()
+ * @model containment="true"
+ * @generated
+ */
+ XExpression getExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.LabelSpecification#getExpression <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expression</em>' containment reference.
+ * @see #getExpression()
+ * @generated
+ */
+ void setExpression(XExpression value);
+
+} // LabelSpecification
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/Model.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/Model.java
new file mode 100644
index 000000000..afa3bd5cd
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/Model.java
@@ -0,0 +1,80 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.xtext.xtype.XImportSection;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.Model#getImportSection <em>Import Section</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.Model#getModule <em>Module</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getModel()
+ * @model
+ * @generated
+ */
+public interface Model extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Import Section</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Import Section</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Import Section</em>' containment reference.
+ * @see #setImportSection(XImportSection)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getModel_ImportSection()
+ * @model containment="true"
+ * @generated
+ */
+ XImportSection getImportSection();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.Model#getImportSection <em>Import Section</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Import Section</em>' containment reference.
+ * @see #getImportSection()
+ * @generated
+ */
+ void setImportSection(XImportSection value);
+
+ /**
+ * Returns the value of the '<em><b>Module</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Module</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Module</em>' containment reference.
+ * @see #setModule(Module)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getModel_Module()
+ * @model containment="true"
+ * @generated
+ */
+ Module getModule();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.Model#getModule <em>Module</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Module</em>' containment reference.
+ * @see #getModule()
+ * @generated
+ */
+ void setModule(Module value);
+
+} // Model
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ModelFactory.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ModelFactory.java
new file mode 100644
index 000000000..c0f11db6f
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ModelFactory.java
@@ -0,0 +1,196 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage
+ * @generated
+ */
+public interface ModelFactory extends EFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ModelFactory eINSTANCE = org.eclipse.emf.parsley.dsl.model.impl.ModelFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Model</em>'.
+ * @generated
+ */
+ Model createModel();
+
+ /**
+ * Returns a new object of class '<em>Module</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Module</em>'.
+ * @generated
+ */
+ Module createModule();
+
+ /**
+ * Returns a new object of class '<em>Extends Clause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Extends Clause</em>'.
+ * @generated
+ */
+ ExtendsClause createExtendsClause();
+
+ /**
+ * Returns a new object of class '<em>Label Provider</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Label Provider</em>'.
+ * @generated
+ */
+ LabelProvider createLabelProvider();
+
+ /**
+ * Returns a new object of class '<em>Label Specification</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Label Specification</em>'.
+ * @generated
+ */
+ LabelSpecification createLabelSpecification();
+
+ /**
+ * Returns a new object of class '<em>Property Description Provider</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Property Description Provider</em>'.
+ * @generated
+ */
+ PropertyDescriptionProvider createPropertyDescriptionProvider();
+
+ /**
+ * Returns a new object of class '<em>Property Description Specification</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Property Description Specification</em>'.
+ * @generated
+ */
+ PropertyDescriptionSpecification createPropertyDescriptionSpecification();
+
+ /**
+ * Returns a new object of class '<em>Features Provider</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Features Provider</em>'.
+ * @generated
+ */
+ FeaturesProvider createFeaturesProvider();
+
+ /**
+ * Returns a new object of class '<em>Feature Specification</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Feature Specification</em>'.
+ * @generated
+ */
+ FeatureSpecification createFeatureSpecification();
+
+ /**
+ * Returns a new object of class '<em>Form Control Factory</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Form Control Factory</em>'.
+ * @generated
+ */
+ FormControlFactory createFormControlFactory();
+
+ /**
+ * Returns a new object of class '<em>Form Control Specification</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Form Control Specification</em>'.
+ * @generated
+ */
+ FormControlSpecification createFormControlSpecification();
+
+ /**
+ * Returns a new object of class '<em>Proposal Creator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Proposal Creator</em>'.
+ * @generated
+ */
+ ProposalCreator createProposalCreator();
+
+ /**
+ * Returns a new object of class '<em>Proposal Specification</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Proposal Specification</em>'.
+ * @generated
+ */
+ ProposalSpecification createProposalSpecification();
+
+ /**
+ * Returns a new object of class '<em>Viewer Content Provider</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Viewer Content Provider</em>'.
+ * @generated
+ */
+ ViewerContentProvider createViewerContentProvider();
+
+ /**
+ * Returns a new object of class '<em>Emf Feature Access</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Emf Feature Access</em>'.
+ * @generated
+ */
+ EmfFeatureAccess createEmfFeatureAccess();
+
+ /**
+ * Returns a new object of class '<em>With Extends Clause</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>With Extends Clause</em>'.
+ * @generated
+ */
+ WithExtendsClause createWithExtendsClause();
+
+ /**
+ * Returns a new object of class '<em>Part Specification</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Part Specification</em>'.
+ * @generated
+ */
+ PartSpecification createPartSpecification();
+
+ /**
+ * Returns a new object of class '<em>View Specification</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>View Specification</em>'.
+ * @generated
+ */
+ ViewSpecification createViewSpecification();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ ModelPackage getModelPackage();
+
+} //ModelFactory
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ModelPackage.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ModelPackage.java
new file mode 100644
index 000000000..e16959116
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ModelPackage.java
@@ -0,0 +1,1803 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.ModelFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ModelPackage extends EPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "model";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/emf/parsley/dsl/EmfParsleyDsl";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "model";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ModelPackage eINSTANCE = org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.dsl.model.impl.ModelImpl <em>Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getModel()
+ * @generated
+ */
+ int MODEL = 0;
+
+ /**
+ * The feature id for the '<em><b>Import Section</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__IMPORT_SECTION = 0;
+
+ /**
+ * The feature id for the '<em><b>Module</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__MODULE = 1;
+
+ /**
+ * The number of structural features of the '<em>Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.dsl.model.impl.WithExtendsClauseImpl <em>With Extends Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.WithExtendsClauseImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getWithExtendsClause()
+ * @generated
+ */
+ int WITH_EXTENDS_CLAUSE = 15;
+
+ /**
+ * The number of structural features of the '<em>With Extends Clause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WITH_EXTENDS_CLAUSE_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.dsl.model.impl.ModuleImpl <em>Module</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModuleImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getModule()
+ * @generated
+ */
+ int MODULE = 1;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE__NAME = WITH_EXTENDS_CLAUSE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Extends Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE__EXTENDS_CLAUSE = WITH_EXTENDS_CLAUSE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Label Provider</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE__LABEL_PROVIDER = WITH_EXTENDS_CLAUSE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Property Description Provider</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE__PROPERTY_DESCRIPTION_PROVIDER = WITH_EXTENDS_CLAUSE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Features Provider</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE__FEATURES_PROVIDER = WITH_EXTENDS_CLAUSE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Form Control Factory</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE__FORM_CONTROL_FACTORY = WITH_EXTENDS_CLAUSE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Proposal Creator</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE__PROPOSAL_CREATOR = WITH_EXTENDS_CLAUSE_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Viewer Content Provider</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE__VIEWER_CONTENT_PROVIDER = WITH_EXTENDS_CLAUSE_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Parts</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE__PARTS = WITH_EXTENDS_CLAUSE_FEATURE_COUNT + 8;
+
+ /**
+ * The number of structural features of the '<em>Module</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE_FEATURE_COUNT = WITH_EXTENDS_CLAUSE_FEATURE_COUNT + 9;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.dsl.model.impl.ExtendsClauseImpl <em>Extends Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ExtendsClauseImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getExtendsClause()
+ * @generated
+ */
+ int EXTENDS_CLAUSE = 2;
+
+ /**
+ * The feature id for the '<em><b>Super Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTENDS_CLAUSE__SUPER_TYPE = 0;
+
+ /**
+ * The number of structural features of the '<em>Extends Clause</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTENDS_CLAUSE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.dsl.model.impl.LabelProviderImpl <em>Label Provider</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.LabelProviderImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getLabelProvider()
+ * @generated
+ */
+ int LABEL_PROVIDER = 3;
+
+ /**
+ * The feature id for the '<em><b>Label Specifications</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LABEL_PROVIDER__LABEL_SPECIFICATIONS = 0;
+
+ /**
+ * The feature id for the '<em><b>Image Specifications</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LABEL_PROVIDER__IMAGE_SPECIFICATIONS = 1;
+
+ /**
+ * The number of structural features of the '<em>Label Provider</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LABEL_PROVIDER_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.dsl.model.impl.LabelSpecificationImpl <em>Label Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.LabelSpecificationImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getLabelSpecification()
+ * @generated
+ */
+ int LABEL_SPECIFICATION = 4;
+
+ /**
+ * The feature id for the '<em><b>Parameter Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LABEL_SPECIFICATION__PARAMETER_TYPE = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LABEL_SPECIFICATION__NAME = 1;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LABEL_SPECIFICATION__EXPRESSION = 2;
+
+ /**
+ * The number of structural features of the '<em>Label Specification</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LABEL_SPECIFICATION_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.dsl.model.impl.PropertyDescriptionProviderImpl <em>Property Description Provider</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.PropertyDescriptionProviderImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getPropertyDescriptionProvider()
+ * @generated
+ */
+ int PROPERTY_DESCRIPTION_PROVIDER = 5;
+
+ /**
+ * The feature id for the '<em><b>Label Specifications</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_DESCRIPTION_PROVIDER__LABEL_SPECIFICATIONS = 0;
+
+ /**
+ * The number of structural features of the '<em>Property Description Provider</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_DESCRIPTION_PROVIDER_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.dsl.model.impl.EmfFeatureAccessImpl <em>Emf Feature Access</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.EmfFeatureAccessImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getEmfFeatureAccess()
+ * @generated
+ */
+ int EMF_FEATURE_ACCESS = 14;
+
+ /**
+ * The feature id for the '<em><b>Parameter Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMF_FEATURE_ACCESS__PARAMETER_TYPE = 0;
+
+ /**
+ * The number of structural features of the '<em>Emf Feature Access</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMF_FEATURE_ACCESS_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.dsl.model.impl.PropertyDescriptionSpecificationImpl <em>Property Description Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.PropertyDescriptionSpecificationImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getPropertyDescriptionSpecification()
+ * @generated
+ */
+ int PROPERTY_DESCRIPTION_SPECIFICATION = 6;
+
+ /**
+ * The feature id for the '<em><b>Parameter Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_DESCRIPTION_SPECIFICATION__PARAMETER_TYPE = EMF_FEATURE_ACCESS__PARAMETER_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_DESCRIPTION_SPECIFICATION__FEATURE = EMF_FEATURE_ACCESS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_DESCRIPTION_SPECIFICATION__EXPRESSION = EMF_FEATURE_ACCESS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Property Description Specification</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_DESCRIPTION_SPECIFICATION_FEATURE_COUNT = EMF_FEATURE_ACCESS_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.dsl.model.impl.FeaturesProviderImpl <em>Features Provider</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.FeaturesProviderImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getFeaturesProvider()
+ * @generated
+ */
+ int FEATURES_PROVIDER = 7;
+
+ /**
+ * The feature id for the '<em><b>Feature Specifications</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEATURES_PROVIDER__FEATURE_SPECIFICATIONS = 0;
+
+ /**
+ * The number of structural features of the '<em>Features Provider</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEATURES_PROVIDER_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.dsl.model.impl.FeatureSpecificationImpl <em>Feature Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.FeatureSpecificationImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getFeatureSpecification()
+ * @generated
+ */
+ int FEATURE_SPECIFICATION = 8;
+
+ /**
+ * The feature id for the '<em><b>Parameter Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEATURE_SPECIFICATION__PARAMETER_TYPE = EMF_FEATURE_ACCESS__PARAMETER_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Features</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEATURE_SPECIFICATION__FEATURES = EMF_FEATURE_ACCESS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Feature Specification</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEATURE_SPECIFICATION_FEATURE_COUNT = EMF_FEATURE_ACCESS_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.dsl.model.impl.FormControlFactoryImpl <em>Form Control Factory</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.FormControlFactoryImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getFormControlFactory()
+ * @generated
+ */
+ int FORM_CONTROL_FACTORY = 9;
+
+ /**
+ * The feature id for the '<em><b>Control Specifications</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FORM_CONTROL_FACTORY__CONTROL_SPECIFICATIONS = 0;
+
+ /**
+ * The number of structural features of the '<em>Form Control Factory</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FORM_CONTROL_FACTORY_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.dsl.model.impl.FormControlSpecificationImpl <em>Form Control Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.FormControlSpecificationImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getFormControlSpecification()
+ * @generated
+ */
+ int FORM_CONTROL_SPECIFICATION = 10;
+
+ /**
+ * The feature id for the '<em><b>Parameter Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FORM_CONTROL_SPECIFICATION__PARAMETER_TYPE = EMF_FEATURE_ACCESS__PARAMETER_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FORM_CONTROL_SPECIFICATION__FEATURE = EMF_FEATURE_ACCESS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FORM_CONTROL_SPECIFICATION__EXPRESSION = EMF_FEATURE_ACCESS_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Target</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FORM_CONTROL_SPECIFICATION__TARGET = EMF_FEATURE_ACCESS_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Form Control Specification</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FORM_CONTROL_SPECIFICATION_FEATURE_COUNT = EMF_FEATURE_ACCESS_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.dsl.model.impl.ProposalCreatorImpl <em>Proposal Creator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ProposalCreatorImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getProposalCreator()
+ * @generated
+ */
+ int PROPOSAL_CREATOR = 11;
+
+ /**
+ * The feature id for the '<em><b>Proposals Specifications</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPOSAL_CREATOR__PROPOSALS_SPECIFICATIONS = 0;
+
+ /**
+ * The number of structural features of the '<em>Proposal Creator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPOSAL_CREATOR_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.dsl.model.impl.ProposalSpecificationImpl <em>Proposal Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ProposalSpecificationImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getProposalSpecification()
+ * @generated
+ */
+ int PROPOSAL_SPECIFICATION = 12;
+
+ /**
+ * The feature id for the '<em><b>Parameter Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPOSAL_SPECIFICATION__PARAMETER_TYPE = EMF_FEATURE_ACCESS__PARAMETER_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPOSAL_SPECIFICATION__FEATURE = EMF_FEATURE_ACCESS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPOSAL_SPECIFICATION__EXPRESSION = EMF_FEATURE_ACCESS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Proposal Specification</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPOSAL_SPECIFICATION_FEATURE_COUNT = EMF_FEATURE_ACCESS_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.dsl.model.impl.ViewerContentProviderImpl <em>Viewer Content Provider</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ViewerContentProviderImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getViewerContentProvider()
+ * @generated
+ */
+ int VIEWER_CONTENT_PROVIDER = 13;
+
+ /**
+ * The feature id for the '<em><b>Children Specifications</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEWER_CONTENT_PROVIDER__CHILDREN_SPECIFICATIONS = 0;
+
+ /**
+ * The number of structural features of the '<em>Viewer Content Provider</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEWER_CONTENT_PROVIDER_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.dsl.model.impl.PartSpecificationImpl <em>Part Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.PartSpecificationImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getPartSpecification()
+ * @generated
+ */
+ int PART_SPECIFICATION = 16;
+
+ /**
+ * The number of structural features of the '<em>Part Specification</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PART_SPECIFICATION_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.dsl.model.impl.ViewSpecificationImpl <em>View Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ViewSpecificationImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getViewSpecification()
+ * @generated
+ */
+ int VIEW_SPECIFICATION = 17;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_SPECIFICATION__ID = PART_SPECIFICATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>View Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_SPECIFICATION__VIEW_NAME = PART_SPECIFICATION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_SPECIFICATION__TYPE = PART_SPECIFICATION_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Category</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_SPECIFICATION__CATEGORY = PART_SPECIFICATION_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>View Specification</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIEW_SPECIFICATION_FEATURE_COUNT = PART_SPECIFICATION_FEATURE_COUNT + 4;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.dsl.model.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Model</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.Model
+ * @generated
+ */
+ EClass getModel();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.parsley.dsl.model.Model#getImportSection <em>Import Section</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Import Section</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.Model#getImportSection()
+ * @see #getModel()
+ * @generated
+ */
+ EReference getModel_ImportSection();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.parsley.dsl.model.Model#getModule <em>Module</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Module</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.Model#getModule()
+ * @see #getModel()
+ * @generated
+ */
+ EReference getModel_Module();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.dsl.model.Module <em>Module</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Module</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.Module
+ * @generated
+ */
+ EClass getModule();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.dsl.model.Module#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.Module#getName()
+ * @see #getModule()
+ * @generated
+ */
+ EAttribute getModule_Name();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.parsley.dsl.model.Module#getExtendsClause <em>Extends Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Extends Clause</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.Module#getExtendsClause()
+ * @see #getModule()
+ * @generated
+ */
+ EReference getModule_ExtendsClause();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.parsley.dsl.model.Module#getLabelProvider <em>Label Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Label Provider</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.Module#getLabelProvider()
+ * @see #getModule()
+ * @generated
+ */
+ EReference getModule_LabelProvider();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.parsley.dsl.model.Module#getPropertyDescriptionProvider <em>Property Description Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Property Description Provider</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.Module#getPropertyDescriptionProvider()
+ * @see #getModule()
+ * @generated
+ */
+ EReference getModule_PropertyDescriptionProvider();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.parsley.dsl.model.Module#getFeaturesProvider <em>Features Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Features Provider</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.Module#getFeaturesProvider()
+ * @see #getModule()
+ * @generated
+ */
+ EReference getModule_FeaturesProvider();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.parsley.dsl.model.Module#getFormControlFactory <em>Form Control Factory</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Form Control Factory</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.Module#getFormControlFactory()
+ * @see #getModule()
+ * @generated
+ */
+ EReference getModule_FormControlFactory();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.parsley.dsl.model.Module#getProposalCreator <em>Proposal Creator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Proposal Creator</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.Module#getProposalCreator()
+ * @see #getModule()
+ * @generated
+ */
+ EReference getModule_ProposalCreator();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.parsley.dsl.model.Module#getViewerContentProvider <em>Viewer Content Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Viewer Content Provider</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.Module#getViewerContentProvider()
+ * @see #getModule()
+ * @generated
+ */
+ EReference getModule_ViewerContentProvider();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.dsl.model.Module#getParts <em>Parts</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Parts</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.Module#getParts()
+ * @see #getModule()
+ * @generated
+ */
+ EReference getModule_Parts();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.dsl.model.ExtendsClause <em>Extends Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Extends Clause</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.ExtendsClause
+ * @generated
+ */
+ EClass getExtendsClause();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.parsley.dsl.model.ExtendsClause#getSuperType <em>Super Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Super Type</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.ExtendsClause#getSuperType()
+ * @see #getExtendsClause()
+ * @generated
+ */
+ EReference getExtendsClause_SuperType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.dsl.model.LabelProvider <em>Label Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Label Provider</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.LabelProvider
+ * @generated
+ */
+ EClass getLabelProvider();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.dsl.model.LabelProvider#getLabelSpecifications <em>Label Specifications</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Label Specifications</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.LabelProvider#getLabelSpecifications()
+ * @see #getLabelProvider()
+ * @generated
+ */
+ EReference getLabelProvider_LabelSpecifications();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.dsl.model.LabelProvider#getImageSpecifications <em>Image Specifications</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Image Specifications</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.LabelProvider#getImageSpecifications()
+ * @see #getLabelProvider()
+ * @generated
+ */
+ EReference getLabelProvider_ImageSpecifications();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.dsl.model.LabelSpecification <em>Label Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Label Specification</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.LabelSpecification
+ * @generated
+ */
+ EClass getLabelSpecification();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.parsley.dsl.model.LabelSpecification#getParameterType <em>Parameter Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Parameter Type</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.LabelSpecification#getParameterType()
+ * @see #getLabelSpecification()
+ * @generated
+ */
+ EReference getLabelSpecification_ParameterType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.dsl.model.LabelSpecification#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.LabelSpecification#getName()
+ * @see #getLabelSpecification()
+ * @generated
+ */
+ EAttribute getLabelSpecification_Name();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.parsley.dsl.model.LabelSpecification#getExpression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expression</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.LabelSpecification#getExpression()
+ * @see #getLabelSpecification()
+ * @generated
+ */
+ EReference getLabelSpecification_Expression();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.dsl.model.PropertyDescriptionProvider <em>Property Description Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Property Description Provider</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.PropertyDescriptionProvider
+ * @generated
+ */
+ EClass getPropertyDescriptionProvider();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.dsl.model.PropertyDescriptionProvider#getLabelSpecifications <em>Label Specifications</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Label Specifications</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.PropertyDescriptionProvider#getLabelSpecifications()
+ * @see #getPropertyDescriptionProvider()
+ * @generated
+ */
+ EReference getPropertyDescriptionProvider_LabelSpecifications();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification <em>Property Description Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Property Description Specification</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification
+ * @generated
+ */
+ EClass getPropertyDescriptionSpecification();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification#getFeature <em>Feature</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Feature</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification#getFeature()
+ * @see #getPropertyDescriptionSpecification()
+ * @generated
+ */
+ EReference getPropertyDescriptionSpecification_Feature();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification#getExpression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expression</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification#getExpression()
+ * @see #getPropertyDescriptionSpecification()
+ * @generated
+ */
+ EReference getPropertyDescriptionSpecification_Expression();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.dsl.model.FeaturesProvider <em>Features Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Features Provider</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.FeaturesProvider
+ * @generated
+ */
+ EClass getFeaturesProvider();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.dsl.model.FeaturesProvider#getFeatureSpecifications <em>Feature Specifications</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Feature Specifications</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.FeaturesProvider#getFeatureSpecifications()
+ * @see #getFeaturesProvider()
+ * @generated
+ */
+ EReference getFeaturesProvider_FeatureSpecifications();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.dsl.model.FeatureSpecification <em>Feature Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Feature Specification</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.FeatureSpecification
+ * @generated
+ */
+ EClass getFeatureSpecification();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.parsley.dsl.model.FeatureSpecification#getFeatures <em>Features</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Features</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.FeatureSpecification#getFeatures()
+ * @see #getFeatureSpecification()
+ * @generated
+ */
+ EReference getFeatureSpecification_Features();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.dsl.model.FormControlFactory <em>Form Control Factory</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Form Control Factory</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.FormControlFactory
+ * @generated
+ */
+ EClass getFormControlFactory();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.dsl.model.FormControlFactory#getControlSpecifications <em>Control Specifications</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Control Specifications</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.FormControlFactory#getControlSpecifications()
+ * @see #getFormControlFactory()
+ * @generated
+ */
+ EReference getFormControlFactory_ControlSpecifications();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.dsl.model.FormControlSpecification <em>Form Control Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Form Control Specification</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.FormControlSpecification
+ * @generated
+ */
+ EClass getFormControlSpecification();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.parsley.dsl.model.FormControlSpecification#getFeature <em>Feature</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Feature</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.FormControlSpecification#getFeature()
+ * @see #getFormControlSpecification()
+ * @generated
+ */
+ EReference getFormControlSpecification_Feature();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.parsley.dsl.model.FormControlSpecification#getExpression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expression</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.FormControlSpecification#getExpression()
+ * @see #getFormControlSpecification()
+ * @generated
+ */
+ EReference getFormControlSpecification_Expression();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.parsley.dsl.model.FormControlSpecification#getTarget <em>Target</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Target</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.FormControlSpecification#getTarget()
+ * @see #getFormControlSpecification()
+ * @generated
+ */
+ EReference getFormControlSpecification_Target();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.dsl.model.ProposalCreator <em>Proposal Creator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Proposal Creator</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.ProposalCreator
+ * @generated
+ */
+ EClass getProposalCreator();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.dsl.model.ProposalCreator#getProposalsSpecifications <em>Proposals Specifications</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Proposals Specifications</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.ProposalCreator#getProposalsSpecifications()
+ * @see #getProposalCreator()
+ * @generated
+ */
+ EReference getProposalCreator_ProposalsSpecifications();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.dsl.model.ProposalSpecification <em>Proposal Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Proposal Specification</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.ProposalSpecification
+ * @generated
+ */
+ EClass getProposalSpecification();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.parsley.dsl.model.ProposalSpecification#getFeature <em>Feature</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Feature</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.ProposalSpecification#getFeature()
+ * @see #getProposalSpecification()
+ * @generated
+ */
+ EReference getProposalSpecification_Feature();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.parsley.dsl.model.ProposalSpecification#getExpression <em>Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Expression</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.ProposalSpecification#getExpression()
+ * @see #getProposalSpecification()
+ * @generated
+ */
+ EReference getProposalSpecification_Expression();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.dsl.model.ViewerContentProvider <em>Viewer Content Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Viewer Content Provider</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.ViewerContentProvider
+ * @generated
+ */
+ EClass getViewerContentProvider();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.dsl.model.ViewerContentProvider#getChildrenSpecifications <em>Children Specifications</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Children Specifications</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.ViewerContentProvider#getChildrenSpecifications()
+ * @see #getViewerContentProvider()
+ * @generated
+ */
+ EReference getViewerContentProvider_ChildrenSpecifications();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.dsl.model.EmfFeatureAccess <em>Emf Feature Access</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Emf Feature Access</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.EmfFeatureAccess
+ * @generated
+ */
+ EClass getEmfFeatureAccess();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.parsley.dsl.model.EmfFeatureAccess#getParameterType <em>Parameter Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Parameter Type</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.EmfFeatureAccess#getParameterType()
+ * @see #getEmfFeatureAccess()
+ * @generated
+ */
+ EReference getEmfFeatureAccess_ParameterType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.dsl.model.WithExtendsClause <em>With Extends Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>With Extends Clause</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.WithExtendsClause
+ * @generated
+ */
+ EClass getWithExtendsClause();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.dsl.model.PartSpecification <em>Part Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Part Specification</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.PartSpecification
+ * @generated
+ */
+ EClass getPartSpecification();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.dsl.model.ViewSpecification <em>View Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>View Specification</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.ViewSpecification
+ * @generated
+ */
+ EClass getViewSpecification();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.dsl.model.ViewSpecification#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.ViewSpecification#getId()
+ * @see #getViewSpecification()
+ * @generated
+ */
+ EAttribute getViewSpecification_Id();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.dsl.model.ViewSpecification#getViewName <em>View Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>View Name</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.ViewSpecification#getViewName()
+ * @see #getViewSpecification()
+ * @generated
+ */
+ EAttribute getViewSpecification_ViewName();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.parsley.dsl.model.ViewSpecification#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Type</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.ViewSpecification#getType()
+ * @see #getViewSpecification()
+ * @generated
+ */
+ EReference getViewSpecification_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.dsl.model.ViewSpecification#getCategory <em>Category</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Category</em>'.
+ * @see org.eclipse.emf.parsley.dsl.model.ViewSpecification#getCategory()
+ * @see #getViewSpecification()
+ * @generated
+ */
+ EAttribute getViewSpecification_Category();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ ModelFactory getModelFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.dsl.model.impl.ModelImpl <em>Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getModel()
+ * @generated
+ */
+ EClass MODEL = eINSTANCE.getModel();
+
+ /**
+ * The meta object literal for the '<em><b>Import Section</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL__IMPORT_SECTION = eINSTANCE.getModel_ImportSection();
+
+ /**
+ * The meta object literal for the '<em><b>Module</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL__MODULE = eINSTANCE.getModel_Module();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.dsl.model.impl.ModuleImpl <em>Module</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModuleImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getModule()
+ * @generated
+ */
+ EClass MODULE = eINSTANCE.getModule();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MODULE__NAME = eINSTANCE.getModule_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Extends Clause</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODULE__EXTENDS_CLAUSE = eINSTANCE.getModule_ExtendsClause();
+
+ /**
+ * The meta object literal for the '<em><b>Label Provider</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODULE__LABEL_PROVIDER = eINSTANCE.getModule_LabelProvider();
+
+ /**
+ * The meta object literal for the '<em><b>Property Description Provider</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODULE__PROPERTY_DESCRIPTION_PROVIDER = eINSTANCE.getModule_PropertyDescriptionProvider();
+
+ /**
+ * The meta object literal for the '<em><b>Features Provider</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODULE__FEATURES_PROVIDER = eINSTANCE.getModule_FeaturesProvider();
+
+ /**
+ * The meta object literal for the '<em><b>Form Control Factory</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODULE__FORM_CONTROL_FACTORY = eINSTANCE.getModule_FormControlFactory();
+
+ /**
+ * The meta object literal for the '<em><b>Proposal Creator</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODULE__PROPOSAL_CREATOR = eINSTANCE.getModule_ProposalCreator();
+
+ /**
+ * The meta object literal for the '<em><b>Viewer Content Provider</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODULE__VIEWER_CONTENT_PROVIDER = eINSTANCE.getModule_ViewerContentProvider();
+
+ /**
+ * The meta object literal for the '<em><b>Parts</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODULE__PARTS = eINSTANCE.getModule_Parts();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.dsl.model.impl.ExtendsClauseImpl <em>Extends Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ExtendsClauseImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getExtendsClause()
+ * @generated
+ */
+ EClass EXTENDS_CLAUSE = eINSTANCE.getExtendsClause();
+
+ /**
+ * The meta object literal for the '<em><b>Super Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EXTENDS_CLAUSE__SUPER_TYPE = eINSTANCE.getExtendsClause_SuperType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.dsl.model.impl.LabelProviderImpl <em>Label Provider</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.LabelProviderImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getLabelProvider()
+ * @generated
+ */
+ EClass LABEL_PROVIDER = eINSTANCE.getLabelProvider();
+
+ /**
+ * The meta object literal for the '<em><b>Label Specifications</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LABEL_PROVIDER__LABEL_SPECIFICATIONS = eINSTANCE.getLabelProvider_LabelSpecifications();
+
+ /**
+ * The meta object literal for the '<em><b>Image Specifications</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LABEL_PROVIDER__IMAGE_SPECIFICATIONS = eINSTANCE.getLabelProvider_ImageSpecifications();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.dsl.model.impl.LabelSpecificationImpl <em>Label Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.LabelSpecificationImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getLabelSpecification()
+ * @generated
+ */
+ EClass LABEL_SPECIFICATION = eINSTANCE.getLabelSpecification();
+
+ /**
+ * The meta object literal for the '<em><b>Parameter Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LABEL_SPECIFICATION__PARAMETER_TYPE = eINSTANCE.getLabelSpecification_ParameterType();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LABEL_SPECIFICATION__NAME = eINSTANCE.getLabelSpecification_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LABEL_SPECIFICATION__EXPRESSION = eINSTANCE.getLabelSpecification_Expression();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.dsl.model.impl.PropertyDescriptionProviderImpl <em>Property Description Provider</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.PropertyDescriptionProviderImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getPropertyDescriptionProvider()
+ * @generated
+ */
+ EClass PROPERTY_DESCRIPTION_PROVIDER = eINSTANCE.getPropertyDescriptionProvider();
+
+ /**
+ * The meta object literal for the '<em><b>Label Specifications</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROPERTY_DESCRIPTION_PROVIDER__LABEL_SPECIFICATIONS = eINSTANCE.getPropertyDescriptionProvider_LabelSpecifications();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.dsl.model.impl.PropertyDescriptionSpecificationImpl <em>Property Description Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.PropertyDescriptionSpecificationImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getPropertyDescriptionSpecification()
+ * @generated
+ */
+ EClass PROPERTY_DESCRIPTION_SPECIFICATION = eINSTANCE.getPropertyDescriptionSpecification();
+
+ /**
+ * The meta object literal for the '<em><b>Feature</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROPERTY_DESCRIPTION_SPECIFICATION__FEATURE = eINSTANCE.getPropertyDescriptionSpecification_Feature();
+
+ /**
+ * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROPERTY_DESCRIPTION_SPECIFICATION__EXPRESSION = eINSTANCE.getPropertyDescriptionSpecification_Expression();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.dsl.model.impl.FeaturesProviderImpl <em>Features Provider</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.FeaturesProviderImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getFeaturesProvider()
+ * @generated
+ */
+ EClass FEATURES_PROVIDER = eINSTANCE.getFeaturesProvider();
+
+ /**
+ * The meta object literal for the '<em><b>Feature Specifications</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FEATURES_PROVIDER__FEATURE_SPECIFICATIONS = eINSTANCE.getFeaturesProvider_FeatureSpecifications();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.dsl.model.impl.FeatureSpecificationImpl <em>Feature Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.FeatureSpecificationImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getFeatureSpecification()
+ * @generated
+ */
+ EClass FEATURE_SPECIFICATION = eINSTANCE.getFeatureSpecification();
+
+ /**
+ * The meta object literal for the '<em><b>Features</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FEATURE_SPECIFICATION__FEATURES = eINSTANCE.getFeatureSpecification_Features();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.dsl.model.impl.FormControlFactoryImpl <em>Form Control Factory</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.FormControlFactoryImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getFormControlFactory()
+ * @generated
+ */
+ EClass FORM_CONTROL_FACTORY = eINSTANCE.getFormControlFactory();
+
+ /**
+ * The meta object literal for the '<em><b>Control Specifications</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FORM_CONTROL_FACTORY__CONTROL_SPECIFICATIONS = eINSTANCE.getFormControlFactory_ControlSpecifications();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.dsl.model.impl.FormControlSpecificationImpl <em>Form Control Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.FormControlSpecificationImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getFormControlSpecification()
+ * @generated
+ */
+ EClass FORM_CONTROL_SPECIFICATION = eINSTANCE.getFormControlSpecification();
+
+ /**
+ * The meta object literal for the '<em><b>Feature</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FORM_CONTROL_SPECIFICATION__FEATURE = eINSTANCE.getFormControlSpecification_Feature();
+
+ /**
+ * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FORM_CONTROL_SPECIFICATION__EXPRESSION = eINSTANCE.getFormControlSpecification_Expression();
+
+ /**
+ * The meta object literal for the '<em><b>Target</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FORM_CONTROL_SPECIFICATION__TARGET = eINSTANCE.getFormControlSpecification_Target();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.dsl.model.impl.ProposalCreatorImpl <em>Proposal Creator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ProposalCreatorImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getProposalCreator()
+ * @generated
+ */
+ EClass PROPOSAL_CREATOR = eINSTANCE.getProposalCreator();
+
+ /**
+ * The meta object literal for the '<em><b>Proposals Specifications</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROPOSAL_CREATOR__PROPOSALS_SPECIFICATIONS = eINSTANCE.getProposalCreator_ProposalsSpecifications();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.dsl.model.impl.ProposalSpecificationImpl <em>Proposal Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ProposalSpecificationImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getProposalSpecification()
+ * @generated
+ */
+ EClass PROPOSAL_SPECIFICATION = eINSTANCE.getProposalSpecification();
+
+ /**
+ * The meta object literal for the '<em><b>Feature</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROPOSAL_SPECIFICATION__FEATURE = eINSTANCE.getProposalSpecification_Feature();
+
+ /**
+ * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROPOSAL_SPECIFICATION__EXPRESSION = eINSTANCE.getProposalSpecification_Expression();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.dsl.model.impl.ViewerContentProviderImpl <em>Viewer Content Provider</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ViewerContentProviderImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getViewerContentProvider()
+ * @generated
+ */
+ EClass VIEWER_CONTENT_PROVIDER = eINSTANCE.getViewerContentProvider();
+
+ /**
+ * The meta object literal for the '<em><b>Children Specifications</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VIEWER_CONTENT_PROVIDER__CHILDREN_SPECIFICATIONS = eINSTANCE.getViewerContentProvider_ChildrenSpecifications();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.dsl.model.impl.EmfFeatureAccessImpl <em>Emf Feature Access</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.EmfFeatureAccessImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getEmfFeatureAccess()
+ * @generated
+ */
+ EClass EMF_FEATURE_ACCESS = eINSTANCE.getEmfFeatureAccess();
+
+ /**
+ * The meta object literal for the '<em><b>Parameter Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EMF_FEATURE_ACCESS__PARAMETER_TYPE = eINSTANCE.getEmfFeatureAccess_ParameterType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.dsl.model.impl.WithExtendsClauseImpl <em>With Extends Clause</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.WithExtendsClauseImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getWithExtendsClause()
+ * @generated
+ */
+ EClass WITH_EXTENDS_CLAUSE = eINSTANCE.getWithExtendsClause();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.dsl.model.impl.PartSpecificationImpl <em>Part Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.PartSpecificationImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getPartSpecification()
+ * @generated
+ */
+ EClass PART_SPECIFICATION = eINSTANCE.getPartSpecification();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.dsl.model.impl.ViewSpecificationImpl <em>View Specification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ViewSpecificationImpl
+ * @see org.eclipse.emf.parsley.dsl.model.impl.ModelPackageImpl#getViewSpecification()
+ * @generated
+ */
+ EClass VIEW_SPECIFICATION = eINSTANCE.getViewSpecification();
+
+ /**
+ * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VIEW_SPECIFICATION__ID = eINSTANCE.getViewSpecification_Id();
+
+ /**
+ * The meta object literal for the '<em><b>View Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VIEW_SPECIFICATION__VIEW_NAME = eINSTANCE.getViewSpecification_ViewName();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VIEW_SPECIFICATION__TYPE = eINSTANCE.getViewSpecification_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Category</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VIEW_SPECIFICATION__CATEGORY = eINSTANCE.getViewSpecification_Category();
+
+ }
+
+} //ModelPackage
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/Module.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/Module.java
new file mode 100644
index 000000000..1fa42cdb2
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/Module.java
@@ -0,0 +1,257 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Module</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.Module#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.Module#getExtendsClause <em>Extends Clause</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.Module#getLabelProvider <em>Label Provider</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.Module#getPropertyDescriptionProvider <em>Property Description Provider</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.Module#getFeaturesProvider <em>Features Provider</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.Module#getFormControlFactory <em>Form Control Factory</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.Module#getProposalCreator <em>Proposal Creator</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.Module#getViewerContentProvider <em>Viewer Content Provider</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.Module#getParts <em>Parts</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getModule()
+ * @model
+ * @generated
+ */
+public interface Module extends WithExtendsClause
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getModule_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.Module#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Extends Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Extends Clause</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Extends Clause</em>' containment reference.
+ * @see #setExtendsClause(ExtendsClause)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getModule_ExtendsClause()
+ * @model containment="true"
+ * @generated
+ */
+ ExtendsClause getExtendsClause();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.Module#getExtendsClause <em>Extends Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Extends Clause</em>' containment reference.
+ * @see #getExtendsClause()
+ * @generated
+ */
+ void setExtendsClause(ExtendsClause value);
+
+ /**
+ * Returns the value of the '<em><b>Label Provider</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Label Provider</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Label Provider</em>' containment reference.
+ * @see #setLabelProvider(LabelProvider)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getModule_LabelProvider()
+ * @model containment="true"
+ * @generated
+ */
+ LabelProvider getLabelProvider();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.Module#getLabelProvider <em>Label Provider</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Label Provider</em>' containment reference.
+ * @see #getLabelProvider()
+ * @generated
+ */
+ void setLabelProvider(LabelProvider value);
+
+ /**
+ * Returns the value of the '<em><b>Property Description Provider</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Property Description Provider</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Property Description Provider</em>' containment reference.
+ * @see #setPropertyDescriptionProvider(PropertyDescriptionProvider)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getModule_PropertyDescriptionProvider()
+ * @model containment="true"
+ * @generated
+ */
+ PropertyDescriptionProvider getPropertyDescriptionProvider();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.Module#getPropertyDescriptionProvider <em>Property Description Provider</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Property Description Provider</em>' containment reference.
+ * @see #getPropertyDescriptionProvider()
+ * @generated
+ */
+ void setPropertyDescriptionProvider(PropertyDescriptionProvider value);
+
+ /**
+ * Returns the value of the '<em><b>Features Provider</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Features Provider</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Features Provider</em>' containment reference.
+ * @see #setFeaturesProvider(FeaturesProvider)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getModule_FeaturesProvider()
+ * @model containment="true"
+ * @generated
+ */
+ FeaturesProvider getFeaturesProvider();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.Module#getFeaturesProvider <em>Features Provider</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Features Provider</em>' containment reference.
+ * @see #getFeaturesProvider()
+ * @generated
+ */
+ void setFeaturesProvider(FeaturesProvider value);
+
+ /**
+ * Returns the value of the '<em><b>Form Control Factory</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Form Control Factory</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Form Control Factory</em>' containment reference.
+ * @see #setFormControlFactory(FormControlFactory)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getModule_FormControlFactory()
+ * @model containment="true"
+ * @generated
+ */
+ FormControlFactory getFormControlFactory();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.Module#getFormControlFactory <em>Form Control Factory</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Form Control Factory</em>' containment reference.
+ * @see #getFormControlFactory()
+ * @generated
+ */
+ void setFormControlFactory(FormControlFactory value);
+
+ /**
+ * Returns the value of the '<em><b>Proposal Creator</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Proposal Creator</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Proposal Creator</em>' containment reference.
+ * @see #setProposalCreator(ProposalCreator)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getModule_ProposalCreator()
+ * @model containment="true"
+ * @generated
+ */
+ ProposalCreator getProposalCreator();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.Module#getProposalCreator <em>Proposal Creator</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Proposal Creator</em>' containment reference.
+ * @see #getProposalCreator()
+ * @generated
+ */
+ void setProposalCreator(ProposalCreator value);
+
+ /**
+ * Returns the value of the '<em><b>Viewer Content Provider</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Viewer Content Provider</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Viewer Content Provider</em>' containment reference.
+ * @see #setViewerContentProvider(ViewerContentProvider)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getModule_ViewerContentProvider()
+ * @model containment="true"
+ * @generated
+ */
+ ViewerContentProvider getViewerContentProvider();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.Module#getViewerContentProvider <em>Viewer Content Provider</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Viewer Content Provider</em>' containment reference.
+ * @see #getViewerContentProvider()
+ * @generated
+ */
+ void setViewerContentProvider(ViewerContentProvider value);
+
+ /**
+ * Returns the value of the '<em><b>Parts</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.dsl.model.PartSpecification}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parts</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parts</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getModule_Parts()
+ * @model containment="true"
+ * @generated
+ */
+ EList<PartSpecification> getParts();
+
+} // Module
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/PartSpecification.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/PartSpecification.java
new file mode 100644
index 000000000..6a5708115
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/PartSpecification.java
@@ -0,0 +1,19 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Part Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getPartSpecification()
+ * @model
+ * @generated
+ */
+public interface PartSpecification extends EObject
+{
+} // PartSpecification
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/PropertyDescriptionProvider.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/PropertyDescriptionProvider.java
new file mode 100644
index 000000000..bdf5b81aa
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/PropertyDescriptionProvider.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Property Description Provider</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.PropertyDescriptionProvider#getLabelSpecifications <em>Label Specifications</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getPropertyDescriptionProvider()
+ * @model
+ * @generated
+ */
+public interface PropertyDescriptionProvider extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Label Specifications</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Label Specifications</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Label Specifications</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getPropertyDescriptionProvider_LabelSpecifications()
+ * @model containment="true"
+ * @generated
+ */
+ EList<PropertyDescriptionSpecification> getLabelSpecifications();
+
+} // PropertyDescriptionProvider
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/PropertyDescriptionSpecification.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/PropertyDescriptionSpecification.java
new file mode 100644
index 000000000..437c3f57e
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/PropertyDescriptionSpecification.java
@@ -0,0 +1,80 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.xtext.common.types.JvmMember;
+
+import org.eclipse.xtext.xbase.XExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Property Description Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification#getFeature <em>Feature</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getPropertyDescriptionSpecification()
+ * @model
+ * @generated
+ */
+public interface PropertyDescriptionSpecification extends EmfFeatureAccess
+{
+ /**
+ * Returns the value of the '<em><b>Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Feature</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Feature</em>' reference.
+ * @see #setFeature(JvmMember)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getPropertyDescriptionSpecification_Feature()
+ * @model
+ * @generated
+ */
+ JvmMember getFeature();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification#getFeature <em>Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Feature</em>' reference.
+ * @see #getFeature()
+ * @generated
+ */
+ void setFeature(JvmMember value);
+
+ /**
+ * Returns the value of the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expression</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expression</em>' containment reference.
+ * @see #setExpression(XExpression)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getPropertyDescriptionSpecification_Expression()
+ * @model containment="true"
+ * @generated
+ */
+ XExpression getExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification#getExpression <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expression</em>' containment reference.
+ * @see #getExpression()
+ * @generated
+ */
+ void setExpression(XExpression value);
+
+} // PropertyDescriptionSpecification
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ProposalCreator.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ProposalCreator.java
new file mode 100644
index 000000000..7c4c91f14
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ProposalCreator.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Proposal Creator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.ProposalCreator#getProposalsSpecifications <em>Proposals Specifications</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getProposalCreator()
+ * @model
+ * @generated
+ */
+public interface ProposalCreator extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Proposals Specifications</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.dsl.model.ProposalSpecification}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Proposals Specifications</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Proposals Specifications</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getProposalCreator_ProposalsSpecifications()
+ * @model containment="true"
+ * @generated
+ */
+ EList<ProposalSpecification> getProposalsSpecifications();
+
+} // ProposalCreator
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ProposalSpecification.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ProposalSpecification.java
new file mode 100644
index 000000000..6d3ee25c0
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ProposalSpecification.java
@@ -0,0 +1,80 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.xtext.common.types.JvmMember;
+
+import org.eclipse.xtext.xbase.XExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Proposal Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.ProposalSpecification#getFeature <em>Feature</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.ProposalSpecification#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getProposalSpecification()
+ * @model
+ * @generated
+ */
+public interface ProposalSpecification extends EmfFeatureAccess
+{
+ /**
+ * Returns the value of the '<em><b>Feature</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Feature</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Feature</em>' reference.
+ * @see #setFeature(JvmMember)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getProposalSpecification_Feature()
+ * @model
+ * @generated
+ */
+ JvmMember getFeature();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.ProposalSpecification#getFeature <em>Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Feature</em>' reference.
+ * @see #getFeature()
+ * @generated
+ */
+ void setFeature(JvmMember value);
+
+ /**
+ * Returns the value of the '<em><b>Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Expression</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Expression</em>' containment reference.
+ * @see #setExpression(XExpression)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getProposalSpecification_Expression()
+ * @model containment="true"
+ * @generated
+ */
+ XExpression getExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.ProposalSpecification#getExpression <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Expression</em>' containment reference.
+ * @see #getExpression()
+ * @generated
+ */
+ void setExpression(XExpression value);
+
+} // ProposalSpecification
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ViewSpecification.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ViewSpecification.java
new file mode 100644
index 000000000..5819dd15c
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ViewSpecification.java
@@ -0,0 +1,132 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.xtext.common.types.JvmTypeReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>View Specification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.ViewSpecification#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.ViewSpecification#getViewName <em>View Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.ViewSpecification#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.ViewSpecification#getCategory <em>Category</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getViewSpecification()
+ * @model
+ * @generated
+ */
+public interface ViewSpecification extends PartSpecification
+{
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(String)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getViewSpecification_Id()
+ * @model
+ * @generated
+ */
+ String getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.ViewSpecification#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(String value);
+
+ /**
+ * Returns the value of the '<em><b>View Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>View Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>View Name</em>' attribute.
+ * @see #setViewName(String)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getViewSpecification_ViewName()
+ * @model
+ * @generated
+ */
+ String getViewName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.ViewSpecification#getViewName <em>View Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>View Name</em>' attribute.
+ * @see #getViewName()
+ * @generated
+ */
+ void setViewName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' containment reference.
+ * @see #setType(JvmTypeReference)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getViewSpecification_Type()
+ * @model containment="true"
+ * @generated
+ */
+ JvmTypeReference getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.ViewSpecification#getType <em>Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' containment reference.
+ * @see #getType()
+ * @generated
+ */
+ void setType(JvmTypeReference value);
+
+ /**
+ * Returns the value of the '<em><b>Category</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Category</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Category</em>' attribute.
+ * @see #setCategory(String)
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getViewSpecification_Category()
+ * @model
+ * @generated
+ */
+ String getCategory();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.dsl.model.ViewSpecification#getCategory <em>Category</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Category</em>' attribute.
+ * @see #getCategory()
+ * @generated
+ */
+ void setCategory(String value);
+
+} // ViewSpecification
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ViewerContentProvider.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ViewerContentProvider.java
new file mode 100644
index 000000000..0171a9db5
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/ViewerContentProvider.java
@@ -0,0 +1,43 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Viewer Content Provider</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.ViewerContentProvider#getChildrenSpecifications <em>Children Specifications</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getViewerContentProvider()
+ * @model
+ * @generated
+ */
+public interface ViewerContentProvider extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Children Specifications</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.dsl.model.LabelSpecification}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Children Specifications</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Children Specifications</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getViewerContentProvider_ChildrenSpecifications()
+ * @model containment="true"
+ * @generated
+ */
+ EList<LabelSpecification> getChildrenSpecifications();
+
+} // ViewerContentProvider
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/WithExtendsClause.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/WithExtendsClause.java
new file mode 100644
index 000000000..899f79977
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/WithExtendsClause.java
@@ -0,0 +1,19 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>With Extends Clause</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#getWithExtendsClause()
+ * @model
+ * @generated
+ */
+public interface WithExtendsClause extends EObject
+{
+} // WithExtendsClause
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/EmfFeatureAccessImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/EmfFeatureAccessImpl.java
new file mode 100644
index 000000000..22f0bd8bd
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/EmfFeatureAccessImpl.java
@@ -0,0 +1,195 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.parsley.dsl.model.EmfFeatureAccess;
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+
+import org.eclipse.xtext.common.types.JvmTypeReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Emf Feature Access</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.EmfFeatureAccessImpl#getParameterType <em>Parameter Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EmfFeatureAccessImpl extends MinimalEObjectImpl.Container implements EmfFeatureAccess
+{
+ /**
+ * The cached value of the '{@link #getParameterType() <em>Parameter Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParameterType()
+ * @generated
+ * @ordered
+ */
+ protected JvmTypeReference parameterType;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EmfFeatureAccessImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ModelPackage.Literals.EMF_FEATURE_ACCESS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JvmTypeReference getParameterType()
+ {
+ return parameterType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetParameterType(JvmTypeReference newParameterType, NotificationChain msgs)
+ {
+ JvmTypeReference oldParameterType = parameterType;
+ parameterType = newParameterType;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackage.EMF_FEATURE_ACCESS__PARAMETER_TYPE, oldParameterType, newParameterType);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParameterType(JvmTypeReference newParameterType)
+ {
+ if (newParameterType != parameterType)
+ {
+ NotificationChain msgs = null;
+ if (parameterType != null)
+ msgs = ((InternalEObject)parameterType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackage.EMF_FEATURE_ACCESS__PARAMETER_TYPE, null, msgs);
+ if (newParameterType != null)
+ msgs = ((InternalEObject)newParameterType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackage.EMF_FEATURE_ACCESS__PARAMETER_TYPE, null, msgs);
+ msgs = basicSetParameterType(newParameterType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.EMF_FEATURE_ACCESS__PARAMETER_TYPE, newParameterType, newParameterType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.EMF_FEATURE_ACCESS__PARAMETER_TYPE:
+ return basicSetParameterType(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.EMF_FEATURE_ACCESS__PARAMETER_TYPE:
+ return getParameterType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.EMF_FEATURE_ACCESS__PARAMETER_TYPE:
+ setParameterType((JvmTypeReference)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.EMF_FEATURE_ACCESS__PARAMETER_TYPE:
+ setParameterType((JvmTypeReference)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.EMF_FEATURE_ACCESS__PARAMETER_TYPE:
+ return parameterType != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //EmfFeatureAccessImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ExtendsClauseImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ExtendsClauseImpl.java
new file mode 100644
index 000000000..1711c4d20
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ExtendsClauseImpl.java
@@ -0,0 +1,195 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.parsley.dsl.model.ExtendsClause;
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+
+import org.eclipse.xtext.common.types.JvmTypeReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Extends Clause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ExtendsClauseImpl#getSuperType <em>Super Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ExtendsClauseImpl extends MinimalEObjectImpl.Container implements ExtendsClause
+{
+ /**
+ * The cached value of the '{@link #getSuperType() <em>Super Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSuperType()
+ * @generated
+ * @ordered
+ */
+ protected JvmTypeReference superType;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExtendsClauseImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ModelPackage.Literals.EXTENDS_CLAUSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JvmTypeReference getSuperType()
+ {
+ return superType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSuperType(JvmTypeReference newSuperType, NotificationChain msgs)
+ {
+ JvmTypeReference oldSuperType = superType;
+ superType = newSuperType;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackage.EXTENDS_CLAUSE__SUPER_TYPE, oldSuperType, newSuperType);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSuperType(JvmTypeReference newSuperType)
+ {
+ if (newSuperType != superType)
+ {
+ NotificationChain msgs = null;
+ if (superType != null)
+ msgs = ((InternalEObject)superType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackage.EXTENDS_CLAUSE__SUPER_TYPE, null, msgs);
+ if (newSuperType != null)
+ msgs = ((InternalEObject)newSuperType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackage.EXTENDS_CLAUSE__SUPER_TYPE, null, msgs);
+ msgs = basicSetSuperType(newSuperType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.EXTENDS_CLAUSE__SUPER_TYPE, newSuperType, newSuperType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.EXTENDS_CLAUSE__SUPER_TYPE:
+ return basicSetSuperType(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.EXTENDS_CLAUSE__SUPER_TYPE:
+ return getSuperType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.EXTENDS_CLAUSE__SUPER_TYPE:
+ setSuperType((JvmTypeReference)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.EXTENDS_CLAUSE__SUPER_TYPE:
+ setSuperType((JvmTypeReference)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.EXTENDS_CLAUSE__SUPER_TYPE:
+ return superType != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ExtendsClauseImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/FeatureSpecificationImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/FeatureSpecificationImpl.java
new file mode 100644
index 000000000..4496bd70d
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/FeatureSpecificationImpl.java
@@ -0,0 +1,146 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.emf.parsley.dsl.model.FeatureSpecification;
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+
+import org.eclipse.xtext.common.types.JvmMember;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Feature Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.FeatureSpecificationImpl#getFeatures <em>Features</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FeatureSpecificationImpl extends EmfFeatureAccessImpl implements FeatureSpecification
+{
+ /**
+ * The cached value of the '{@link #getFeatures() <em>Features</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFeatures()
+ * @generated
+ * @ordered
+ */
+ protected EList<JvmMember> features;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FeatureSpecificationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ModelPackage.Literals.FEATURE_SPECIFICATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<JvmMember> getFeatures()
+ {
+ if (features == null)
+ {
+ features = new EObjectResolvingEList<JvmMember>(JvmMember.class, this, ModelPackage.FEATURE_SPECIFICATION__FEATURES);
+ }
+ return features;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FEATURE_SPECIFICATION__FEATURES:
+ return getFeatures();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FEATURE_SPECIFICATION__FEATURES:
+ getFeatures().clear();
+ getFeatures().addAll((Collection<? extends JvmMember>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FEATURE_SPECIFICATION__FEATURES:
+ getFeatures().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FEATURE_SPECIFICATION__FEATURES:
+ return features != null && !features.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //FeatureSpecificationImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/FeaturesProviderImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/FeaturesProviderImpl.java
new file mode 100644
index 000000000..b732da7c7
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/FeaturesProviderImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.emf.parsley.dsl.model.FeatureSpecification;
+import org.eclipse.emf.parsley.dsl.model.FeaturesProvider;
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Features Provider</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.FeaturesProviderImpl#getFeatureSpecifications <em>Feature Specifications</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FeaturesProviderImpl extends MinimalEObjectImpl.Container implements FeaturesProvider
+{
+ /**
+ * The cached value of the '{@link #getFeatureSpecifications() <em>Feature Specifications</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFeatureSpecifications()
+ * @generated
+ * @ordered
+ */
+ protected EList<FeatureSpecification> featureSpecifications;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FeaturesProviderImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ModelPackage.Literals.FEATURES_PROVIDER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<FeatureSpecification> getFeatureSpecifications()
+ {
+ if (featureSpecifications == null)
+ {
+ featureSpecifications = new EObjectContainmentEList<FeatureSpecification>(FeatureSpecification.class, this, ModelPackage.FEATURES_PROVIDER__FEATURE_SPECIFICATIONS);
+ }
+ return featureSpecifications;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FEATURES_PROVIDER__FEATURE_SPECIFICATIONS:
+ return ((InternalEList<?>)getFeatureSpecifications()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FEATURES_PROVIDER__FEATURE_SPECIFICATIONS:
+ return getFeatureSpecifications();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FEATURES_PROVIDER__FEATURE_SPECIFICATIONS:
+ getFeatureSpecifications().clear();
+ getFeatureSpecifications().addAll((Collection<? extends FeatureSpecification>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FEATURES_PROVIDER__FEATURE_SPECIFICATIONS:
+ getFeatureSpecifications().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FEATURES_PROVIDER__FEATURE_SPECIFICATIONS:
+ return featureSpecifications != null && !featureSpecifications.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //FeaturesProviderImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/FormControlFactoryImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/FormControlFactoryImpl.java
new file mode 100644
index 000000000..9363b9ec5
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/FormControlFactoryImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.emf.parsley.dsl.model.FormControlFactory;
+import org.eclipse.emf.parsley.dsl.model.FormControlSpecification;
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Form Control Factory</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.FormControlFactoryImpl#getControlSpecifications <em>Control Specifications</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FormControlFactoryImpl extends MinimalEObjectImpl.Container implements FormControlFactory
+{
+ /**
+ * The cached value of the '{@link #getControlSpecifications() <em>Control Specifications</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getControlSpecifications()
+ * @generated
+ * @ordered
+ */
+ protected EList<FormControlSpecification> controlSpecifications;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FormControlFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ModelPackage.Literals.FORM_CONTROL_FACTORY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<FormControlSpecification> getControlSpecifications()
+ {
+ if (controlSpecifications == null)
+ {
+ controlSpecifications = new EObjectContainmentEList<FormControlSpecification>(FormControlSpecification.class, this, ModelPackage.FORM_CONTROL_FACTORY__CONTROL_SPECIFICATIONS);
+ }
+ return controlSpecifications;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FORM_CONTROL_FACTORY__CONTROL_SPECIFICATIONS:
+ return ((InternalEList<?>)getControlSpecifications()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FORM_CONTROL_FACTORY__CONTROL_SPECIFICATIONS:
+ return getControlSpecifications();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FORM_CONTROL_FACTORY__CONTROL_SPECIFICATIONS:
+ getControlSpecifications().clear();
+ getControlSpecifications().addAll((Collection<? extends FormControlSpecification>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FORM_CONTROL_FACTORY__CONTROL_SPECIFICATIONS:
+ getControlSpecifications().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FORM_CONTROL_FACTORY__CONTROL_SPECIFICATIONS:
+ return controlSpecifications != null && !controlSpecifications.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //FormControlFactoryImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/FormControlSpecificationImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/FormControlSpecificationImpl.java
new file mode 100644
index 000000000..d04ca6975
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/FormControlSpecificationImpl.java
@@ -0,0 +1,332 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.parsley.dsl.model.FormControlSpecification;
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+
+import org.eclipse.xtext.common.types.JvmMember;
+
+import org.eclipse.xtext.xbase.XExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Form Control Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.FormControlSpecificationImpl#getFeature <em>Feature</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.FormControlSpecificationImpl#getExpression <em>Expression</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.FormControlSpecificationImpl#getTarget <em>Target</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FormControlSpecificationImpl extends EmfFeatureAccessImpl implements FormControlSpecification
+{
+ /**
+ * The cached value of the '{@link #getFeature() <em>Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFeature()
+ * @generated
+ * @ordered
+ */
+ protected JvmMember feature;
+
+ /**
+ * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression()
+ * @generated
+ * @ordered
+ */
+ protected XExpression expression;
+
+ /**
+ * The cached value of the '{@link #getTarget() <em>Target</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTarget()
+ * @generated
+ * @ordered
+ */
+ protected XExpression target;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FormControlSpecificationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ModelPackage.Literals.FORM_CONTROL_SPECIFICATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JvmMember getFeature()
+ {
+ if (feature != null && feature.eIsProxy())
+ {
+ InternalEObject oldFeature = (InternalEObject)feature;
+ feature = (JvmMember)eResolveProxy(oldFeature);
+ if (feature != oldFeature)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ModelPackage.FORM_CONTROL_SPECIFICATION__FEATURE, oldFeature, feature));
+ }
+ }
+ return feature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JvmMember basicGetFeature()
+ {
+ return feature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFeature(JvmMember newFeature)
+ {
+ JvmMember oldFeature = feature;
+ feature = newFeature;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.FORM_CONTROL_SPECIFICATION__FEATURE, oldFeature, feature));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public XExpression getExpression()
+ {
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpression(XExpression newExpression, NotificationChain msgs)
+ {
+ XExpression oldExpression = expression;
+ expression = newExpression;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackage.FORM_CONTROL_SPECIFICATION__EXPRESSION, oldExpression, newExpression);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpression(XExpression newExpression)
+ {
+ if (newExpression != expression)
+ {
+ NotificationChain msgs = null;
+ if (expression != null)
+ msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackage.FORM_CONTROL_SPECIFICATION__EXPRESSION, null, msgs);
+ if (newExpression != null)
+ msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackage.FORM_CONTROL_SPECIFICATION__EXPRESSION, null, msgs);
+ msgs = basicSetExpression(newExpression, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.FORM_CONTROL_SPECIFICATION__EXPRESSION, newExpression, newExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public XExpression getTarget()
+ {
+ return target;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTarget(XExpression newTarget, NotificationChain msgs)
+ {
+ XExpression oldTarget = target;
+ target = newTarget;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackage.FORM_CONTROL_SPECIFICATION__TARGET, oldTarget, newTarget);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTarget(XExpression newTarget)
+ {
+ if (newTarget != target)
+ {
+ NotificationChain msgs = null;
+ if (target != null)
+ msgs = ((InternalEObject)target).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackage.FORM_CONTROL_SPECIFICATION__TARGET, null, msgs);
+ if (newTarget != null)
+ msgs = ((InternalEObject)newTarget).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackage.FORM_CONTROL_SPECIFICATION__TARGET, null, msgs);
+ msgs = basicSetTarget(newTarget, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.FORM_CONTROL_SPECIFICATION__TARGET, newTarget, newTarget));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FORM_CONTROL_SPECIFICATION__EXPRESSION:
+ return basicSetExpression(null, msgs);
+ case ModelPackage.FORM_CONTROL_SPECIFICATION__TARGET:
+ return basicSetTarget(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FORM_CONTROL_SPECIFICATION__FEATURE:
+ if (resolve) return getFeature();
+ return basicGetFeature();
+ case ModelPackage.FORM_CONTROL_SPECIFICATION__EXPRESSION:
+ return getExpression();
+ case ModelPackage.FORM_CONTROL_SPECIFICATION__TARGET:
+ return getTarget();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FORM_CONTROL_SPECIFICATION__FEATURE:
+ setFeature((JvmMember)newValue);
+ return;
+ case ModelPackage.FORM_CONTROL_SPECIFICATION__EXPRESSION:
+ setExpression((XExpression)newValue);
+ return;
+ case ModelPackage.FORM_CONTROL_SPECIFICATION__TARGET:
+ setTarget((XExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FORM_CONTROL_SPECIFICATION__FEATURE:
+ setFeature((JvmMember)null);
+ return;
+ case ModelPackage.FORM_CONTROL_SPECIFICATION__EXPRESSION:
+ setExpression((XExpression)null);
+ return;
+ case ModelPackage.FORM_CONTROL_SPECIFICATION__TARGET:
+ setTarget((XExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.FORM_CONTROL_SPECIFICATION__FEATURE:
+ return feature != null;
+ case ModelPackage.FORM_CONTROL_SPECIFICATION__EXPRESSION:
+ return expression != null;
+ case ModelPackage.FORM_CONTROL_SPECIFICATION__TARGET:
+ return target != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //FormControlSpecificationImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/LabelProviderImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/LabelProviderImpl.java
new file mode 100644
index 000000000..2a5af12b0
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/LabelProviderImpl.java
@@ -0,0 +1,205 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.emf.parsley.dsl.model.LabelProvider;
+import org.eclipse.emf.parsley.dsl.model.LabelSpecification;
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Label Provider</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.LabelProviderImpl#getLabelSpecifications <em>Label Specifications</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.LabelProviderImpl#getImageSpecifications <em>Image Specifications</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LabelProviderImpl extends MinimalEObjectImpl.Container implements LabelProvider
+{
+ /**
+ * The cached value of the '{@link #getLabelSpecifications() <em>Label Specifications</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLabelSpecifications()
+ * @generated
+ * @ordered
+ */
+ protected EList<LabelSpecification> labelSpecifications;
+
+ /**
+ * The cached value of the '{@link #getImageSpecifications() <em>Image Specifications</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getImageSpecifications()
+ * @generated
+ * @ordered
+ */
+ protected EList<LabelSpecification> imageSpecifications;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LabelProviderImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ModelPackage.Literals.LABEL_PROVIDER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<LabelSpecification> getLabelSpecifications()
+ {
+ if (labelSpecifications == null)
+ {
+ labelSpecifications = new EObjectContainmentEList<LabelSpecification>(LabelSpecification.class, this, ModelPackage.LABEL_PROVIDER__LABEL_SPECIFICATIONS);
+ }
+ return labelSpecifications;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<LabelSpecification> getImageSpecifications()
+ {
+ if (imageSpecifications == null)
+ {
+ imageSpecifications = new EObjectContainmentEList<LabelSpecification>(LabelSpecification.class, this, ModelPackage.LABEL_PROVIDER__IMAGE_SPECIFICATIONS);
+ }
+ return imageSpecifications;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.LABEL_PROVIDER__LABEL_SPECIFICATIONS:
+ return ((InternalEList<?>)getLabelSpecifications()).basicRemove(otherEnd, msgs);
+ case ModelPackage.LABEL_PROVIDER__IMAGE_SPECIFICATIONS:
+ return ((InternalEList<?>)getImageSpecifications()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.LABEL_PROVIDER__LABEL_SPECIFICATIONS:
+ return getLabelSpecifications();
+ case ModelPackage.LABEL_PROVIDER__IMAGE_SPECIFICATIONS:
+ return getImageSpecifications();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.LABEL_PROVIDER__LABEL_SPECIFICATIONS:
+ getLabelSpecifications().clear();
+ getLabelSpecifications().addAll((Collection<? extends LabelSpecification>)newValue);
+ return;
+ case ModelPackage.LABEL_PROVIDER__IMAGE_SPECIFICATIONS:
+ getImageSpecifications().clear();
+ getImageSpecifications().addAll((Collection<? extends LabelSpecification>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.LABEL_PROVIDER__LABEL_SPECIFICATIONS:
+ getLabelSpecifications().clear();
+ return;
+ case ModelPackage.LABEL_PROVIDER__IMAGE_SPECIFICATIONS:
+ getImageSpecifications().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.LABEL_PROVIDER__LABEL_SPECIFICATIONS:
+ return labelSpecifications != null && !labelSpecifications.isEmpty();
+ case ModelPackage.LABEL_PROVIDER__IMAGE_SPECIFICATIONS:
+ return imageSpecifications != null && !imageSpecifications.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //LabelProviderImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/LabelSpecificationImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/LabelSpecificationImpl.java
new file mode 100644
index 000000000..d0d9c83b5
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/LabelSpecificationImpl.java
@@ -0,0 +1,339 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.parsley.dsl.model.LabelSpecification;
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+
+import org.eclipse.xtext.common.types.JvmTypeReference;
+
+import org.eclipse.xtext.xbase.XExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Label Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.LabelSpecificationImpl#getParameterType <em>Parameter Type</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.LabelSpecificationImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.LabelSpecificationImpl#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LabelSpecificationImpl extends MinimalEObjectImpl.Container implements LabelSpecification
+{
+ /**
+ * The cached value of the '{@link #getParameterType() <em>Parameter Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParameterType()
+ * @generated
+ * @ordered
+ */
+ protected JvmTypeReference parameterType;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression()
+ * @generated
+ * @ordered
+ */
+ protected XExpression expression;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LabelSpecificationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ModelPackage.Literals.LABEL_SPECIFICATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JvmTypeReference getParameterType()
+ {
+ return parameterType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetParameterType(JvmTypeReference newParameterType, NotificationChain msgs)
+ {
+ JvmTypeReference oldParameterType = parameterType;
+ parameterType = newParameterType;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackage.LABEL_SPECIFICATION__PARAMETER_TYPE, oldParameterType, newParameterType);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParameterType(JvmTypeReference newParameterType)
+ {
+ if (newParameterType != parameterType)
+ {
+ NotificationChain msgs = null;
+ if (parameterType != null)
+ msgs = ((InternalEObject)parameterType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackage.LABEL_SPECIFICATION__PARAMETER_TYPE, null, msgs);
+ if (newParameterType != null)
+ msgs = ((InternalEObject)newParameterType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackage.LABEL_SPECIFICATION__PARAMETER_TYPE, null, msgs);
+ msgs = basicSetParameterType(newParameterType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.LABEL_SPECIFICATION__PARAMETER_TYPE, newParameterType, newParameterType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.LABEL_SPECIFICATION__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public XExpression getExpression()
+ {
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpression(XExpression newExpression, NotificationChain msgs)
+ {
+ XExpression oldExpression = expression;
+ expression = newExpression;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackage.LABEL_SPECIFICATION__EXPRESSION, oldExpression, newExpression);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpression(XExpression newExpression)
+ {
+ if (newExpression != expression)
+ {
+ NotificationChain msgs = null;
+ if (expression != null)
+ msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackage.LABEL_SPECIFICATION__EXPRESSION, null, msgs);
+ if (newExpression != null)
+ msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackage.LABEL_SPECIFICATION__EXPRESSION, null, msgs);
+ msgs = basicSetExpression(newExpression, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.LABEL_SPECIFICATION__EXPRESSION, newExpression, newExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.LABEL_SPECIFICATION__PARAMETER_TYPE:
+ return basicSetParameterType(null, msgs);
+ case ModelPackage.LABEL_SPECIFICATION__EXPRESSION:
+ return basicSetExpression(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.LABEL_SPECIFICATION__PARAMETER_TYPE:
+ return getParameterType();
+ case ModelPackage.LABEL_SPECIFICATION__NAME:
+ return getName();
+ case ModelPackage.LABEL_SPECIFICATION__EXPRESSION:
+ return getExpression();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.LABEL_SPECIFICATION__PARAMETER_TYPE:
+ setParameterType((JvmTypeReference)newValue);
+ return;
+ case ModelPackage.LABEL_SPECIFICATION__NAME:
+ setName((String)newValue);
+ return;
+ case ModelPackage.LABEL_SPECIFICATION__EXPRESSION:
+ setExpression((XExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.LABEL_SPECIFICATION__PARAMETER_TYPE:
+ setParameterType((JvmTypeReference)null);
+ return;
+ case ModelPackage.LABEL_SPECIFICATION__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ModelPackage.LABEL_SPECIFICATION__EXPRESSION:
+ setExpression((XExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.LABEL_SPECIFICATION__PARAMETER_TYPE:
+ return parameterType != null;
+ case ModelPackage.LABEL_SPECIFICATION__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ModelPackage.LABEL_SPECIFICATION__EXPRESSION:
+ return expression != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LabelSpecificationImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ModelFactoryImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ModelFactoryImpl.java
new file mode 100644
index 000000000..91ce88727
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ModelFactoryImpl.java
@@ -0,0 +1,310 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.emf.parsley.dsl.model.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ModelFactoryImpl extends EFactoryImpl implements ModelFactory
+{
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ModelFactory init()
+ {
+ try
+ {
+ ModelFactory theModelFactory = (ModelFactory)EPackage.Registry.INSTANCE.getEFactory(ModelPackage.eNS_URI);
+ if (theModelFactory != null)
+ {
+ return theModelFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new ModelFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case ModelPackage.MODEL: return createModel();
+ case ModelPackage.MODULE: return createModule();
+ case ModelPackage.EXTENDS_CLAUSE: return createExtendsClause();
+ case ModelPackage.LABEL_PROVIDER: return createLabelProvider();
+ case ModelPackage.LABEL_SPECIFICATION: return createLabelSpecification();
+ case ModelPackage.PROPERTY_DESCRIPTION_PROVIDER: return createPropertyDescriptionProvider();
+ case ModelPackage.PROPERTY_DESCRIPTION_SPECIFICATION: return createPropertyDescriptionSpecification();
+ case ModelPackage.FEATURES_PROVIDER: return createFeaturesProvider();
+ case ModelPackage.FEATURE_SPECIFICATION: return createFeatureSpecification();
+ case ModelPackage.FORM_CONTROL_FACTORY: return createFormControlFactory();
+ case ModelPackage.FORM_CONTROL_SPECIFICATION: return createFormControlSpecification();
+ case ModelPackage.PROPOSAL_CREATOR: return createProposalCreator();
+ case ModelPackage.PROPOSAL_SPECIFICATION: return createProposalSpecification();
+ case ModelPackage.VIEWER_CONTENT_PROVIDER: return createViewerContentProvider();
+ case ModelPackage.EMF_FEATURE_ACCESS: return createEmfFeatureAccess();
+ case ModelPackage.WITH_EXTENDS_CLAUSE: return createWithExtendsClause();
+ case ModelPackage.PART_SPECIFICATION: return createPartSpecification();
+ case ModelPackage.VIEW_SPECIFICATION: return createViewSpecification();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Model createModel()
+ {
+ ModelImpl model = new ModelImpl();
+ return model;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Module createModule()
+ {
+ ModuleImpl module = new ModuleImpl();
+ return module;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExtendsClause createExtendsClause()
+ {
+ ExtendsClauseImpl extendsClause = new ExtendsClauseImpl();
+ return extendsClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LabelProvider createLabelProvider()
+ {
+ LabelProviderImpl labelProvider = new LabelProviderImpl();
+ return labelProvider;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LabelSpecification createLabelSpecification()
+ {
+ LabelSpecificationImpl labelSpecification = new LabelSpecificationImpl();
+ return labelSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PropertyDescriptionProvider createPropertyDescriptionProvider()
+ {
+ PropertyDescriptionProviderImpl propertyDescriptionProvider = new PropertyDescriptionProviderImpl();
+ return propertyDescriptionProvider;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PropertyDescriptionSpecification createPropertyDescriptionSpecification()
+ {
+ PropertyDescriptionSpecificationImpl propertyDescriptionSpecification = new PropertyDescriptionSpecificationImpl();
+ return propertyDescriptionSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FeaturesProvider createFeaturesProvider()
+ {
+ FeaturesProviderImpl featuresProvider = new FeaturesProviderImpl();
+ return featuresProvider;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FeatureSpecification createFeatureSpecification()
+ {
+ FeatureSpecificationImpl featureSpecification = new FeatureSpecificationImpl();
+ return featureSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FormControlFactory createFormControlFactory()
+ {
+ FormControlFactoryImpl formControlFactory = new FormControlFactoryImpl();
+ return formControlFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FormControlSpecification createFormControlSpecification()
+ {
+ FormControlSpecificationImpl formControlSpecification = new FormControlSpecificationImpl();
+ return formControlSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProposalCreator createProposalCreator()
+ {
+ ProposalCreatorImpl proposalCreator = new ProposalCreatorImpl();
+ return proposalCreator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProposalSpecification createProposalSpecification()
+ {
+ ProposalSpecificationImpl proposalSpecification = new ProposalSpecificationImpl();
+ return proposalSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ViewerContentProvider createViewerContentProvider()
+ {
+ ViewerContentProviderImpl viewerContentProvider = new ViewerContentProviderImpl();
+ return viewerContentProvider;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EmfFeatureAccess createEmfFeatureAccess()
+ {
+ EmfFeatureAccessImpl emfFeatureAccess = new EmfFeatureAccessImpl();
+ return emfFeatureAccess;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WithExtendsClause createWithExtendsClause()
+ {
+ WithExtendsClauseImpl withExtendsClause = new WithExtendsClauseImpl();
+ return withExtendsClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PartSpecification createPartSpecification()
+ {
+ PartSpecificationImpl partSpecification = new PartSpecificationImpl();
+ return partSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ViewSpecification createViewSpecification()
+ {
+ ViewSpecificationImpl viewSpecification = new ViewSpecificationImpl();
+ return viewSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelPackage getModelPackage()
+ {
+ return (ModelPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static ModelPackage getPackage()
+ {
+ return ModelPackage.eINSTANCE;
+ }
+
+} //ModelFactoryImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ModelImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ModelImpl.java
new file mode 100644
index 000000000..25a714bf7
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ModelImpl.java
@@ -0,0 +1,267 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.parsley.dsl.model.Model;
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+import org.eclipse.emf.parsley.dsl.model.Module;
+
+import org.eclipse.xtext.xtype.XImportSection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ModelImpl#getImportSection <em>Import Section</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ModelImpl#getModule <em>Module</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ModelImpl extends MinimalEObjectImpl.Container implements Model
+{
+ /**
+ * The cached value of the '{@link #getImportSection() <em>Import Section</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getImportSection()
+ * @generated
+ * @ordered
+ */
+ protected XImportSection importSection;
+
+ /**
+ * The cached value of the '{@link #getModule() <em>Module</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModule()
+ * @generated
+ * @ordered
+ */
+ protected Module module;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ModelPackage.Literals.MODEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public XImportSection getImportSection()
+ {
+ return importSection;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetImportSection(XImportSection newImportSection, NotificationChain msgs)
+ {
+ XImportSection oldImportSection = importSection;
+ importSection = newImportSection;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackage.MODEL__IMPORT_SECTION, oldImportSection, newImportSection);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setImportSection(XImportSection newImportSection)
+ {
+ if (newImportSection != importSection)
+ {
+ NotificationChain msgs = null;
+ if (importSection != null)
+ msgs = ((InternalEObject)importSection).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackage.MODEL__IMPORT_SECTION, null, msgs);
+ if (newImportSection != null)
+ msgs = ((InternalEObject)newImportSection).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackage.MODEL__IMPORT_SECTION, null, msgs);
+ msgs = basicSetImportSection(newImportSection, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MODEL__IMPORT_SECTION, newImportSection, newImportSection));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Module getModule()
+ {
+ return module;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetModule(Module newModule, NotificationChain msgs)
+ {
+ Module oldModule = module;
+ module = newModule;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackage.MODEL__MODULE, oldModule, newModule);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setModule(Module newModule)
+ {
+ if (newModule != module)
+ {
+ NotificationChain msgs = null;
+ if (module != null)
+ msgs = ((InternalEObject)module).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackage.MODEL__MODULE, null, msgs);
+ if (newModule != null)
+ msgs = ((InternalEObject)newModule).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackage.MODEL__MODULE, null, msgs);
+ msgs = basicSetModule(newModule, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MODEL__MODULE, newModule, newModule));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.MODEL__IMPORT_SECTION:
+ return basicSetImportSection(null, msgs);
+ case ModelPackage.MODEL__MODULE:
+ return basicSetModule(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.MODEL__IMPORT_SECTION:
+ return getImportSection();
+ case ModelPackage.MODEL__MODULE:
+ return getModule();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.MODEL__IMPORT_SECTION:
+ setImportSection((XImportSection)newValue);
+ return;
+ case ModelPackage.MODEL__MODULE:
+ setModule((Module)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.MODEL__IMPORT_SECTION:
+ setImportSection((XImportSection)null);
+ return;
+ case ModelPackage.MODEL__MODULE:
+ setModule((Module)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.MODEL__IMPORT_SECTION:
+ return importSection != null;
+ case ModelPackage.MODEL__MODULE:
+ return module != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ModelImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ModelPackageImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ModelPackageImpl.java
new file mode 100644
index 000000000..14a186faf
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ModelPackageImpl.java
@@ -0,0 +1,989 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.emf.parsley.dsl.model.EmfFeatureAccess;
+import org.eclipse.emf.parsley.dsl.model.ExtendsClause;
+import org.eclipse.emf.parsley.dsl.model.FeatureSpecification;
+import org.eclipse.emf.parsley.dsl.model.FeaturesProvider;
+import org.eclipse.emf.parsley.dsl.model.FormControlFactory;
+import org.eclipse.emf.parsley.dsl.model.FormControlSpecification;
+import org.eclipse.emf.parsley.dsl.model.LabelProvider;
+import org.eclipse.emf.parsley.dsl.model.LabelSpecification;
+import org.eclipse.emf.parsley.dsl.model.Model;
+import org.eclipse.emf.parsley.dsl.model.ModelFactory;
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+import org.eclipse.emf.parsley.dsl.model.Module;
+import org.eclipse.emf.parsley.dsl.model.PartSpecification;
+import org.eclipse.emf.parsley.dsl.model.PropertyDescriptionProvider;
+import org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification;
+import org.eclipse.emf.parsley.dsl.model.ProposalCreator;
+import org.eclipse.emf.parsley.dsl.model.ProposalSpecification;
+import org.eclipse.emf.parsley.dsl.model.ViewSpecification;
+import org.eclipse.emf.parsley.dsl.model.ViewerContentProvider;
+import org.eclipse.emf.parsley.dsl.model.WithExtendsClause;
+
+import org.eclipse.xtext.common.types.TypesPackage;
+
+import org.eclipse.xtext.xbase.XbasePackage;
+
+import org.eclipse.xtext.xtype.XtypePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ModelPackageImpl extends EPackageImpl implements ModelPackage
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass modelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass moduleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass extendsClauseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass labelProviderEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass labelSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass propertyDescriptionProviderEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass propertyDescriptionSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass featuresProviderEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass featureSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass formControlFactoryEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass formControlSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass proposalCreatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass proposalSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass viewerContentProviderEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass emfFeatureAccessEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass withExtendsClauseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass partSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass viewSpecificationEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ModelPackageImpl()
+ {
+ super(eNS_URI, ModelFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link ModelPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static ModelPackage init()
+ {
+ if (isInited) return (ModelPackage)EPackage.Registry.INSTANCE.getEPackage(ModelPackage.eNS_URI);
+
+ // Obtain or create and register package
+ ModelPackageImpl theModelPackage = (ModelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ModelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ModelPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ XbasePackage.eINSTANCE.eClass();
+ XtypePackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theModelPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theModelPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theModelPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(ModelPackage.eNS_URI, theModelPackage);
+ return theModelPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getModel()
+ {
+ return modelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModel_ImportSection()
+ {
+ return (EReference)modelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModel_Module()
+ {
+ return (EReference)modelEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getModule()
+ {
+ return moduleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getModule_Name()
+ {
+ return (EAttribute)moduleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModule_ExtendsClause()
+ {
+ return (EReference)moduleEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModule_LabelProvider()
+ {
+ return (EReference)moduleEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModule_PropertyDescriptionProvider()
+ {
+ return (EReference)moduleEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModule_FeaturesProvider()
+ {
+ return (EReference)moduleEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModule_FormControlFactory()
+ {
+ return (EReference)moduleEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModule_ProposalCreator()
+ {
+ return (EReference)moduleEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModule_ViewerContentProvider()
+ {
+ return (EReference)moduleEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModule_Parts()
+ {
+ return (EReference)moduleEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExtendsClause()
+ {
+ return extendsClauseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExtendsClause_SuperType()
+ {
+ return (EReference)extendsClauseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLabelProvider()
+ {
+ return labelProviderEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLabelProvider_LabelSpecifications()
+ {
+ return (EReference)labelProviderEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLabelProvider_ImageSpecifications()
+ {
+ return (EReference)labelProviderEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLabelSpecification()
+ {
+ return labelSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLabelSpecification_ParameterType()
+ {
+ return (EReference)labelSpecificationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLabelSpecification_Name()
+ {
+ return (EAttribute)labelSpecificationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLabelSpecification_Expression()
+ {
+ return (EReference)labelSpecificationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPropertyDescriptionProvider()
+ {
+ return propertyDescriptionProviderEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPropertyDescriptionProvider_LabelSpecifications()
+ {
+ return (EReference)propertyDescriptionProviderEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPropertyDescriptionSpecification()
+ {
+ return propertyDescriptionSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPropertyDescriptionSpecification_Feature()
+ {
+ return (EReference)propertyDescriptionSpecificationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPropertyDescriptionSpecification_Expression()
+ {
+ return (EReference)propertyDescriptionSpecificationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFeaturesProvider()
+ {
+ return featuresProviderEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFeaturesProvider_FeatureSpecifications()
+ {
+ return (EReference)featuresProviderEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFeatureSpecification()
+ {
+ return featureSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFeatureSpecification_Features()
+ {
+ return (EReference)featureSpecificationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFormControlFactory()
+ {
+ return formControlFactoryEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFormControlFactory_ControlSpecifications()
+ {
+ return (EReference)formControlFactoryEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFormControlSpecification()
+ {
+ return formControlSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFormControlSpecification_Feature()
+ {
+ return (EReference)formControlSpecificationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFormControlSpecification_Expression()
+ {
+ return (EReference)formControlSpecificationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFormControlSpecification_Target()
+ {
+ return (EReference)formControlSpecificationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProposalCreator()
+ {
+ return proposalCreatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProposalCreator_ProposalsSpecifications()
+ {
+ return (EReference)proposalCreatorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProposalSpecification()
+ {
+ return proposalSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProposalSpecification_Feature()
+ {
+ return (EReference)proposalSpecificationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProposalSpecification_Expression()
+ {
+ return (EReference)proposalSpecificationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getViewerContentProvider()
+ {
+ return viewerContentProviderEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getViewerContentProvider_ChildrenSpecifications()
+ {
+ return (EReference)viewerContentProviderEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEmfFeatureAccess()
+ {
+ return emfFeatureAccessEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEmfFeatureAccess_ParameterType()
+ {
+ return (EReference)emfFeatureAccessEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getWithExtendsClause()
+ {
+ return withExtendsClauseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPartSpecification()
+ {
+ return partSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getViewSpecification()
+ {
+ return viewSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getViewSpecification_Id()
+ {
+ return (EAttribute)viewSpecificationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getViewSpecification_ViewName()
+ {
+ return (EAttribute)viewSpecificationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getViewSpecification_Type()
+ {
+ return (EReference)viewSpecificationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getViewSpecification_Category()
+ {
+ return (EAttribute)viewSpecificationEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelFactory getModelFactory()
+ {
+ return (ModelFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ modelEClass = createEClass(MODEL);
+ createEReference(modelEClass, MODEL__IMPORT_SECTION);
+ createEReference(modelEClass, MODEL__MODULE);
+
+ moduleEClass = createEClass(MODULE);
+ createEAttribute(moduleEClass, MODULE__NAME);
+ createEReference(moduleEClass, MODULE__EXTENDS_CLAUSE);
+ createEReference(moduleEClass, MODULE__LABEL_PROVIDER);
+ createEReference(moduleEClass, MODULE__PROPERTY_DESCRIPTION_PROVIDER);
+ createEReference(moduleEClass, MODULE__FEATURES_PROVIDER);
+ createEReference(moduleEClass, MODULE__FORM_CONTROL_FACTORY);
+ createEReference(moduleEClass, MODULE__PROPOSAL_CREATOR);
+ createEReference(moduleEClass, MODULE__VIEWER_CONTENT_PROVIDER);
+ createEReference(moduleEClass, MODULE__PARTS);
+
+ extendsClauseEClass = createEClass(EXTENDS_CLAUSE);
+ createEReference(extendsClauseEClass, EXTENDS_CLAUSE__SUPER_TYPE);
+
+ labelProviderEClass = createEClass(LABEL_PROVIDER);
+ createEReference(labelProviderEClass, LABEL_PROVIDER__LABEL_SPECIFICATIONS);
+ createEReference(labelProviderEClass, LABEL_PROVIDER__IMAGE_SPECIFICATIONS);
+
+ labelSpecificationEClass = createEClass(LABEL_SPECIFICATION);
+ createEReference(labelSpecificationEClass, LABEL_SPECIFICATION__PARAMETER_TYPE);
+ createEAttribute(labelSpecificationEClass, LABEL_SPECIFICATION__NAME);
+ createEReference(labelSpecificationEClass, LABEL_SPECIFICATION__EXPRESSION);
+
+ propertyDescriptionProviderEClass = createEClass(PROPERTY_DESCRIPTION_PROVIDER);
+ createEReference(propertyDescriptionProviderEClass, PROPERTY_DESCRIPTION_PROVIDER__LABEL_SPECIFICATIONS);
+
+ propertyDescriptionSpecificationEClass = createEClass(PROPERTY_DESCRIPTION_SPECIFICATION);
+ createEReference(propertyDescriptionSpecificationEClass, PROPERTY_DESCRIPTION_SPECIFICATION__FEATURE);
+ createEReference(propertyDescriptionSpecificationEClass, PROPERTY_DESCRIPTION_SPECIFICATION__EXPRESSION);
+
+ featuresProviderEClass = createEClass(FEATURES_PROVIDER);
+ createEReference(featuresProviderEClass, FEATURES_PROVIDER__FEATURE_SPECIFICATIONS);
+
+ featureSpecificationEClass = createEClass(FEATURE_SPECIFICATION);
+ createEReference(featureSpecificationEClass, FEATURE_SPECIFICATION__FEATURES);
+
+ formControlFactoryEClass = createEClass(FORM_CONTROL_FACTORY);
+ createEReference(formControlFactoryEClass, FORM_CONTROL_FACTORY__CONTROL_SPECIFICATIONS);
+
+ formControlSpecificationEClass = createEClass(FORM_CONTROL_SPECIFICATION);
+ createEReference(formControlSpecificationEClass, FORM_CONTROL_SPECIFICATION__FEATURE);
+ createEReference(formControlSpecificationEClass, FORM_CONTROL_SPECIFICATION__EXPRESSION);
+ createEReference(formControlSpecificationEClass, FORM_CONTROL_SPECIFICATION__TARGET);
+
+ proposalCreatorEClass = createEClass(PROPOSAL_CREATOR);
+ createEReference(proposalCreatorEClass, PROPOSAL_CREATOR__PROPOSALS_SPECIFICATIONS);
+
+ proposalSpecificationEClass = createEClass(PROPOSAL_SPECIFICATION);
+ createEReference(proposalSpecificationEClass, PROPOSAL_SPECIFICATION__FEATURE);
+ createEReference(proposalSpecificationEClass, PROPOSAL_SPECIFICATION__EXPRESSION);
+
+ viewerContentProviderEClass = createEClass(VIEWER_CONTENT_PROVIDER);
+ createEReference(viewerContentProviderEClass, VIEWER_CONTENT_PROVIDER__CHILDREN_SPECIFICATIONS);
+
+ emfFeatureAccessEClass = createEClass(EMF_FEATURE_ACCESS);
+ createEReference(emfFeatureAccessEClass, EMF_FEATURE_ACCESS__PARAMETER_TYPE);
+
+ withExtendsClauseEClass = createEClass(WITH_EXTENDS_CLAUSE);
+
+ partSpecificationEClass = createEClass(PART_SPECIFICATION);
+
+ viewSpecificationEClass = createEClass(VIEW_SPECIFICATION);
+ createEAttribute(viewSpecificationEClass, VIEW_SPECIFICATION__ID);
+ createEAttribute(viewSpecificationEClass, VIEW_SPECIFICATION__VIEW_NAME);
+ createEReference(viewSpecificationEClass, VIEW_SPECIFICATION__TYPE);
+ createEAttribute(viewSpecificationEClass, VIEW_SPECIFICATION__CATEGORY);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ XtypePackage theXtypePackage = (XtypePackage)EPackage.Registry.INSTANCE.getEPackage(XtypePackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+ XbasePackage theXbasePackage = (XbasePackage)EPackage.Registry.INSTANCE.getEPackage(XbasePackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ moduleEClass.getESuperTypes().add(this.getWithExtendsClause());
+ propertyDescriptionSpecificationEClass.getESuperTypes().add(this.getEmfFeatureAccess());
+ featureSpecificationEClass.getESuperTypes().add(this.getEmfFeatureAccess());
+ formControlSpecificationEClass.getESuperTypes().add(this.getEmfFeatureAccess());
+ proposalSpecificationEClass.getESuperTypes().add(this.getEmfFeatureAccess());
+ viewSpecificationEClass.getESuperTypes().add(this.getPartSpecification());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(modelEClass, Model.class, "Model", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getModel_ImportSection(), theXtypePackage.getXImportSection(), null, "importSection", null, 0, 1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModel_Module(), this.getModule(), null, "module", null, 0, 1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(moduleEClass, Module.class, "Module", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getModule_Name(), ecorePackage.getEString(), "name", null, 0, 1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModule_ExtendsClause(), this.getExtendsClause(), null, "extendsClause", null, 0, 1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModule_LabelProvider(), this.getLabelProvider(), null, "labelProvider", null, 0, 1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModule_PropertyDescriptionProvider(), this.getPropertyDescriptionProvider(), null, "propertyDescriptionProvider", null, 0, 1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModule_FeaturesProvider(), this.getFeaturesProvider(), null, "featuresProvider", null, 0, 1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModule_FormControlFactory(), this.getFormControlFactory(), null, "formControlFactory", null, 0, 1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModule_ProposalCreator(), this.getProposalCreator(), null, "proposalCreator", null, 0, 1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModule_ViewerContentProvider(), this.getViewerContentProvider(), null, "viewerContentProvider", null, 0, 1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModule_Parts(), this.getPartSpecification(), null, "parts", null, 0, -1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(extendsClauseEClass, ExtendsClause.class, "ExtendsClause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getExtendsClause_SuperType(), theTypesPackage.getJvmTypeReference(), null, "superType", null, 0, 1, ExtendsClause.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(labelProviderEClass, LabelProvider.class, "LabelProvider", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getLabelProvider_LabelSpecifications(), this.getLabelSpecification(), null, "labelSpecifications", null, 0, -1, LabelProvider.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLabelProvider_ImageSpecifications(), this.getLabelSpecification(), null, "imageSpecifications", null, 0, -1, LabelProvider.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(labelSpecificationEClass, LabelSpecification.class, "LabelSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getLabelSpecification_ParameterType(), theTypesPackage.getJvmTypeReference(), null, "parameterType", null, 0, 1, LabelSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLabelSpecification_Name(), ecorePackage.getEString(), "name", null, 0, 1, LabelSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLabelSpecification_Expression(), theXbasePackage.getXExpression(), null, "expression", null, 0, 1, LabelSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(propertyDescriptionProviderEClass, PropertyDescriptionProvider.class, "PropertyDescriptionProvider", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getPropertyDescriptionProvider_LabelSpecifications(), this.getPropertyDescriptionSpecification(), null, "labelSpecifications", null, 0, -1, PropertyDescriptionProvider.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(propertyDescriptionSpecificationEClass, PropertyDescriptionSpecification.class, "PropertyDescriptionSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getPropertyDescriptionSpecification_Feature(), theTypesPackage.getJvmMember(), null, "feature", null, 0, 1, PropertyDescriptionSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPropertyDescriptionSpecification_Expression(), theXbasePackage.getXExpression(), null, "expression", null, 0, 1, PropertyDescriptionSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(featuresProviderEClass, FeaturesProvider.class, "FeaturesProvider", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getFeaturesProvider_FeatureSpecifications(), this.getFeatureSpecification(), null, "featureSpecifications", null, 0, -1, FeaturesProvider.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(featureSpecificationEClass, FeatureSpecification.class, "FeatureSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getFeatureSpecification_Features(), theTypesPackage.getJvmMember(), null, "features", null, 0, -1, FeatureSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(formControlFactoryEClass, FormControlFactory.class, "FormControlFactory", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getFormControlFactory_ControlSpecifications(), this.getFormControlSpecification(), null, "controlSpecifications", null, 0, -1, FormControlFactory.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(formControlSpecificationEClass, FormControlSpecification.class, "FormControlSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getFormControlSpecification_Feature(), theTypesPackage.getJvmMember(), null, "feature", null, 0, 1, FormControlSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getFormControlSpecification_Expression(), theXbasePackage.getXExpression(), null, "expression", null, 0, 1, FormControlSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getFormControlSpecification_Target(), theXbasePackage.getXExpression(), null, "target", null, 0, 1, FormControlSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(proposalCreatorEClass, ProposalCreator.class, "ProposalCreator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getProposalCreator_ProposalsSpecifications(), this.getProposalSpecification(), null, "proposalsSpecifications", null, 0, -1, ProposalCreator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(proposalSpecificationEClass, ProposalSpecification.class, "ProposalSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getProposalSpecification_Feature(), theTypesPackage.getJvmMember(), null, "feature", null, 0, 1, ProposalSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getProposalSpecification_Expression(), theXbasePackage.getXExpression(), null, "expression", null, 0, 1, ProposalSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(viewerContentProviderEClass, ViewerContentProvider.class, "ViewerContentProvider", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getViewerContentProvider_ChildrenSpecifications(), this.getLabelSpecification(), null, "childrenSpecifications", null, 0, -1, ViewerContentProvider.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(emfFeatureAccessEClass, EmfFeatureAccess.class, "EmfFeatureAccess", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getEmfFeatureAccess_ParameterType(), theTypesPackage.getJvmTypeReference(), null, "parameterType", null, 0, 1, EmfFeatureAccess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(withExtendsClauseEClass, WithExtendsClause.class, "WithExtendsClause", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(partSpecificationEClass, PartSpecification.class, "PartSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(viewSpecificationEClass, ViewSpecification.class, "ViewSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getViewSpecification_Id(), ecorePackage.getEString(), "id", null, 0, 1, ViewSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getViewSpecification_ViewName(), ecorePackage.getEString(), "viewName", null, 0, 1, ViewSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getViewSpecification_Type(), theTypesPackage.getJvmTypeReference(), null, "type", null, 0, 1, ViewSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getViewSpecification_Category(), ecorePackage.getEString(), "category", null, 0, 1, ViewSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //ModelPackageImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ModuleImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ModuleImpl.java
new file mode 100644
index 000000000..2ba52166d
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ModuleImpl.java
@@ -0,0 +1,743 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.emf.parsley.dsl.model.ExtendsClause;
+import org.eclipse.emf.parsley.dsl.model.FeaturesProvider;
+import org.eclipse.emf.parsley.dsl.model.FormControlFactory;
+import org.eclipse.emf.parsley.dsl.model.LabelProvider;
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+import org.eclipse.emf.parsley.dsl.model.Module;
+import org.eclipse.emf.parsley.dsl.model.PartSpecification;
+import org.eclipse.emf.parsley.dsl.model.PropertyDescriptionProvider;
+import org.eclipse.emf.parsley.dsl.model.ProposalCreator;
+import org.eclipse.emf.parsley.dsl.model.ViewerContentProvider;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Module</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ModuleImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ModuleImpl#getExtendsClause <em>Extends Clause</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ModuleImpl#getLabelProvider <em>Label Provider</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ModuleImpl#getPropertyDescriptionProvider <em>Property Description Provider</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ModuleImpl#getFeaturesProvider <em>Features Provider</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ModuleImpl#getFormControlFactory <em>Form Control Factory</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ModuleImpl#getProposalCreator <em>Proposal Creator</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ModuleImpl#getViewerContentProvider <em>Viewer Content Provider</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ModuleImpl#getParts <em>Parts</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ModuleImpl extends WithExtendsClauseImpl implements Module
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getExtendsClause() <em>Extends Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExtendsClause()
+ * @generated
+ * @ordered
+ */
+ protected ExtendsClause extendsClause;
+
+ /**
+ * The cached value of the '{@link #getLabelProvider() <em>Label Provider</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLabelProvider()
+ * @generated
+ * @ordered
+ */
+ protected LabelProvider labelProvider;
+
+ /**
+ * The cached value of the '{@link #getPropertyDescriptionProvider() <em>Property Description Provider</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPropertyDescriptionProvider()
+ * @generated
+ * @ordered
+ */
+ protected PropertyDescriptionProvider propertyDescriptionProvider;
+
+ /**
+ * The cached value of the '{@link #getFeaturesProvider() <em>Features Provider</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFeaturesProvider()
+ * @generated
+ * @ordered
+ */
+ protected FeaturesProvider featuresProvider;
+
+ /**
+ * The cached value of the '{@link #getFormControlFactory() <em>Form Control Factory</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFormControlFactory()
+ * @generated
+ * @ordered
+ */
+ protected FormControlFactory formControlFactory;
+
+ /**
+ * The cached value of the '{@link #getProposalCreator() <em>Proposal Creator</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProposalCreator()
+ * @generated
+ * @ordered
+ */
+ protected ProposalCreator proposalCreator;
+
+ /**
+ * The cached value of the '{@link #getViewerContentProvider() <em>Viewer Content Provider</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getViewerContentProvider()
+ * @generated
+ * @ordered
+ */
+ protected ViewerContentProvider viewerContentProvider;
+
+ /**
+ * The cached value of the '{@link #getParts() <em>Parts</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParts()
+ * @generated
+ * @ordered
+ */
+ protected EList<PartSpecification> parts;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModuleImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ModelPackage.Literals.MODULE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MODULE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExtendsClause getExtendsClause()
+ {
+ return extendsClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExtendsClause(ExtendsClause newExtendsClause, NotificationChain msgs)
+ {
+ ExtendsClause oldExtendsClause = extendsClause;
+ extendsClause = newExtendsClause;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackage.MODULE__EXTENDS_CLAUSE, oldExtendsClause, newExtendsClause);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExtendsClause(ExtendsClause newExtendsClause)
+ {
+ if (newExtendsClause != extendsClause)
+ {
+ NotificationChain msgs = null;
+ if (extendsClause != null)
+ msgs = ((InternalEObject)extendsClause).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackage.MODULE__EXTENDS_CLAUSE, null, msgs);
+ if (newExtendsClause != null)
+ msgs = ((InternalEObject)newExtendsClause).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackage.MODULE__EXTENDS_CLAUSE, null, msgs);
+ msgs = basicSetExtendsClause(newExtendsClause, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MODULE__EXTENDS_CLAUSE, newExtendsClause, newExtendsClause));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LabelProvider getLabelProvider()
+ {
+ return labelProvider;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLabelProvider(LabelProvider newLabelProvider, NotificationChain msgs)
+ {
+ LabelProvider oldLabelProvider = labelProvider;
+ labelProvider = newLabelProvider;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackage.MODULE__LABEL_PROVIDER, oldLabelProvider, newLabelProvider);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLabelProvider(LabelProvider newLabelProvider)
+ {
+ if (newLabelProvider != labelProvider)
+ {
+ NotificationChain msgs = null;
+ if (labelProvider != null)
+ msgs = ((InternalEObject)labelProvider).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackage.MODULE__LABEL_PROVIDER, null, msgs);
+ if (newLabelProvider != null)
+ msgs = ((InternalEObject)newLabelProvider).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackage.MODULE__LABEL_PROVIDER, null, msgs);
+ msgs = basicSetLabelProvider(newLabelProvider, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MODULE__LABEL_PROVIDER, newLabelProvider, newLabelProvider));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PropertyDescriptionProvider getPropertyDescriptionProvider()
+ {
+ return propertyDescriptionProvider;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPropertyDescriptionProvider(PropertyDescriptionProvider newPropertyDescriptionProvider, NotificationChain msgs)
+ {
+ PropertyDescriptionProvider oldPropertyDescriptionProvider = propertyDescriptionProvider;
+ propertyDescriptionProvider = newPropertyDescriptionProvider;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackage.MODULE__PROPERTY_DESCRIPTION_PROVIDER, oldPropertyDescriptionProvider, newPropertyDescriptionProvider);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPropertyDescriptionProvider(PropertyDescriptionProvider newPropertyDescriptionProvider)
+ {
+ if (newPropertyDescriptionProvider != propertyDescriptionProvider)
+ {
+ NotificationChain msgs = null;
+ if (propertyDescriptionProvider != null)
+ msgs = ((InternalEObject)propertyDescriptionProvider).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackage.MODULE__PROPERTY_DESCRIPTION_PROVIDER, null, msgs);
+ if (newPropertyDescriptionProvider != null)
+ msgs = ((InternalEObject)newPropertyDescriptionProvider).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackage.MODULE__PROPERTY_DESCRIPTION_PROVIDER, null, msgs);
+ msgs = basicSetPropertyDescriptionProvider(newPropertyDescriptionProvider, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MODULE__PROPERTY_DESCRIPTION_PROVIDER, newPropertyDescriptionProvider, newPropertyDescriptionProvider));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FeaturesProvider getFeaturesProvider()
+ {
+ return featuresProvider;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetFeaturesProvider(FeaturesProvider newFeaturesProvider, NotificationChain msgs)
+ {
+ FeaturesProvider oldFeaturesProvider = featuresProvider;
+ featuresProvider = newFeaturesProvider;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackage.MODULE__FEATURES_PROVIDER, oldFeaturesProvider, newFeaturesProvider);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFeaturesProvider(FeaturesProvider newFeaturesProvider)
+ {
+ if (newFeaturesProvider != featuresProvider)
+ {
+ NotificationChain msgs = null;
+ if (featuresProvider != null)
+ msgs = ((InternalEObject)featuresProvider).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackage.MODULE__FEATURES_PROVIDER, null, msgs);
+ if (newFeaturesProvider != null)
+ msgs = ((InternalEObject)newFeaturesProvider).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackage.MODULE__FEATURES_PROVIDER, null, msgs);
+ msgs = basicSetFeaturesProvider(newFeaturesProvider, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MODULE__FEATURES_PROVIDER, newFeaturesProvider, newFeaturesProvider));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FormControlFactory getFormControlFactory()
+ {
+ return formControlFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetFormControlFactory(FormControlFactory newFormControlFactory, NotificationChain msgs)
+ {
+ FormControlFactory oldFormControlFactory = formControlFactory;
+ formControlFactory = newFormControlFactory;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackage.MODULE__FORM_CONTROL_FACTORY, oldFormControlFactory, newFormControlFactory);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFormControlFactory(FormControlFactory newFormControlFactory)
+ {
+ if (newFormControlFactory != formControlFactory)
+ {
+ NotificationChain msgs = null;
+ if (formControlFactory != null)
+ msgs = ((InternalEObject)formControlFactory).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackage.MODULE__FORM_CONTROL_FACTORY, null, msgs);
+ if (newFormControlFactory != null)
+ msgs = ((InternalEObject)newFormControlFactory).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackage.MODULE__FORM_CONTROL_FACTORY, null, msgs);
+ msgs = basicSetFormControlFactory(newFormControlFactory, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MODULE__FORM_CONTROL_FACTORY, newFormControlFactory, newFormControlFactory));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProposalCreator getProposalCreator()
+ {
+ return proposalCreator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetProposalCreator(ProposalCreator newProposalCreator, NotificationChain msgs)
+ {
+ ProposalCreator oldProposalCreator = proposalCreator;
+ proposalCreator = newProposalCreator;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackage.MODULE__PROPOSAL_CREATOR, oldProposalCreator, newProposalCreator);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProposalCreator(ProposalCreator newProposalCreator)
+ {
+ if (newProposalCreator != proposalCreator)
+ {
+ NotificationChain msgs = null;
+ if (proposalCreator != null)
+ msgs = ((InternalEObject)proposalCreator).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackage.MODULE__PROPOSAL_CREATOR, null, msgs);
+ if (newProposalCreator != null)
+ msgs = ((InternalEObject)newProposalCreator).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackage.MODULE__PROPOSAL_CREATOR, null, msgs);
+ msgs = basicSetProposalCreator(newProposalCreator, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MODULE__PROPOSAL_CREATOR, newProposalCreator, newProposalCreator));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ViewerContentProvider getViewerContentProvider()
+ {
+ return viewerContentProvider;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetViewerContentProvider(ViewerContentProvider newViewerContentProvider, NotificationChain msgs)
+ {
+ ViewerContentProvider oldViewerContentProvider = viewerContentProvider;
+ viewerContentProvider = newViewerContentProvider;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackage.MODULE__VIEWER_CONTENT_PROVIDER, oldViewerContentProvider, newViewerContentProvider);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setViewerContentProvider(ViewerContentProvider newViewerContentProvider)
+ {
+ if (newViewerContentProvider != viewerContentProvider)
+ {
+ NotificationChain msgs = null;
+ if (viewerContentProvider != null)
+ msgs = ((InternalEObject)viewerContentProvider).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackage.MODULE__VIEWER_CONTENT_PROVIDER, null, msgs);
+ if (newViewerContentProvider != null)
+ msgs = ((InternalEObject)newViewerContentProvider).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackage.MODULE__VIEWER_CONTENT_PROVIDER, null, msgs);
+ msgs = basicSetViewerContentProvider(newViewerContentProvider, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MODULE__VIEWER_CONTENT_PROVIDER, newViewerContentProvider, newViewerContentProvider));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<PartSpecification> getParts()
+ {
+ if (parts == null)
+ {
+ parts = new EObjectContainmentEList<PartSpecification>(PartSpecification.class, this, ModelPackage.MODULE__PARTS);
+ }
+ return parts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.MODULE__EXTENDS_CLAUSE:
+ return basicSetExtendsClause(null, msgs);
+ case ModelPackage.MODULE__LABEL_PROVIDER:
+ return basicSetLabelProvider(null, msgs);
+ case ModelPackage.MODULE__PROPERTY_DESCRIPTION_PROVIDER:
+ return basicSetPropertyDescriptionProvider(null, msgs);
+ case ModelPackage.MODULE__FEATURES_PROVIDER:
+ return basicSetFeaturesProvider(null, msgs);
+ case ModelPackage.MODULE__FORM_CONTROL_FACTORY:
+ return basicSetFormControlFactory(null, msgs);
+ case ModelPackage.MODULE__PROPOSAL_CREATOR:
+ return basicSetProposalCreator(null, msgs);
+ case ModelPackage.MODULE__VIEWER_CONTENT_PROVIDER:
+ return basicSetViewerContentProvider(null, msgs);
+ case ModelPackage.MODULE__PARTS:
+ return ((InternalEList<?>)getParts()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.MODULE__NAME:
+ return getName();
+ case ModelPackage.MODULE__EXTENDS_CLAUSE:
+ return getExtendsClause();
+ case ModelPackage.MODULE__LABEL_PROVIDER:
+ return getLabelProvider();
+ case ModelPackage.MODULE__PROPERTY_DESCRIPTION_PROVIDER:
+ return getPropertyDescriptionProvider();
+ case ModelPackage.MODULE__FEATURES_PROVIDER:
+ return getFeaturesProvider();
+ case ModelPackage.MODULE__FORM_CONTROL_FACTORY:
+ return getFormControlFactory();
+ case ModelPackage.MODULE__PROPOSAL_CREATOR:
+ return getProposalCreator();
+ case ModelPackage.MODULE__VIEWER_CONTENT_PROVIDER:
+ return getViewerContentProvider();
+ case ModelPackage.MODULE__PARTS:
+ return getParts();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.MODULE__NAME:
+ setName((String)newValue);
+ return;
+ case ModelPackage.MODULE__EXTENDS_CLAUSE:
+ setExtendsClause((ExtendsClause)newValue);
+ return;
+ case ModelPackage.MODULE__LABEL_PROVIDER:
+ setLabelProvider((LabelProvider)newValue);
+ return;
+ case ModelPackage.MODULE__PROPERTY_DESCRIPTION_PROVIDER:
+ setPropertyDescriptionProvider((PropertyDescriptionProvider)newValue);
+ return;
+ case ModelPackage.MODULE__FEATURES_PROVIDER:
+ setFeaturesProvider((FeaturesProvider)newValue);
+ return;
+ case ModelPackage.MODULE__FORM_CONTROL_FACTORY:
+ setFormControlFactory((FormControlFactory)newValue);
+ return;
+ case ModelPackage.MODULE__PROPOSAL_CREATOR:
+ setProposalCreator((ProposalCreator)newValue);
+ return;
+ case ModelPackage.MODULE__VIEWER_CONTENT_PROVIDER:
+ setViewerContentProvider((ViewerContentProvider)newValue);
+ return;
+ case ModelPackage.MODULE__PARTS:
+ getParts().clear();
+ getParts().addAll((Collection<? extends PartSpecification>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.MODULE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ModelPackage.MODULE__EXTENDS_CLAUSE:
+ setExtendsClause((ExtendsClause)null);
+ return;
+ case ModelPackage.MODULE__LABEL_PROVIDER:
+ setLabelProvider((LabelProvider)null);
+ return;
+ case ModelPackage.MODULE__PROPERTY_DESCRIPTION_PROVIDER:
+ setPropertyDescriptionProvider((PropertyDescriptionProvider)null);
+ return;
+ case ModelPackage.MODULE__FEATURES_PROVIDER:
+ setFeaturesProvider((FeaturesProvider)null);
+ return;
+ case ModelPackage.MODULE__FORM_CONTROL_FACTORY:
+ setFormControlFactory((FormControlFactory)null);
+ return;
+ case ModelPackage.MODULE__PROPOSAL_CREATOR:
+ setProposalCreator((ProposalCreator)null);
+ return;
+ case ModelPackage.MODULE__VIEWER_CONTENT_PROVIDER:
+ setViewerContentProvider((ViewerContentProvider)null);
+ return;
+ case ModelPackage.MODULE__PARTS:
+ getParts().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.MODULE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ModelPackage.MODULE__EXTENDS_CLAUSE:
+ return extendsClause != null;
+ case ModelPackage.MODULE__LABEL_PROVIDER:
+ return labelProvider != null;
+ case ModelPackage.MODULE__PROPERTY_DESCRIPTION_PROVIDER:
+ return propertyDescriptionProvider != null;
+ case ModelPackage.MODULE__FEATURES_PROVIDER:
+ return featuresProvider != null;
+ case ModelPackage.MODULE__FORM_CONTROL_FACTORY:
+ return formControlFactory != null;
+ case ModelPackage.MODULE__PROPOSAL_CREATOR:
+ return proposalCreator != null;
+ case ModelPackage.MODULE__VIEWER_CONTENT_PROVIDER:
+ return viewerContentProvider != null;
+ case ModelPackage.MODULE__PARTS:
+ return parts != null && !parts.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ModuleImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/PartSpecificationImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/PartSpecificationImpl.java
new file mode 100644
index 000000000..2a44a758f
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/PartSpecificationImpl.java
@@ -0,0 +1,44 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+import org.eclipse.emf.parsley.dsl.model.PartSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Part Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class PartSpecificationImpl extends MinimalEObjectImpl.Container implements PartSpecification
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PartSpecificationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ModelPackage.Literals.PART_SPECIFICATION;
+ }
+
+} //PartSpecificationImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/PropertyDescriptionProviderImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/PropertyDescriptionProviderImpl.java
new file mode 100644
index 000000000..3768d5878
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/PropertyDescriptionProviderImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+import org.eclipse.emf.parsley.dsl.model.PropertyDescriptionProvider;
+import org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Property Description Provider</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.PropertyDescriptionProviderImpl#getLabelSpecifications <em>Label Specifications</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PropertyDescriptionProviderImpl extends MinimalEObjectImpl.Container implements PropertyDescriptionProvider
+{
+ /**
+ * The cached value of the '{@link #getLabelSpecifications() <em>Label Specifications</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLabelSpecifications()
+ * @generated
+ * @ordered
+ */
+ protected EList<PropertyDescriptionSpecification> labelSpecifications;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PropertyDescriptionProviderImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ModelPackage.Literals.PROPERTY_DESCRIPTION_PROVIDER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<PropertyDescriptionSpecification> getLabelSpecifications()
+ {
+ if (labelSpecifications == null)
+ {
+ labelSpecifications = new EObjectContainmentEList<PropertyDescriptionSpecification>(PropertyDescriptionSpecification.class, this, ModelPackage.PROPERTY_DESCRIPTION_PROVIDER__LABEL_SPECIFICATIONS);
+ }
+ return labelSpecifications;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPERTY_DESCRIPTION_PROVIDER__LABEL_SPECIFICATIONS:
+ return ((InternalEList<?>)getLabelSpecifications()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPERTY_DESCRIPTION_PROVIDER__LABEL_SPECIFICATIONS:
+ return getLabelSpecifications();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPERTY_DESCRIPTION_PROVIDER__LABEL_SPECIFICATIONS:
+ getLabelSpecifications().clear();
+ getLabelSpecifications().addAll((Collection<? extends PropertyDescriptionSpecification>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPERTY_DESCRIPTION_PROVIDER__LABEL_SPECIFICATIONS:
+ getLabelSpecifications().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPERTY_DESCRIPTION_PROVIDER__LABEL_SPECIFICATIONS:
+ return labelSpecifications != null && !labelSpecifications.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //PropertyDescriptionProviderImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/PropertyDescriptionSpecificationImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/PropertyDescriptionSpecificationImpl.java
new file mode 100644
index 000000000..222274376
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/PropertyDescriptionSpecificationImpl.java
@@ -0,0 +1,261 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+import org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification;
+
+import org.eclipse.xtext.common.types.JvmMember;
+
+import org.eclipse.xtext.xbase.XExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Property Description Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.PropertyDescriptionSpecificationImpl#getFeature <em>Feature</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.PropertyDescriptionSpecificationImpl#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PropertyDescriptionSpecificationImpl extends EmfFeatureAccessImpl implements PropertyDescriptionSpecification
+{
+ /**
+ * The cached value of the '{@link #getFeature() <em>Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFeature()
+ * @generated
+ * @ordered
+ */
+ protected JvmMember feature;
+
+ /**
+ * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression()
+ * @generated
+ * @ordered
+ */
+ protected XExpression expression;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PropertyDescriptionSpecificationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ModelPackage.Literals.PROPERTY_DESCRIPTION_SPECIFICATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JvmMember getFeature()
+ {
+ if (feature != null && feature.eIsProxy())
+ {
+ InternalEObject oldFeature = (InternalEObject)feature;
+ feature = (JvmMember)eResolveProxy(oldFeature);
+ if (feature != oldFeature)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ModelPackage.PROPERTY_DESCRIPTION_SPECIFICATION__FEATURE, oldFeature, feature));
+ }
+ }
+ return feature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JvmMember basicGetFeature()
+ {
+ return feature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFeature(JvmMember newFeature)
+ {
+ JvmMember oldFeature = feature;
+ feature = newFeature;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.PROPERTY_DESCRIPTION_SPECIFICATION__FEATURE, oldFeature, feature));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public XExpression getExpression()
+ {
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpression(XExpression newExpression, NotificationChain msgs)
+ {
+ XExpression oldExpression = expression;
+ expression = newExpression;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackage.PROPERTY_DESCRIPTION_SPECIFICATION__EXPRESSION, oldExpression, newExpression);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpression(XExpression newExpression)
+ {
+ if (newExpression != expression)
+ {
+ NotificationChain msgs = null;
+ if (expression != null)
+ msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackage.PROPERTY_DESCRIPTION_SPECIFICATION__EXPRESSION, null, msgs);
+ if (newExpression != null)
+ msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackage.PROPERTY_DESCRIPTION_SPECIFICATION__EXPRESSION, null, msgs);
+ msgs = basicSetExpression(newExpression, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.PROPERTY_DESCRIPTION_SPECIFICATION__EXPRESSION, newExpression, newExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPERTY_DESCRIPTION_SPECIFICATION__EXPRESSION:
+ return basicSetExpression(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPERTY_DESCRIPTION_SPECIFICATION__FEATURE:
+ if (resolve) return getFeature();
+ return basicGetFeature();
+ case ModelPackage.PROPERTY_DESCRIPTION_SPECIFICATION__EXPRESSION:
+ return getExpression();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPERTY_DESCRIPTION_SPECIFICATION__FEATURE:
+ setFeature((JvmMember)newValue);
+ return;
+ case ModelPackage.PROPERTY_DESCRIPTION_SPECIFICATION__EXPRESSION:
+ setExpression((XExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPERTY_DESCRIPTION_SPECIFICATION__FEATURE:
+ setFeature((JvmMember)null);
+ return;
+ case ModelPackage.PROPERTY_DESCRIPTION_SPECIFICATION__EXPRESSION:
+ setExpression((XExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPERTY_DESCRIPTION_SPECIFICATION__FEATURE:
+ return feature != null;
+ case ModelPackage.PROPERTY_DESCRIPTION_SPECIFICATION__EXPRESSION:
+ return expression != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //PropertyDescriptionSpecificationImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ProposalCreatorImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ProposalCreatorImpl.java
new file mode 100644
index 000000000..d831c3ee4
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ProposalCreatorImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+import org.eclipse.emf.parsley.dsl.model.ProposalCreator;
+import org.eclipse.emf.parsley.dsl.model.ProposalSpecification;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Proposal Creator</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ProposalCreatorImpl#getProposalsSpecifications <em>Proposals Specifications</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ProposalCreatorImpl extends MinimalEObjectImpl.Container implements ProposalCreator
+{
+ /**
+ * The cached value of the '{@link #getProposalsSpecifications() <em>Proposals Specifications</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProposalsSpecifications()
+ * @generated
+ * @ordered
+ */
+ protected EList<ProposalSpecification> proposalsSpecifications;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ProposalCreatorImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ModelPackage.Literals.PROPOSAL_CREATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ProposalSpecification> getProposalsSpecifications()
+ {
+ if (proposalsSpecifications == null)
+ {
+ proposalsSpecifications = new EObjectContainmentEList<ProposalSpecification>(ProposalSpecification.class, this, ModelPackage.PROPOSAL_CREATOR__PROPOSALS_SPECIFICATIONS);
+ }
+ return proposalsSpecifications;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPOSAL_CREATOR__PROPOSALS_SPECIFICATIONS:
+ return ((InternalEList<?>)getProposalsSpecifications()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPOSAL_CREATOR__PROPOSALS_SPECIFICATIONS:
+ return getProposalsSpecifications();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPOSAL_CREATOR__PROPOSALS_SPECIFICATIONS:
+ getProposalsSpecifications().clear();
+ getProposalsSpecifications().addAll((Collection<? extends ProposalSpecification>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPOSAL_CREATOR__PROPOSALS_SPECIFICATIONS:
+ getProposalsSpecifications().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPOSAL_CREATOR__PROPOSALS_SPECIFICATIONS:
+ return proposalsSpecifications != null && !proposalsSpecifications.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ProposalCreatorImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ProposalSpecificationImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ProposalSpecificationImpl.java
new file mode 100644
index 000000000..a7f30d4bb
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ProposalSpecificationImpl.java
@@ -0,0 +1,261 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+import org.eclipse.emf.parsley.dsl.model.ProposalSpecification;
+
+import org.eclipse.xtext.common.types.JvmMember;
+
+import org.eclipse.xtext.xbase.XExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Proposal Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ProposalSpecificationImpl#getFeature <em>Feature</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ProposalSpecificationImpl#getExpression <em>Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ProposalSpecificationImpl extends EmfFeatureAccessImpl implements ProposalSpecification
+{
+ /**
+ * The cached value of the '{@link #getFeature() <em>Feature</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFeature()
+ * @generated
+ * @ordered
+ */
+ protected JvmMember feature;
+
+ /**
+ * The cached value of the '{@link #getExpression() <em>Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExpression()
+ * @generated
+ * @ordered
+ */
+ protected XExpression expression;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ProposalSpecificationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ModelPackage.Literals.PROPOSAL_SPECIFICATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JvmMember getFeature()
+ {
+ if (feature != null && feature.eIsProxy())
+ {
+ InternalEObject oldFeature = (InternalEObject)feature;
+ feature = (JvmMember)eResolveProxy(oldFeature);
+ if (feature != oldFeature)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ModelPackage.PROPOSAL_SPECIFICATION__FEATURE, oldFeature, feature));
+ }
+ }
+ return feature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JvmMember basicGetFeature()
+ {
+ return feature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFeature(JvmMember newFeature)
+ {
+ JvmMember oldFeature = feature;
+ feature = newFeature;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.PROPOSAL_SPECIFICATION__FEATURE, oldFeature, feature));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public XExpression getExpression()
+ {
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetExpression(XExpression newExpression, NotificationChain msgs)
+ {
+ XExpression oldExpression = expression;
+ expression = newExpression;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackage.PROPOSAL_SPECIFICATION__EXPRESSION, oldExpression, newExpression);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExpression(XExpression newExpression)
+ {
+ if (newExpression != expression)
+ {
+ NotificationChain msgs = null;
+ if (expression != null)
+ msgs = ((InternalEObject)expression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackage.PROPOSAL_SPECIFICATION__EXPRESSION, null, msgs);
+ if (newExpression != null)
+ msgs = ((InternalEObject)newExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackage.PROPOSAL_SPECIFICATION__EXPRESSION, null, msgs);
+ msgs = basicSetExpression(newExpression, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.PROPOSAL_SPECIFICATION__EXPRESSION, newExpression, newExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPOSAL_SPECIFICATION__EXPRESSION:
+ return basicSetExpression(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPOSAL_SPECIFICATION__FEATURE:
+ if (resolve) return getFeature();
+ return basicGetFeature();
+ case ModelPackage.PROPOSAL_SPECIFICATION__EXPRESSION:
+ return getExpression();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPOSAL_SPECIFICATION__FEATURE:
+ setFeature((JvmMember)newValue);
+ return;
+ case ModelPackage.PROPOSAL_SPECIFICATION__EXPRESSION:
+ setExpression((XExpression)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPOSAL_SPECIFICATION__FEATURE:
+ setFeature((JvmMember)null);
+ return;
+ case ModelPackage.PROPOSAL_SPECIFICATION__EXPRESSION:
+ setExpression((XExpression)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.PROPOSAL_SPECIFICATION__FEATURE:
+ return feature != null;
+ case ModelPackage.PROPOSAL_SPECIFICATION__EXPRESSION:
+ return expression != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ProposalSpecificationImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ViewSpecificationImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ViewSpecificationImpl.java
new file mode 100644
index 000000000..75bb7936c
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ViewSpecificationImpl.java
@@ -0,0 +1,377 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+import org.eclipse.emf.parsley.dsl.model.ViewSpecification;
+
+import org.eclipse.xtext.common.types.JvmTypeReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>View Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ViewSpecificationImpl#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ViewSpecificationImpl#getViewName <em>View Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ViewSpecificationImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ViewSpecificationImpl#getCategory <em>Category</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ViewSpecificationImpl extends PartSpecificationImpl implements ViewSpecification
+{
+ /**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected static final String ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected String id = ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getViewName() <em>View Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getViewName()
+ * @generated
+ * @ordered
+ */
+ protected static final String VIEW_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getViewName() <em>View Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getViewName()
+ * @generated
+ * @ordered
+ */
+ protected String viewName = VIEW_NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected JvmTypeReference type;
+
+ /**
+ * The default value of the '{@link #getCategory() <em>Category</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCategory()
+ * @generated
+ * @ordered
+ */
+ protected static final String CATEGORY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCategory() <em>Category</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCategory()
+ * @generated
+ * @ordered
+ */
+ protected String category = CATEGORY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ViewSpecificationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ModelPackage.Literals.VIEW_SPECIFICATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getId()
+ {
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setId(String newId)
+ {
+ String oldId = id;
+ id = newId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.VIEW_SPECIFICATION__ID, oldId, id));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getViewName()
+ {
+ return viewName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setViewName(String newViewName)
+ {
+ String oldViewName = viewName;
+ viewName = newViewName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.VIEW_SPECIFICATION__VIEW_NAME, oldViewName, viewName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JvmTypeReference getType()
+ {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetType(JvmTypeReference newType, NotificationChain msgs)
+ {
+ JvmTypeReference oldType = type;
+ type = newType;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelPackage.VIEW_SPECIFICATION__TYPE, oldType, newType);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(JvmTypeReference newType)
+ {
+ if (newType != type)
+ {
+ NotificationChain msgs = null;
+ if (type != null)
+ msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ModelPackage.VIEW_SPECIFICATION__TYPE, null, msgs);
+ if (newType != null)
+ msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ModelPackage.VIEW_SPECIFICATION__TYPE, null, msgs);
+ msgs = basicSetType(newType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.VIEW_SPECIFICATION__TYPE, newType, newType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCategory()
+ {
+ return category;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCategory(String newCategory)
+ {
+ String oldCategory = category;
+ category = newCategory;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.VIEW_SPECIFICATION__CATEGORY, oldCategory, category));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.VIEW_SPECIFICATION__TYPE:
+ return basicSetType(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.VIEW_SPECIFICATION__ID:
+ return getId();
+ case ModelPackage.VIEW_SPECIFICATION__VIEW_NAME:
+ return getViewName();
+ case ModelPackage.VIEW_SPECIFICATION__TYPE:
+ return getType();
+ case ModelPackage.VIEW_SPECIFICATION__CATEGORY:
+ return getCategory();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.VIEW_SPECIFICATION__ID:
+ setId((String)newValue);
+ return;
+ case ModelPackage.VIEW_SPECIFICATION__VIEW_NAME:
+ setViewName((String)newValue);
+ return;
+ case ModelPackage.VIEW_SPECIFICATION__TYPE:
+ setType((JvmTypeReference)newValue);
+ return;
+ case ModelPackage.VIEW_SPECIFICATION__CATEGORY:
+ setCategory((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.VIEW_SPECIFICATION__ID:
+ setId(ID_EDEFAULT);
+ return;
+ case ModelPackage.VIEW_SPECIFICATION__VIEW_NAME:
+ setViewName(VIEW_NAME_EDEFAULT);
+ return;
+ case ModelPackage.VIEW_SPECIFICATION__TYPE:
+ setType((JvmTypeReference)null);
+ return;
+ case ModelPackage.VIEW_SPECIFICATION__CATEGORY:
+ setCategory(CATEGORY_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.VIEW_SPECIFICATION__ID:
+ return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+ case ModelPackage.VIEW_SPECIFICATION__VIEW_NAME:
+ return VIEW_NAME_EDEFAULT == null ? viewName != null : !VIEW_NAME_EDEFAULT.equals(viewName);
+ case ModelPackage.VIEW_SPECIFICATION__TYPE:
+ return type != null;
+ case ModelPackage.VIEW_SPECIFICATION__CATEGORY:
+ return CATEGORY_EDEFAULT == null ? category != null : !CATEGORY_EDEFAULT.equals(category);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (id: ");
+ result.append(id);
+ result.append(", viewName: ");
+ result.append(viewName);
+ result.append(", category: ");
+ result.append(category);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ViewSpecificationImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ViewerContentProviderImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ViewerContentProviderImpl.java
new file mode 100644
index 000000000..296492912
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/ViewerContentProviderImpl.java
@@ -0,0 +1,167 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.emf.parsley.dsl.model.LabelSpecification;
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+import org.eclipse.emf.parsley.dsl.model.ViewerContentProvider;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Viewer Content Provider</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.dsl.model.impl.ViewerContentProviderImpl#getChildrenSpecifications <em>Children Specifications</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ViewerContentProviderImpl extends MinimalEObjectImpl.Container implements ViewerContentProvider
+{
+ /**
+ * The cached value of the '{@link #getChildrenSpecifications() <em>Children Specifications</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getChildrenSpecifications()
+ * @generated
+ * @ordered
+ */
+ protected EList<LabelSpecification> childrenSpecifications;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ViewerContentProviderImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ModelPackage.Literals.VIEWER_CONTENT_PROVIDER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<LabelSpecification> getChildrenSpecifications()
+ {
+ if (childrenSpecifications == null)
+ {
+ childrenSpecifications = new EObjectContainmentEList<LabelSpecification>(LabelSpecification.class, this, ModelPackage.VIEWER_CONTENT_PROVIDER__CHILDREN_SPECIFICATIONS);
+ }
+ return childrenSpecifications;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.VIEWER_CONTENT_PROVIDER__CHILDREN_SPECIFICATIONS:
+ return ((InternalEList<?>)getChildrenSpecifications()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.VIEWER_CONTENT_PROVIDER__CHILDREN_SPECIFICATIONS:
+ return getChildrenSpecifications();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.VIEWER_CONTENT_PROVIDER__CHILDREN_SPECIFICATIONS:
+ getChildrenSpecifications().clear();
+ getChildrenSpecifications().addAll((Collection<? extends LabelSpecification>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.VIEWER_CONTENT_PROVIDER__CHILDREN_SPECIFICATIONS:
+ getChildrenSpecifications().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ModelPackage.VIEWER_CONTENT_PROVIDER__CHILDREN_SPECIFICATIONS:
+ return childrenSpecifications != null && !childrenSpecifications.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ViewerContentProviderImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/WithExtendsClauseImpl.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/WithExtendsClauseImpl.java
new file mode 100644
index 000000000..f2e8df866
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/impl/WithExtendsClauseImpl.java
@@ -0,0 +1,44 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+import org.eclipse.emf.parsley.dsl.model.WithExtendsClause;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>With Extends Clause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class WithExtendsClauseImpl extends MinimalEObjectImpl.Container implements WithExtendsClause
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected WithExtendsClauseImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ModelPackage.Literals.WITH_EXTENDS_CLAUSE;
+ }
+
+} //WithExtendsClauseImpl
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/util/ModelAdapterFactory.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/util/ModelAdapterFactory.java
new file mode 100644
index 000000000..a1c4fb3e5
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/util/ModelAdapterFactory.java
@@ -0,0 +1,472 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.parsley.dsl.model.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage
+ * @generated
+ */
+public class ModelAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ModelPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = ModelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object)
+ {
+ if (object == modelPackage)
+ {
+ return true;
+ }
+ if (object instanceof EObject)
+ {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelSwitch<Adapter> modelSwitch =
+ new ModelSwitch<Adapter>()
+ {
+ @Override
+ public Adapter caseModel(Model object)
+ {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter caseModule(Module object)
+ {
+ return createModuleAdapter();
+ }
+ @Override
+ public Adapter caseExtendsClause(ExtendsClause object)
+ {
+ return createExtendsClauseAdapter();
+ }
+ @Override
+ public Adapter caseLabelProvider(LabelProvider object)
+ {
+ return createLabelProviderAdapter();
+ }
+ @Override
+ public Adapter caseLabelSpecification(LabelSpecification object)
+ {
+ return createLabelSpecificationAdapter();
+ }
+ @Override
+ public Adapter casePropertyDescriptionProvider(PropertyDescriptionProvider object)
+ {
+ return createPropertyDescriptionProviderAdapter();
+ }
+ @Override
+ public Adapter casePropertyDescriptionSpecification(PropertyDescriptionSpecification object)
+ {
+ return createPropertyDescriptionSpecificationAdapter();
+ }
+ @Override
+ public Adapter caseFeaturesProvider(FeaturesProvider object)
+ {
+ return createFeaturesProviderAdapter();
+ }
+ @Override
+ public Adapter caseFeatureSpecification(FeatureSpecification object)
+ {
+ return createFeatureSpecificationAdapter();
+ }
+ @Override
+ public Adapter caseFormControlFactory(FormControlFactory object)
+ {
+ return createFormControlFactoryAdapter();
+ }
+ @Override
+ public Adapter caseFormControlSpecification(FormControlSpecification object)
+ {
+ return createFormControlSpecificationAdapter();
+ }
+ @Override
+ public Adapter caseProposalCreator(ProposalCreator object)
+ {
+ return createProposalCreatorAdapter();
+ }
+ @Override
+ public Adapter caseProposalSpecification(ProposalSpecification object)
+ {
+ return createProposalSpecificationAdapter();
+ }
+ @Override
+ public Adapter caseViewerContentProvider(ViewerContentProvider object)
+ {
+ return createViewerContentProviderAdapter();
+ }
+ @Override
+ public Adapter caseEmfFeatureAccess(EmfFeatureAccess object)
+ {
+ return createEmfFeatureAccessAdapter();
+ }
+ @Override
+ public Adapter caseWithExtendsClause(WithExtendsClause object)
+ {
+ return createWithExtendsClauseAdapter();
+ }
+ @Override
+ public Adapter casePartSpecification(PartSpecification object)
+ {
+ return createPartSpecificationAdapter();
+ }
+ @Override
+ public Adapter caseViewSpecification(ViewSpecification object)
+ {
+ return createViewSpecificationAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object)
+ {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target)
+ {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.dsl.model.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.dsl.model.Model
+ * @generated
+ */
+ public Adapter createModelAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.dsl.model.Module <em>Module</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.dsl.model.Module
+ * @generated
+ */
+ public Adapter createModuleAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.dsl.model.ExtendsClause <em>Extends Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.dsl.model.ExtendsClause
+ * @generated
+ */
+ public Adapter createExtendsClauseAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.dsl.model.LabelProvider <em>Label Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.dsl.model.LabelProvider
+ * @generated
+ */
+ public Adapter createLabelProviderAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.dsl.model.LabelSpecification <em>Label Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.dsl.model.LabelSpecification
+ * @generated
+ */
+ public Adapter createLabelSpecificationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.dsl.model.PropertyDescriptionProvider <em>Property Description Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.dsl.model.PropertyDescriptionProvider
+ * @generated
+ */
+ public Adapter createPropertyDescriptionProviderAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification <em>Property Description Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification
+ * @generated
+ */
+ public Adapter createPropertyDescriptionSpecificationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.dsl.model.FeaturesProvider <em>Features Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.dsl.model.FeaturesProvider
+ * @generated
+ */
+ public Adapter createFeaturesProviderAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.dsl.model.FeatureSpecification <em>Feature Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.dsl.model.FeatureSpecification
+ * @generated
+ */
+ public Adapter createFeatureSpecificationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.dsl.model.FormControlFactory <em>Form Control Factory</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.dsl.model.FormControlFactory
+ * @generated
+ */
+ public Adapter createFormControlFactoryAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.dsl.model.FormControlSpecification <em>Form Control Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.dsl.model.FormControlSpecification
+ * @generated
+ */
+ public Adapter createFormControlSpecificationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.dsl.model.ProposalCreator <em>Proposal Creator</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.dsl.model.ProposalCreator
+ * @generated
+ */
+ public Adapter createProposalCreatorAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.dsl.model.ProposalSpecification <em>Proposal Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.dsl.model.ProposalSpecification
+ * @generated
+ */
+ public Adapter createProposalSpecificationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.dsl.model.ViewerContentProvider <em>Viewer Content Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.dsl.model.ViewerContentProvider
+ * @generated
+ */
+ public Adapter createViewerContentProviderAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.dsl.model.EmfFeatureAccess <em>Emf Feature Access</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.dsl.model.EmfFeatureAccess
+ * @generated
+ */
+ public Adapter createEmfFeatureAccessAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.dsl.model.WithExtendsClause <em>With Extends Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.dsl.model.WithExtendsClause
+ * @generated
+ */
+ public Adapter createWithExtendsClauseAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.dsl.model.PartSpecification <em>Part Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.dsl.model.PartSpecification
+ * @generated
+ */
+ public Adapter createPartSpecificationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.dsl.model.ViewSpecification <em>View Specification</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.dsl.model.ViewSpecification
+ * @generated
+ */
+ public Adapter createViewSpecificationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter()
+ {
+ return null;
+ }
+
+} //ModelAdapterFactory
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/util/ModelSwitch.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/util/ModelSwitch.java
new file mode 100644
index 000000000..4396e772c
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/model/util/ModelSwitch.java
@@ -0,0 +1,516 @@
+/**
+ */
+package org.eclipse.emf.parsley.dsl.model.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.emf.parsley.dsl.model.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.dsl.model.ModelPackage
+ * @generated
+ */
+public class ModelSwitch<T> extends Switch<T>
+{
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ModelPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelSwitch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = ModelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage)
+ {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject)
+ {
+ switch (classifierID)
+ {
+ case ModelPackage.MODEL:
+ {
+ Model model = (Model)theEObject;
+ T result = caseModel(model);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.MODULE:
+ {
+ Module module = (Module)theEObject;
+ T result = caseModule(module);
+ if (result == null) result = caseWithExtendsClause(module);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.EXTENDS_CLAUSE:
+ {
+ ExtendsClause extendsClause = (ExtendsClause)theEObject;
+ T result = caseExtendsClause(extendsClause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.LABEL_PROVIDER:
+ {
+ LabelProvider labelProvider = (LabelProvider)theEObject;
+ T result = caseLabelProvider(labelProvider);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.LABEL_SPECIFICATION:
+ {
+ LabelSpecification labelSpecification = (LabelSpecification)theEObject;
+ T result = caseLabelSpecification(labelSpecification);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.PROPERTY_DESCRIPTION_PROVIDER:
+ {
+ PropertyDescriptionProvider propertyDescriptionProvider = (PropertyDescriptionProvider)theEObject;
+ T result = casePropertyDescriptionProvider(propertyDescriptionProvider);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.PROPERTY_DESCRIPTION_SPECIFICATION:
+ {
+ PropertyDescriptionSpecification propertyDescriptionSpecification = (PropertyDescriptionSpecification)theEObject;
+ T result = casePropertyDescriptionSpecification(propertyDescriptionSpecification);
+ if (result == null) result = caseEmfFeatureAccess(propertyDescriptionSpecification);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.FEATURES_PROVIDER:
+ {
+ FeaturesProvider featuresProvider = (FeaturesProvider)theEObject;
+ T result = caseFeaturesProvider(featuresProvider);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.FEATURE_SPECIFICATION:
+ {
+ FeatureSpecification featureSpecification = (FeatureSpecification)theEObject;
+ T result = caseFeatureSpecification(featureSpecification);
+ if (result == null) result = caseEmfFeatureAccess(featureSpecification);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.FORM_CONTROL_FACTORY:
+ {
+ FormControlFactory formControlFactory = (FormControlFactory)theEObject;
+ T result = caseFormControlFactory(formControlFactory);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.FORM_CONTROL_SPECIFICATION:
+ {
+ FormControlSpecification formControlSpecification = (FormControlSpecification)theEObject;
+ T result = caseFormControlSpecification(formControlSpecification);
+ if (result == null) result = caseEmfFeatureAccess(formControlSpecification);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.PROPOSAL_CREATOR:
+ {
+ ProposalCreator proposalCreator = (ProposalCreator)theEObject;
+ T result = caseProposalCreator(proposalCreator);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.PROPOSAL_SPECIFICATION:
+ {
+ ProposalSpecification proposalSpecification = (ProposalSpecification)theEObject;
+ T result = caseProposalSpecification(proposalSpecification);
+ if (result == null) result = caseEmfFeatureAccess(proposalSpecification);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.VIEWER_CONTENT_PROVIDER:
+ {
+ ViewerContentProvider viewerContentProvider = (ViewerContentProvider)theEObject;
+ T result = caseViewerContentProvider(viewerContentProvider);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.EMF_FEATURE_ACCESS:
+ {
+ EmfFeatureAccess emfFeatureAccess = (EmfFeatureAccess)theEObject;
+ T result = caseEmfFeatureAccess(emfFeatureAccess);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.WITH_EXTENDS_CLAUSE:
+ {
+ WithExtendsClause withExtendsClause = (WithExtendsClause)theEObject;
+ T result = caseWithExtendsClause(withExtendsClause);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.PART_SPECIFICATION:
+ {
+ PartSpecification partSpecification = (PartSpecification)theEObject;
+ T result = casePartSpecification(partSpecification);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.VIEW_SPECIFICATION:
+ {
+ ViewSpecification viewSpecification = (ViewSpecification)theEObject;
+ T result = caseViewSpecification(viewSpecification);
+ if (result == null) result = casePartSpecification(viewSpecification);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Module</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Module</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModule(Module object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Extends Clause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Extends Clause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExtendsClause(ExtendsClause object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Label Provider</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Label Provider</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLabelProvider(LabelProvider object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Label Specification</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Label Specification</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLabelSpecification(LabelSpecification object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Property Description Provider</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Property Description Provider</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePropertyDescriptionProvider(PropertyDescriptionProvider object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Property Description Specification</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Property Description Specification</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePropertyDescriptionSpecification(PropertyDescriptionSpecification object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Features Provider</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Features Provider</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFeaturesProvider(FeaturesProvider object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Feature Specification</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Feature Specification</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFeatureSpecification(FeatureSpecification object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Form Control Factory</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Form Control Factory</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFormControlFactory(FormControlFactory object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Form Control Specification</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Form Control Specification</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFormControlSpecification(FormControlSpecification object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Proposal Creator</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Proposal Creator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseProposalCreator(ProposalCreator object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Proposal Specification</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Proposal Specification</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseProposalSpecification(ProposalSpecification object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Viewer Content Provider</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Viewer Content Provider</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseViewerContentProvider(ViewerContentProvider object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Emf Feature Access</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Emf Feature Access</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEmfFeatureAccess(EmfFeatureAccess object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>With Extends Clause</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>With Extends Clause</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseWithExtendsClause(WithExtendsClause object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Part Specification</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Part Specification</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePartSpecification(PartSpecification object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>View Specification</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>View Specification</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseViewSpecification(ViewSpecification object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object)
+ {
+ return null;
+ }
+
+} //ModelSwitch
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/EmfParsleyDslAntlrTokenFileProvider.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/EmfParsleyDslAntlrTokenFileProvider.java
new file mode 100644
index 000000000..1b0848fff
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/EmfParsleyDslAntlrTokenFileProvider.java
@@ -0,0 +1,15 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.dsl.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class EmfParsleyDslAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+
+ public InputStream getAntlrTokenFile() {
+ ClassLoader classLoader = getClass().getClassLoader();
+ return classLoader.getResourceAsStream("org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.tokens");
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/EmfParsleyDslParser.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/EmfParsleyDslParser.java
new file mode 100644
index 000000000..b1b7f0bcb
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/EmfParsleyDslParser.java
@@ -0,0 +1,39 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.dsl.parser.antlr;
+
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.emf.parsley.dsl.services.EmfParsleyDslGrammarAccess;
+
+public class EmfParsleyDslParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+
+ @Inject
+ private EmfParsleyDslGrammarAccess grammarAccess;
+
+ @Override
+ protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+ tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+ }
+
+ @Override
+ protected org.eclipse.emf.parsley.dsl.parser.antlr.internal.InternalEmfParsleyDslParser createParser(XtextTokenStream stream) {
+ return new org.eclipse.emf.parsley.dsl.parser.antlr.internal.InternalEmfParsleyDslParser(stream, getGrammarAccess());
+ }
+
+ @Override
+ protected String getDefaultRuleName() {
+ return "Model";
+ }
+
+ public EmfParsleyDslGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(EmfParsleyDslGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g
new file mode 100644
index 000000000..9e047dfb3
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g
@@ -0,0 +1,6806 @@
+/*
+* generated by Xtext
+*/
+grammar InternalEmfParsleyDsl;
+
+options {
+ superClass=AbstractInternalAntlrParser;
+
+}
+
+@lexer::header {
+package org.eclipse.emf.parsley.dsl.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+}
+
+@parser::header {
+package org.eclipse.emf.parsley.dsl.parser.antlr.internal;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.emf.parsley.dsl.services.EmfParsleyDslGrammarAccess;
+
+}
+
+@parser::members {
+
+ private EmfParsleyDslGrammarAccess grammarAccess;
+
+ public InternalEmfParsleyDslParser(TokenStream input, EmfParsleyDslGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Model";
+ }
+
+ @Override
+ protected EmfParsleyDslGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+}
+
+@rulecatch {
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+}
+
+
+
+
+// Entry rule entryRuleModel
+entryRuleModel returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getModelRule()); }
+ iv_ruleModel=ruleModel
+ { $current=$iv_ruleModel.current; }
+ EOF
+;
+
+// Rule Model
+ruleModel returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getModelAccess().getImportSectionXImportSectionParserRuleCall_0_0());
+ }
+ lv_importSection_0_0=ruleXImportSection {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getModelRule());
+ }
+ set(
+ $current,
+ "importSection",
+ lv_importSection_0_0,
+ "XImportSection");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?(
+(
+ {
+ newCompositeNode(grammarAccess.getModelAccess().getModuleModuleParserRuleCall_1_0());
+ }
+ lv_module_1_0=ruleModule {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getModelRule());
+ }
+ set(
+ $current,
+ "module",
+ lv_module_1_0,
+ "Module");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleModule
+entryRuleModule returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getModuleRule()); }
+ iv_ruleModule=ruleModule
+ { $current=$iv_ruleModule.current; }
+ EOF
+;
+
+// Rule Module
+ruleModule returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='module'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getModuleAccess().getModuleKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getModuleAccess().getNameQualifiedNameParserRuleCall_1_0());
+ }
+ lv_name_1_0=ruleQualifiedName {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getModuleAccess().getExtendsClauseExtendsClauseParserRuleCall_2_0());
+ }
+ lv_extendsClause_2_0=ruleExtendsClause {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ set(
+ $current,
+ "extendsClause",
+ lv_extendsClause_2_0,
+ "ExtendsClause");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)? otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_3());
+ }
+(
+
+(
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+ }
+ (
+ (
+
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0);
+ }
+ ({true}?=>(
+(
+ {
+ newCompositeNode(grammarAccess.getModuleAccess().getLabelProviderLabelProviderParserRuleCall_4_0_0());
+ }
+ lv_labelProvider_5_0=ruleLabelProvider {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ set(
+ $current,
+ "labelProvider",
+ lv_labelProvider_5_0,
+ "LabelProvider");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+ }
+ )
+ ) |
+
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1);
+ }
+ ({true}?=>(
+(
+ {
+ newCompositeNode(grammarAccess.getModuleAccess().getPropertyDescriptionProviderPropertyDescriptionProviderParserRuleCall_4_1_0());
+ }
+ lv_propertyDescriptionProvider_6_0=rulePropertyDescriptionProvider {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ set(
+ $current,
+ "propertyDescriptionProvider",
+ lv_propertyDescriptionProvider_6_0,
+ "PropertyDescriptionProvider");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+ }
+ )
+ ) |
+
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2);
+ }
+ ({true}?=>(
+(
+ {
+ newCompositeNode(grammarAccess.getModuleAccess().getFeaturesProviderFeaturesProviderParserRuleCall_4_2_0());
+ }
+ lv_featuresProvider_7_0=ruleFeaturesProvider {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ set(
+ $current,
+ "featuresProvider",
+ lv_featuresProvider_7_0,
+ "FeaturesProvider");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+ }
+ )
+ ) |
+
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3);
+ }
+ ({true}?=>(
+(
+ {
+ newCompositeNode(grammarAccess.getModuleAccess().getFormControlFactoryFormControlFactoryParserRuleCall_4_3_0());
+ }
+ lv_formControlFactory_8_0=ruleFormControlFactory {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ set(
+ $current,
+ "formControlFactory",
+ lv_formControlFactory_8_0,
+ "FormControlFactory");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+ }
+ )
+ ) |
+
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4);
+ }
+ ({true}?=>(
+(
+ {
+ newCompositeNode(grammarAccess.getModuleAccess().getProposalCreatorProposalCreatorParserRuleCall_4_4_0());
+ }
+ lv_proposalCreator_9_0=ruleProposalCreator {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ set(
+ $current,
+ "proposalCreator",
+ lv_proposalCreator_9_0,
+ "ProposalCreator");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+ }
+ )
+ ) |
+
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5);
+ }
+ ({true}?=>(
+(
+ {
+ newCompositeNode(grammarAccess.getModuleAccess().getViewerContentProviderViewerContentProviderParserRuleCall_4_5_0());
+ }
+ lv_viewerContentProvider_10_0=ruleViewerContentProvider {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ set(
+ $current,
+ "viewerContentProvider",
+ lv_viewerContentProvider_10_0,
+ "ViewerContentProvider");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+ }
+ )
+ ) |
+
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6);
+ }
+ ({true}?=>( otherlv_11='parts'
+ {
+ newLeafNode(otherlv_11, grammarAccess.getModuleAccess().getPartsKeyword_4_6_0());
+ }
+ otherlv_12='{'
+ {
+ newLeafNode(otherlv_12, grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_4_6_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getModuleAccess().getPartsPartSpecificationParserRuleCall_4_6_2_0());
+ }
+ lv_parts_13_0=rulePartSpecification {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ add(
+ $current,
+ "parts",
+ lv_parts_13_0,
+ "PartSpecification");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_14='}'
+ {
+ newLeafNode(otherlv_14, grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_4_6_3());
+ }
+))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+ }
+ )
+ )
+
+ )*
+ )
+)
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+ }
+
+) otherlv_15='}'
+ {
+ newLeafNode(otherlv_15, grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_5());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleExtendsClause
+entryRuleExtendsClause returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getExtendsClauseRule()); }
+ iv_ruleExtendsClause=ruleExtendsClause
+ { $current=$iv_ruleExtendsClause.current; }
+ EOF
+;
+
+// Rule ExtendsClause
+ruleExtendsClause returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='extends'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getExtendsClauseAccess().getExtendsKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getExtendsClauseAccess().getSuperTypeJvmTypeReferenceParserRuleCall_1_0());
+ }
+ lv_superType_1_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getExtendsClauseRule());
+ }
+ set(
+ $current,
+ "superType",
+ lv_superType_1_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleLabelProvider
+entryRuleLabelProvider returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getLabelProviderRule()); }
+ iv_ruleLabelProvider=ruleLabelProvider
+ { $current=$iv_ruleLabelProvider.current; }
+ EOF
+;
+
+// Rule LabelProvider
+ruleLabelProvider returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getLabelProviderAccess().getLabelProviderAction_0(),
+ $current);
+ }
+) otherlv_1='labelProvider'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getLabelProviderAccess().getLabelProviderKeyword_1());
+ }
+ otherlv_2='{'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_2());
+ }
+(
+
+(
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3());
+ }
+ (
+ (
+
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 0)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 0);
+ }
+ ({true}?=>( otherlv_4='text'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0());
+ }
+ otherlv_5='{'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getLabelProviderAccess().getLabelSpecificationsLabelSpecificationParserRuleCall_3_0_2_0());
+ }
+ lv_labelSpecifications_6_0=ruleLabelSpecification {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLabelProviderRule());
+ }
+ add(
+ $current,
+ "labelSpecifications",
+ lv_labelSpecifications_6_0,
+ "LabelSpecification");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_7='}'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3());
+ }
+))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3());
+ }
+ )
+ ) |
+
+ (
+ {getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 1)}?=>(
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 1);
+ }
+ ({true}?=>( otherlv_8='image'
+ {
+ newLeafNode(otherlv_8, grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0());
+ }
+ otherlv_9='{'
+ {
+ newLeafNode(otherlv_9, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getLabelProviderAccess().getImageSpecificationsLabelSpecificationParserRuleCall_3_1_2_0());
+ }
+ lv_imageSpecifications_10_0=ruleLabelSpecification {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLabelProviderRule());
+ }
+ add(
+ $current,
+ "imageSpecifications",
+ lv_imageSpecifications_10_0,
+ "LabelSpecification");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_11='}'
+ {
+ newLeafNode(otherlv_11, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3());
+ }
+))
+ {
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3());
+ }
+ )
+ )
+
+ )*
+ )
+)
+ {
+ getUnorderedGroupHelper().leave(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3());
+ }
+
+) otherlv_12='}'
+ {
+ newLeafNode(otherlv_12, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_4());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleLabelSpecification
+entryRuleLabelSpecification returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getLabelSpecificationRule()); }
+ iv_ruleLabelSpecification=ruleLabelSpecification
+ { $current=$iv_ruleLabelSpecification.current; }
+ EOF
+;
+
+// Rule LabelSpecification
+ruleLabelSpecification returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getLabelSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+ lv_parameterType_0_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLabelSpecificationRule());
+ }
+ set(
+ $current,
+ "parameterType",
+ lv_parameterType_0_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getLabelSpecificationAccess().getNameValidIDParserRuleCall_1_0());
+ }
+ lv_name_1_0=ruleValidID {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLabelSpecificationRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ValidID");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)? otherlv_2='->'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getLabelSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_2());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getLabelSpecificationAccess().getExpressionXExpressionParserRuleCall_3_0());
+ }
+ lv_expression_3_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getLabelSpecificationRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_3_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRulePropertyDescriptionProvider
+entryRulePropertyDescriptionProvider returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getPropertyDescriptionProviderRule()); }
+ iv_rulePropertyDescriptionProvider=rulePropertyDescriptionProvider
+ { $current=$iv_rulePropertyDescriptionProvider.current; }
+ EOF
+;
+
+// Rule PropertyDescriptionProvider
+rulePropertyDescriptionProvider returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getPropertyDescriptionProviderAccess().getPropertyDescriptionProviderAction_0(),
+ $current);
+ }
+) otherlv_1='propertyDescriptionProvider'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getPropertyDescriptionProviderAccess().getPropertyDescriptionProviderKeyword_1());
+ }
+ otherlv_2='{'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getPropertyDescriptionProviderAccess().getLeftCurlyBracketKeyword_2());
+ }
+( otherlv_3='text'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getPropertyDescriptionProviderAccess().getTextKeyword_3_0());
+ }
+ otherlv_4='{'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getPropertyDescriptionProviderAccess().getLeftCurlyBracketKeyword_3_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPropertyDescriptionProviderAccess().getLabelSpecificationsPropertyDescriptionSpecificationParserRuleCall_3_2_0());
+ }
+ lv_labelSpecifications_5_0=rulePropertyDescriptionSpecification {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPropertyDescriptionProviderRule());
+ }
+ add(
+ $current,
+ "labelSpecifications",
+ lv_labelSpecifications_5_0,
+ "PropertyDescriptionSpecification");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_6='}'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getPropertyDescriptionProviderAccess().getRightCurlyBracketKeyword_3_3());
+ }
+)? otherlv_7='}'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getPropertyDescriptionProviderAccess().getRightCurlyBracketKeyword_4());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRulePropertyDescriptionSpecification
+entryRulePropertyDescriptionSpecification returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getPropertyDescriptionSpecificationRule()); }
+ iv_rulePropertyDescriptionSpecification=rulePropertyDescriptionSpecification
+ { $current=$iv_rulePropertyDescriptionSpecification.current; }
+ EOF
+;
+
+// Rule PropertyDescriptionSpecification
+rulePropertyDescriptionSpecification returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getPropertyDescriptionSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+ lv_parameterType_0_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPropertyDescriptionSpecificationRule());
+ }
+ set(
+ $current,
+ "parameterType",
+ lv_parameterType_0_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_1=':'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getPropertyDescriptionSpecificationAccess().getColonKeyword_1());
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getPropertyDescriptionSpecificationRule());
+ }
+ }
+ otherlv_2=RULE_ID
+ {
+ newLeafNode(otherlv_2, grammarAccess.getPropertyDescriptionSpecificationAccess().getFeatureJvmMemberCrossReference_2_0());
+ }
+
+)
+) otherlv_3='->'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getPropertyDescriptionSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_3());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getPropertyDescriptionSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0());
+ }
+ lv_expression_4_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getPropertyDescriptionSpecificationRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_4_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleFeaturesProvider
+entryRuleFeaturesProvider returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getFeaturesProviderRule()); }
+ iv_ruleFeaturesProvider=ruleFeaturesProvider
+ { $current=$iv_ruleFeaturesProvider.current; }
+ EOF
+;
+
+// Rule FeaturesProvider
+ruleFeaturesProvider returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getFeaturesProviderAccess().getFeaturesProviderAction_0(),
+ $current);
+ }
+) otherlv_1='featuresProvider'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getFeaturesProviderAccess().getFeaturesProviderKeyword_1());
+ }
+ otherlv_2='{'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getFeaturesProviderAccess().getLeftCurlyBracketKeyword_2());
+ }
+( otherlv_3='features'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getFeaturesProviderAccess().getFeaturesKeyword_3_0());
+ }
+ otherlv_4='{'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getFeaturesProviderAccess().getLeftCurlyBracketKeyword_3_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getFeaturesProviderAccess().getFeatureSpecificationsFeatureSpecificationParserRuleCall_3_2_0());
+ }
+ lv_featureSpecifications_5_0=ruleFeatureSpecification {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getFeaturesProviderRule());
+ }
+ add(
+ $current,
+ "featureSpecifications",
+ lv_featureSpecifications_5_0,
+ "FeatureSpecification");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_6='}'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getFeaturesProviderAccess().getRightCurlyBracketKeyword_3_3());
+ }
+)? otherlv_7='}'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getFeaturesProviderAccess().getRightCurlyBracketKeyword_4());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleFeatureSpecification
+entryRuleFeatureSpecification returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getFeatureSpecificationRule()); }
+ iv_ruleFeatureSpecification=ruleFeatureSpecification
+ { $current=$iv_ruleFeatureSpecification.current; }
+ EOF
+;
+
+// Rule FeatureSpecification
+ruleFeatureSpecification returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getFeatureSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+ lv_parameterType_0_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getFeatureSpecificationRule());
+ }
+ set(
+ $current,
+ "parameterType",
+ lv_parameterType_0_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_1='->'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getFeatureSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_1());
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getFeatureSpecificationRule());
+ }
+ }
+ otherlv_2=RULE_ID
+ {
+ newLeafNode(otherlv_2, grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberCrossReference_2_0());
+ }
+
+)
+)( otherlv_3=','
+ {
+ newLeafNode(otherlv_3, grammarAccess.getFeatureSpecificationAccess().getCommaKeyword_3_0());
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getFeatureSpecificationRule());
+ }
+ }
+ otherlv_4=RULE_ID
+ {
+ newLeafNode(otherlv_4, grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberCrossReference_3_1_0());
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleFormControlFactory
+entryRuleFormControlFactory returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getFormControlFactoryRule()); }
+ iv_ruleFormControlFactory=ruleFormControlFactory
+ { $current=$iv_ruleFormControlFactory.current; }
+ EOF
+;
+
+// Rule FormControlFactory
+ruleFormControlFactory returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getFormControlFactoryAccess().getFormControlFactoryAction_0(),
+ $current);
+ }
+) otherlv_1='formControlFactory'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getFormControlFactoryAccess().getFormControlFactoryKeyword_1());
+ }
+ otherlv_2='{'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getFormControlFactoryAccess().getLeftCurlyBracketKeyword_2());
+ }
+( otherlv_3='control'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getFormControlFactoryAccess().getControlKeyword_3_0());
+ }
+ otherlv_4='{'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getFormControlFactoryAccess().getLeftCurlyBracketKeyword_3_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getFormControlFactoryAccess().getControlSpecificationsFormControlSpecificationParserRuleCall_3_2_0());
+ }
+ lv_controlSpecifications_5_0=ruleFormControlSpecification {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getFormControlFactoryRule());
+ }
+ add(
+ $current,
+ "controlSpecifications",
+ lv_controlSpecifications_5_0,
+ "FormControlSpecification");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_6='}'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getFormControlFactoryAccess().getRightCurlyBracketKeyword_3_3());
+ }
+)? otherlv_7='}'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getFormControlFactoryAccess().getRightCurlyBracketKeyword_4());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleFormControlSpecification
+entryRuleFormControlSpecification returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getFormControlSpecificationRule()); }
+ iv_ruleFormControlSpecification=ruleFormControlSpecification
+ { $current=$iv_ruleFormControlSpecification.current; }
+ EOF
+;
+
+// Rule FormControlSpecification
+ruleFormControlSpecification returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getFormControlSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+ lv_parameterType_0_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getFormControlSpecificationRule());
+ }
+ set(
+ $current,
+ "parameterType",
+ lv_parameterType_0_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_1=':'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getFormControlSpecificationAccess().getColonKeyword_1());
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getFormControlSpecificationRule());
+ }
+ }
+ otherlv_2=RULE_ID
+ {
+ newLeafNode(otherlv_2, grammarAccess.getFormControlSpecificationAccess().getFeatureJvmMemberCrossReference_2_0());
+ }
+
+)
+) otherlv_3='->'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getFormControlSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_3());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getFormControlSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0());
+ }
+ lv_expression_4_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getFormControlSpecificationRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_4_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_5='target'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getFormControlSpecificationAccess().getTargetKeyword_5_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getFormControlSpecificationAccess().getTargetXExpressionParserRuleCall_5_1_0());
+ }
+ lv_target_6_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getFormControlSpecificationRule());
+ }
+ set(
+ $current,
+ "target",
+ lv_target_6_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleProposalCreator
+entryRuleProposalCreator returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getProposalCreatorRule()); }
+ iv_ruleProposalCreator=ruleProposalCreator
+ { $current=$iv_ruleProposalCreator.current; }
+ EOF
+;
+
+// Rule ProposalCreator
+ruleProposalCreator returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getProposalCreatorAccess().getProposalCreatorAction_0(),
+ $current);
+ }
+) otherlv_1='proposals'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getProposalCreatorAccess().getProposalsKeyword_1());
+ }
+ otherlv_2='{'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getProposalCreatorAccess().getLeftCurlyBracketKeyword_2());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getProposalCreatorAccess().getProposalsSpecificationsProposalSpecificationParserRuleCall_3_0());
+ }
+ lv_proposalsSpecifications_3_0=ruleProposalSpecification {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getProposalCreatorRule());
+ }
+ add(
+ $current,
+ "proposalsSpecifications",
+ lv_proposalsSpecifications_3_0,
+ "ProposalSpecification");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_4='}'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getProposalCreatorAccess().getRightCurlyBracketKeyword_4());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleProposalSpecification
+entryRuleProposalSpecification returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getProposalSpecificationRule()); }
+ iv_ruleProposalSpecification=ruleProposalSpecification
+ { $current=$iv_ruleProposalSpecification.current; }
+ EOF
+;
+
+// Rule ProposalSpecification
+ruleProposalSpecification returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getProposalSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+ lv_parameterType_0_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getProposalSpecificationRule());
+ }
+ set(
+ $current,
+ "parameterType",
+ lv_parameterType_0_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_1=':'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getProposalSpecificationAccess().getColonKeyword_1());
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getProposalSpecificationRule());
+ }
+ }
+ otherlv_2=RULE_ID
+ {
+ newLeafNode(otherlv_2, grammarAccess.getProposalSpecificationAccess().getFeatureJvmMemberCrossReference_2_0());
+ }
+
+)
+) otherlv_3='->'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getProposalSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_3());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getProposalSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0());
+ }
+ lv_expression_4_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getProposalSpecificationRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_4_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleViewerContentProvider
+entryRuleViewerContentProvider returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getViewerContentProviderRule()); }
+ iv_ruleViewerContentProvider=ruleViewerContentProvider
+ { $current=$iv_ruleViewerContentProvider.current; }
+ EOF
+;
+
+// Rule ViewerContentProvider
+ruleViewerContentProvider returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getViewerContentProviderAccess().getViewerContentProviderAction_0(),
+ $current);
+ }
+) otherlv_1='viewerContentProvider'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getViewerContentProviderAccess().getViewerContentProviderKeyword_1());
+ }
+ otherlv_2='{'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getViewerContentProviderAccess().getLeftCurlyBracketKeyword_2());
+ }
+( otherlv_3='children'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getViewerContentProviderAccess().getChildrenKeyword_3_0());
+ }
+ otherlv_4='{'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getViewerContentProviderAccess().getLeftCurlyBracketKeyword_3_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getViewerContentProviderAccess().getChildrenSpecificationsLabelSpecificationParserRuleCall_3_2_0());
+ }
+ lv_childrenSpecifications_5_0=ruleLabelSpecification {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getViewerContentProviderRule());
+ }
+ add(
+ $current,
+ "childrenSpecifications",
+ lv_childrenSpecifications_5_0,
+ "LabelSpecification");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_6='}'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getViewerContentProviderAccess().getRightCurlyBracketKeyword_3_3());
+ }
+)? otherlv_7='}'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getViewerContentProviderAccess().getRightCurlyBracketKeyword_4());
+ }
+)
+;
+
+
+
+
+
+
+
+
+
+// Entry rule entryRulePartSpecification
+entryRulePartSpecification returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getPartSpecificationRule()); }
+ iv_rulePartSpecification=rulePartSpecification
+ { $current=$iv_rulePartSpecification.current; }
+ EOF
+;
+
+// Rule PartSpecification
+rulePartSpecification returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+
+ {
+ newCompositeNode(grammarAccess.getPartSpecificationAccess().getViewSpecificationParserRuleCall());
+ }
+ this_ViewSpecification_0=ruleViewSpecification
+ {
+ $current = $this_ViewSpecification_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+;
+
+
+
+
+
+// Entry rule entryRuleViewSpecification
+entryRuleViewSpecification returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getViewSpecificationRule()); }
+ iv_ruleViewSpecification=ruleViewSpecification
+ { $current=$iv_ruleViewSpecification.current; }
+ EOF
+;
+
+// Rule ViewSpecification
+ruleViewSpecification returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getViewSpecificationAccess().getViewSpecificationAction_0(),
+ $current);
+ }
+) otherlv_1='viewpart'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getViewSpecificationAccess().getViewpartKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getViewSpecificationAccess().getIdQualifiedNameParserRuleCall_2_0());
+ }
+ lv_id_2_0=ruleQualifiedName {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getViewSpecificationRule());
+ }
+ set(
+ $current,
+ "id",
+ lv_id_2_0,
+ "QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getViewSpecificationAccess().getLeftCurlyBracketKeyword_3());
+ }
+ otherlv_4='viewname'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getViewSpecificationAccess().getViewnameKeyword_4());
+ }
+(
+(
+ lv_viewName_5_0=RULE_STRING
+ {
+ newLeafNode(lv_viewName_5_0, grammarAccess.getViewSpecificationAccess().getViewNameSTRINGTerminalRuleCall_5_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getViewSpecificationRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "viewName",
+ lv_viewName_5_0,
+ "STRING");
+ }
+
+)
+) otherlv_6='viewclass'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getViewSpecificationAccess().getViewclassKeyword_6());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getViewSpecificationAccess().getTypeJvmTypeReferenceParserRuleCall_7_0());
+ }
+ lv_type_7_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getViewSpecificationRule());
+ }
+ set(
+ $current,
+ "type",
+ lv_type_7_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_8='viewcategory'
+ {
+ newLeafNode(otherlv_8, grammarAccess.getViewSpecificationAccess().getViewcategoryKeyword_8_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getViewSpecificationAccess().getCategoryQualifiedNameParserRuleCall_8_1_0());
+ }
+ lv_category_9_0=ruleQualifiedName {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getViewSpecificationRule());
+ }
+ set(
+ $current,
+ "category",
+ lv_category_9_0,
+ "QualifiedName");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))? otherlv_10='}'
+ {
+ newLeafNode(otherlv_10, grammarAccess.getViewSpecificationAccess().getRightCurlyBracketKeyword_9());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXExpression
+entryRuleXExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXExpressionRule()); }
+ iv_ruleXExpression=ruleXExpression
+ { $current=$iv_ruleXExpression.current; }
+ EOF
+;
+
+// Rule XExpression
+ruleXExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+
+ {
+ newCompositeNode(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall());
+ }
+ this_XAssignment_0=ruleXAssignment
+ {
+ $current = $this_XAssignment_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+;
+
+
+
+
+
+// Entry rule entryRuleXAssignment
+entryRuleXAssignment returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXAssignmentRule()); }
+ iv_ruleXAssignment=ruleXAssignment
+ { $current=$iv_ruleXAssignment.current; }
+ EOF
+;
+
+// Rule XAssignment
+ruleXAssignment returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0(),
+ $current);
+ }
+)(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXAssignmentRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0());
+ }
+ ruleFeatureCallID {
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ {
+ newCompositeNode(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2());
+ }
+ruleOpSingleAssign
+ {
+ afterParserOrEnumRuleCall();
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0());
+ }
+ lv_value_3_0=ruleXAssignment {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXAssignmentRule());
+ }
+ set(
+ $current,
+ "value",
+ lv_value_3_0,
+ "XAssignment");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |(
+ {
+ newCompositeNode(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0());
+ }
+ this_XOrExpression_4=ruleXOrExpression
+ {
+ $current = $this_XOrExpression_4.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+ ruleOpMultiAssign
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
+ $current);
+ }
+)(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXAssignmentRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
+ }
+ ruleOpMultiAssign {
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0());
+ }
+ lv_rightOperand_7_0=ruleXAssignment {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXAssignmentRule());
+ }
+ set(
+ $current,
+ "rightOperand",
+ lv_rightOperand_7_0,
+ "XAssignment");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?))
+;
+
+
+
+
+
+// Entry rule entryRuleOpSingleAssign
+entryRuleOpSingleAssign returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getOpSingleAssignRule()); }
+ iv_ruleOpSingleAssign=ruleOpSingleAssign
+ { $current=$iv_ruleOpSingleAssign.current.getText(); }
+ EOF
+;
+
+// Rule OpSingleAssign
+ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+
+ kw='='
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword());
+ }
+
+ ;
+
+
+
+
+
+// Entry rule entryRuleOpMultiAssign
+entryRuleOpMultiAssign returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getOpMultiAssignRule()); }
+ iv_ruleOpMultiAssign=ruleOpMultiAssign
+ { $current=$iv_ruleOpMultiAssign.current.getText(); }
+ EOF
+;
+
+// Rule OpMultiAssign
+ruleOpMultiAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ kw='+='
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0());
+ }
+
+ |
+ kw='-='
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1());
+ }
+)
+ ;
+
+
+
+
+
+// Entry rule entryRuleXOrExpression
+entryRuleXOrExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXOrExpressionRule()); }
+ iv_ruleXOrExpression=ruleXOrExpression
+ { $current=$iv_ruleXOrExpression.current; }
+ EOF
+;
+
+// Rule XOrExpression
+ruleXOrExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0());
+ }
+ this_XAndExpression_0=ruleXAndExpression
+ {
+ $current = $this_XAndExpression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+ ruleOpOr
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+ $current);
+ }
+)(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXOrExpressionRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+ }
+ ruleOpOr {
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0());
+ }
+ lv_rightOperand_3_0=ruleXAndExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXOrExpressionRule());
+ }
+ set(
+ $current,
+ "rightOperand",
+ lv_rightOperand_3_0,
+ "XAndExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpOr
+entryRuleOpOr returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getOpOrRule()); }
+ iv_ruleOpOr=ruleOpOr
+ { $current=$iv_ruleOpOr.current.getText(); }
+ EOF
+;
+
+// Rule OpOr
+ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+
+ kw='||'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword());
+ }
+
+ ;
+
+
+
+
+
+// Entry rule entryRuleXAndExpression
+entryRuleXAndExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXAndExpressionRule()); }
+ iv_ruleXAndExpression=ruleXAndExpression
+ { $current=$iv_ruleXAndExpression.current; }
+ EOF
+;
+
+// Rule XAndExpression
+ruleXAndExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0());
+ }
+ this_XEqualityExpression_0=ruleXEqualityExpression
+ {
+ $current = $this_XEqualityExpression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+ ruleOpAnd
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+ $current);
+ }
+)(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXAndExpressionRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+ }
+ ruleOpAnd {
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0());
+ }
+ lv_rightOperand_3_0=ruleXEqualityExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXAndExpressionRule());
+ }
+ set(
+ $current,
+ "rightOperand",
+ lv_rightOperand_3_0,
+ "XEqualityExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpAnd
+entryRuleOpAnd returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getOpAndRule()); }
+ iv_ruleOpAnd=ruleOpAnd
+ { $current=$iv_ruleOpAnd.current.getText(); }
+ EOF
+;
+
+// Rule OpAnd
+ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+
+ kw='&&'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword());
+ }
+
+ ;
+
+
+
+
+
+// Entry rule entryRuleXEqualityExpression
+entryRuleXEqualityExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXEqualityExpressionRule()); }
+ iv_ruleXEqualityExpression=ruleXEqualityExpression
+ { $current=$iv_ruleXEqualityExpression.current; }
+ EOF
+;
+
+// Rule XEqualityExpression
+ruleXEqualityExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0());
+ }
+ this_XRelationalExpression_0=ruleXRelationalExpression
+ {
+ $current = $this_XRelationalExpression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+ ruleOpEquality
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+ $current);
+ }
+)(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXEqualityExpressionRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+ }
+ ruleOpEquality {
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0());
+ }
+ lv_rightOperand_3_0=ruleXRelationalExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXEqualityExpressionRule());
+ }
+ set(
+ $current,
+ "rightOperand",
+ lv_rightOperand_3_0,
+ "XRelationalExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpEquality
+entryRuleOpEquality returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getOpEqualityRule()); }
+ iv_ruleOpEquality=ruleOpEquality
+ { $current=$iv_ruleOpEquality.current.getText(); }
+ EOF
+;
+
+// Rule OpEquality
+ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ kw='=='
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0());
+ }
+
+ |
+ kw='!='
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1());
+ }
+
+ |
+ kw='==='
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2());
+ }
+
+ |
+ kw='!=='
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3());
+ }
+)
+ ;
+
+
+
+
+
+// Entry rule entryRuleXRelationalExpression
+entryRuleXRelationalExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXRelationalExpressionRule()); }
+ iv_ruleXRelationalExpression=ruleXRelationalExpression
+ { $current=$iv_ruleXRelationalExpression.current; }
+ EOF
+;
+
+// Rule XRelationalExpression
+ruleXRelationalExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0());
+ }
+ this_XOtherOperatorExpression_0=ruleXOtherOperatorExpression
+ {
+ $current = $this_XOtherOperatorExpression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+((((((
+) 'instanceof'
+))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0(),
+ $current);
+ }
+) otherlv_2='instanceof'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
+ }
+))(
+(
+ {
+ newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0());
+ }
+ lv_type_3_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+ }
+ set(
+ $current,
+ "type",
+ lv_type_3_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |(((((
+)(
+(
+ ruleOpCompare
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
+ $current);
+ }
+)(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXRelationalExpressionRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
+ }
+ ruleOpCompare {
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0());
+ }
+ lv_rightOperand_6_0=ruleXOtherOperatorExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+ }
+ set(
+ $current,
+ "rightOperand",
+ lv_rightOperand_6_0,
+ "XOtherOperatorExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpCompare
+entryRuleOpCompare returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getOpCompareRule()); }
+ iv_ruleOpCompare=ruleOpCompare
+ { $current=$iv_ruleOpCompare.current.getText(); }
+ EOF
+;
+
+// Rule OpCompare
+ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ kw='>='
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0());
+ }
+
+ |
+ kw='<='
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignEqualsSignKeyword_1());
+ }
+
+ |
+ kw='>'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2());
+ }
+
+ |
+ kw='<'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3());
+ }
+)
+ ;
+
+
+
+
+
+// Entry rule entryRuleXOtherOperatorExpression
+entryRuleXOtherOperatorExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXOtherOperatorExpressionRule()); }
+ iv_ruleXOtherOperatorExpression=ruleXOtherOperatorExpression
+ { $current=$iv_ruleXOtherOperatorExpression.current; }
+ EOF
+;
+
+// Rule XOtherOperatorExpression
+ruleXOtherOperatorExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0());
+ }
+ this_XAdditiveExpression_0=ruleXAdditiveExpression
+ {
+ $current = $this_XAdditiveExpression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+ ruleOpOther
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+ $current);
+ }
+)(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXOtherOperatorExpressionRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+ }
+ ruleOpOther {
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0());
+ }
+ lv_rightOperand_3_0=ruleXAdditiveExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXOtherOperatorExpressionRule());
+ }
+ set(
+ $current,
+ "rightOperand",
+ lv_rightOperand_3_0,
+ "XAdditiveExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpOther
+entryRuleOpOther returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getOpOtherRule()); }
+ iv_ruleOpOther=ruleOpOther
+ { $current=$iv_ruleOpOther.current.getText(); }
+ EOF
+;
+
+// Rule OpOther
+ruleOpOther returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ kw='->'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0());
+ }
+
+ |
+ kw='..<'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1());
+ }
+
+ |(
+ kw='>'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0());
+ }
+
+ kw='..'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1());
+ }
+)
+ |
+ kw='..'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3());
+ }
+
+ |
+ kw='=>'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4());
+ }
+
+ |(
+ kw='>'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0());
+ }
+((((
+ '>'
+
+ '>'
+))=>(
+ kw='>'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0());
+ }
+
+ kw='>'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1());
+ }
+))
+ |
+ kw='>'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1());
+ }
+))
+ |(
+ kw='<'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0());
+ }
+((((
+ '<'
+
+ '<'
+))=>(
+ kw='<'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0());
+ }
+
+ kw='<'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1());
+ }
+))
+ |
+ kw='<'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1());
+ }
+))
+ |
+ kw='<>'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7());
+ }
+
+ |
+ kw='?:'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8());
+ }
+
+ |
+ kw='<=>'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_9());
+ }
+)
+ ;
+
+
+
+
+
+// Entry rule entryRuleXAdditiveExpression
+entryRuleXAdditiveExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXAdditiveExpressionRule()); }
+ iv_ruleXAdditiveExpression=ruleXAdditiveExpression
+ { $current=$iv_ruleXAdditiveExpression.current; }
+ EOF
+;
+
+// Rule XAdditiveExpression
+ruleXAdditiveExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0());
+ }
+ this_XMultiplicativeExpression_0=ruleXMultiplicativeExpression
+ {
+ $current = $this_XMultiplicativeExpression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+ ruleOpAdd
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+ $current);
+ }
+)(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXAdditiveExpressionRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+ }
+ ruleOpAdd {
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0());
+ }
+ lv_rightOperand_3_0=ruleXMultiplicativeExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXAdditiveExpressionRule());
+ }
+ set(
+ $current,
+ "rightOperand",
+ lv_rightOperand_3_0,
+ "XMultiplicativeExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpAdd
+entryRuleOpAdd returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getOpAddRule()); }
+ iv_ruleOpAdd=ruleOpAdd
+ { $current=$iv_ruleOpAdd.current.getText(); }
+ EOF
+;
+
+// Rule OpAdd
+ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ kw='+'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpAddAccess().getPlusSignKeyword_0());
+ }
+
+ |
+ kw='-'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1());
+ }
+)
+ ;
+
+
+
+
+
+// Entry rule entryRuleXMultiplicativeExpression
+entryRuleXMultiplicativeExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXMultiplicativeExpressionRule()); }
+ iv_ruleXMultiplicativeExpression=ruleXMultiplicativeExpression
+ { $current=$iv_ruleXMultiplicativeExpression.current; }
+ EOF
+;
+
+// Rule XMultiplicativeExpression
+ruleXMultiplicativeExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0());
+ }
+ this_XUnaryOperation_0=ruleXUnaryOperation
+ {
+ $current = $this_XUnaryOperation_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+)(
+(
+ ruleOpMulti
+)
+)))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+ $current);
+ }
+)(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXMultiplicativeExpressionRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+ }
+ ruleOpMulti {
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0());
+ }
+ lv_rightOperand_3_0=ruleXUnaryOperation {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXMultiplicativeExpressionRule());
+ }
+ set(
+ $current,
+ "rightOperand",
+ lv_rightOperand_3_0,
+ "XUnaryOperation");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpMulti
+entryRuleOpMulti returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getOpMultiRule()); }
+ iv_ruleOpMulti=ruleOpMulti
+ { $current=$iv_ruleOpMulti.current.getText(); }
+ EOF
+;
+
+// Rule OpMulti
+ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ kw='*'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpMultiAccess().getAsteriskKeyword_0());
+ }
+
+ |
+ kw='**'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1());
+ }
+
+ |
+ kw='/'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpMultiAccess().getSolidusKeyword_2());
+ }
+
+ |
+ kw='%'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpMultiAccess().getPercentSignKeyword_3());
+ }
+)
+ ;
+
+
+
+
+
+// Entry rule entryRuleXUnaryOperation
+entryRuleXUnaryOperation returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXUnaryOperationRule()); }
+ iv_ruleXUnaryOperation=ruleXUnaryOperation
+ { $current=$iv_ruleXUnaryOperation.current; }
+ EOF
+;
+
+// Rule XUnaryOperation
+ruleXUnaryOperation returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0(),
+ $current);
+ }
+)(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXUnaryOperationRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0());
+ }
+ ruleOpUnary {
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0());
+ }
+ lv_operand_2_0=ruleXUnaryOperation {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXUnaryOperationRule());
+ }
+ set(
+ $current,
+ "operand",
+ lv_operand_2_0,
+ "XUnaryOperation");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |
+ {
+ newCompositeNode(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1());
+ }
+ this_XCastedExpression_3=ruleXCastedExpression
+ {
+ $current = $this_XCastedExpression_3.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleOpUnary
+entryRuleOpUnary returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getOpUnaryRule()); }
+ iv_ruleOpUnary=ruleOpUnary
+ { $current=$iv_ruleOpUnary.current.getText(); }
+ EOF
+;
+
+// Rule OpUnary
+ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ kw='!'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0());
+ }
+
+ |
+ kw='-'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1());
+ }
+
+ |
+ kw='+'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2());
+ }
+)
+ ;
+
+
+
+
+
+// Entry rule entryRuleXCastedExpression
+entryRuleXCastedExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXCastedExpressionRule()); }
+ iv_ruleXCastedExpression=ruleXCastedExpression
+ { $current=$iv_ruleXCastedExpression.current; }
+ EOF
+;
+
+// Rule XCastedExpression
+ruleXCastedExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getXCastedExpressionAccess().getXMemberFeatureCallParserRuleCall_0());
+ }
+ this_XMemberFeatureCall_0=ruleXMemberFeatureCall
+ {
+ $current = $this_XMemberFeatureCall_0.current;
+ afterParserOrEnumRuleCall();
+ }
+(((((
+) 'as'
+))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0(),
+ $current);
+ }
+) otherlv_2='as'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1());
+ }
+))(
+(
+ {
+ newCompositeNode(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0());
+ }
+ lv_type_3_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXCastedExpressionRule());
+ }
+ set(
+ $current,
+ "type",
+ lv_type_3_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleXMemberFeatureCall
+entryRuleXMemberFeatureCall returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXMemberFeatureCallRule()); }
+ iv_ruleXMemberFeatureCall=ruleXMemberFeatureCall
+ { $current=$iv_ruleXMemberFeatureCall.current; }
+ EOF
+;
+
+// Rule XMemberFeatureCall
+ruleXMemberFeatureCall returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0());
+ }
+ this_XPrimaryExpression_0=ruleXPrimaryExpression
+ {
+ $current = $this_XPrimaryExpression_0.current;
+ afterParserOrEnumRuleCall();
+ }
+((((((
+)( '.'
+
+ |(
+(
+ '::'
+
+
+)
+))(
+(
+ ruleFeatureCallID
+)
+) ruleOpSingleAssign))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0(),
+ $current);
+ }
+)( otherlv_2='.'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0());
+ }
+
+ |(
+(
+ lv_explicitStatic_3_0= '::'
+ {
+ newLeafNode(lv_explicitStatic_3_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+ }
+ setWithLastConsumed($current, "explicitStatic", true, "::");
+ }
+
+)
+))(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0());
+ }
+ ruleFeatureCallID {
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ {
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3());
+ }
+ruleOpSingleAssign
+ {
+ afterParserOrEnumRuleCall();
+ }
+))(
+(
+ {
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0());
+ }
+ lv_value_6_0=ruleXAssignment {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+ }
+ set(
+ $current,
+ "value",
+ lv_value_6_0,
+ "XAssignment");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |(((((
+)( '.'
+
+ |(
+(
+ '?.'
+
+
+)
+)
+ |(
+(
+ '::'
+
+
+)
+))))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0(),
+ $current);
+ }
+)( otherlv_8='.'
+ {
+ newLeafNode(otherlv_8, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0());
+ }
+
+ |(
+(
+ lv_nullSafe_9_0= '?.'
+ {
+ newLeafNode(lv_nullSafe_9_0, grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+ }
+ setWithLastConsumed($current, "nullSafe", true, "?.");
+ }
+
+)
+)
+ |(
+(
+ lv_explicitStatic_10_0= '::'
+ {
+ newLeafNode(lv_explicitStatic_10_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+ }
+ setWithLastConsumed($current, "explicitStatic", true, "::");
+ }
+
+)
+))))( otherlv_11='<'
+ {
+ newLeafNode(otherlv_11, grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0());
+ }
+ lv_typeArguments_12_0=ruleJvmArgumentTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+ }
+ add(
+ $current,
+ "typeArguments",
+ lv_typeArguments_12_0,
+ "JvmArgumentTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_13=','
+ {
+ newLeafNode(otherlv_13, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0());
+ }
+ lv_typeArguments_14_0=ruleJvmArgumentTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+ }
+ add(
+ $current,
+ "typeArguments",
+ lv_typeArguments_14_0,
+ "JvmArgumentTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))* otherlv_15='>'
+ {
+ newLeafNode(otherlv_15, grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3());
+ }
+)?(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0());
+ }
+ ruleFeatureCallID {
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(((
+(
+ '('
+
+
+)
+)=>
+(
+ lv_explicitOperationCall_17_0= '('
+ {
+ newLeafNode(lv_explicitOperationCall_17_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+ }
+ setWithLastConsumed($current, "explicitOperationCall", true, "(");
+ }
+
+)
+)(((((
+)((
+(
+ruleJvmFormalParameter
+)
+)( ','
+(
+(
+ruleJvmFormalParameter
+)
+))*)?(
+(
+ '|'
+
+
+)
+)))=>
+(
+ {
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0());
+ }
+ lv_memberCallArguments_18_0=ruleXShortClosure {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+ }
+ add(
+ $current,
+ "memberCallArguments",
+ lv_memberCallArguments_18_0,
+ "XShortClosure");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |((
+(
+ {
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0());
+ }
+ lv_memberCallArguments_19_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+ }
+ add(
+ $current,
+ "memberCallArguments",
+ lv_memberCallArguments_19_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_20=','
+ {
+ newLeafNode(otherlv_20, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0());
+ }
+ lv_memberCallArguments_21_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+ }
+ add(
+ $current,
+ "memberCallArguments",
+ lv_memberCallArguments_21_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*))? otherlv_22=')'
+ {
+ newLeafNode(otherlv_22, grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2());
+ }
+)?((((
+) '['
+))=>
+(
+ {
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0());
+ }
+ lv_memberCallArguments_23_0=ruleXClosure {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+ }
+ add(
+ $current,
+ "memberCallArguments",
+ lv_memberCallArguments_23_0,
+ "XClosure");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?))*)
+;
+
+
+
+
+
+// Entry rule entryRuleXPrimaryExpression
+entryRuleXPrimaryExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXPrimaryExpressionRule()); }
+ iv_ruleXPrimaryExpression=ruleXPrimaryExpression
+ { $current=$iv_ruleXPrimaryExpression.current; }
+ EOF
+;
+
+// Rule XPrimaryExpression
+ruleXPrimaryExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0());
+ }
+ this_XConstructorCall_0=ruleXConstructorCall
+ {
+ $current = $this_XConstructorCall_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1());
+ }
+ this_XBlockExpression_1=ruleXBlockExpression
+ {
+ $current = $this_XBlockExpression_1.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2());
+ }
+ this_XSwitchExpression_2=ruleXSwitchExpression
+ {
+ $current = $this_XSwitchExpression_2.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_3());
+ }
+ this_XFeatureCall_3=ruleXFeatureCall
+ {
+ $current = $this_XFeatureCall_3.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_4());
+ }
+ this_XLiteral_4=ruleXLiteral
+ {
+ $current = $this_XLiteral_4.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_5());
+ }
+ this_XIfExpression_5=ruleXIfExpression
+ {
+ $current = $this_XIfExpression_5.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_6());
+ }
+ this_XForLoopExpression_6=ruleXForLoopExpression
+ {
+ $current = $this_XForLoopExpression_6.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_7());
+ }
+ this_XWhileExpression_7=ruleXWhileExpression
+ {
+ $current = $this_XWhileExpression_7.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_8());
+ }
+ this_XDoWhileExpression_8=ruleXDoWhileExpression
+ {
+ $current = $this_XDoWhileExpression_8.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_9());
+ }
+ this_XThrowExpression_9=ruleXThrowExpression
+ {
+ $current = $this_XThrowExpression_9.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_10());
+ }
+ this_XReturnExpression_10=ruleXReturnExpression
+ {
+ $current = $this_XReturnExpression_10.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_11());
+ }
+ this_XTryCatchFinallyExpression_11=ruleXTryCatchFinallyExpression
+ {
+ $current = $this_XTryCatchFinallyExpression_11.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_12());
+ }
+ this_XParenthesizedExpression_12=ruleXParenthesizedExpression
+ {
+ $current = $this_XParenthesizedExpression_12.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXLiteral
+entryRuleXLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXLiteralRule()); }
+ iv_ruleXLiteral=ruleXLiteral
+ { $current=$iv_ruleXLiteral.current; }
+ EOF
+;
+
+// Rule XLiteral
+ruleXLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0());
+ }
+ this_XCollectionLiteral_0=ruleXCollectionLiteral
+ {
+ $current = $this_XCollectionLiteral_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |((((
+) '['
+))=>
+ {
+ newCompositeNode(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1());
+ }
+ this_XClosure_1=ruleXClosure
+ {
+ $current = $this_XClosure_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+ |
+ {
+ newCompositeNode(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2());
+ }
+ this_XBooleanLiteral_2=ruleXBooleanLiteral
+ {
+ $current = $this_XBooleanLiteral_2.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3());
+ }
+ this_XNumberLiteral_3=ruleXNumberLiteral
+ {
+ $current = $this_XNumberLiteral_3.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4());
+ }
+ this_XNullLiteral_4=ruleXNullLiteral
+ {
+ $current = $this_XNullLiteral_4.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5());
+ }
+ this_XStringLiteral_5=ruleXStringLiteral
+ {
+ $current = $this_XStringLiteral_5.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6());
+ }
+ this_XTypeLiteral_6=ruleXTypeLiteral
+ {
+ $current = $this_XTypeLiteral_6.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXCollectionLiteral
+entryRuleXCollectionLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXCollectionLiteralRule()); }
+ iv_ruleXCollectionLiteral=ruleXCollectionLiteral
+ { $current=$iv_ruleXCollectionLiteral.current; }
+ EOF
+;
+
+// Rule XCollectionLiteral
+ruleXCollectionLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0());
+ }
+ this_XSetLiteral_0=ruleXSetLiteral
+ {
+ $current = $this_XSetLiteral_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1());
+ }
+ this_XListLiteral_1=ruleXListLiteral
+ {
+ $current = $this_XListLiteral_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXSetLiteral
+entryRuleXSetLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXSetLiteralRule()); }
+ iv_ruleXSetLiteral=ruleXSetLiteral
+ { $current=$iv_ruleXSetLiteral.current; }
+ EOF
+;
+
+// Rule XSetLiteral
+ruleXSetLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0(),
+ $current);
+ }
+) otherlv_1='#'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1());
+ }
+ otherlv_2='{'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2());
+ }
+((
+(
+ {
+ newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
+ }
+ lv_elements_3_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXSetLiteralRule());
+ }
+ add(
+ $current,
+ "elements",
+ lv_elements_3_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_4=','
+ {
+ newLeafNode(otherlv_4, grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
+ }
+ lv_elements_5_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXSetLiteralRule());
+ }
+ add(
+ $current,
+ "elements",
+ lv_elements_5_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)? otherlv_6='}'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXListLiteral
+entryRuleXListLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXListLiteralRule()); }
+ iv_ruleXListLiteral=ruleXListLiteral
+ { $current=$iv_ruleXListLiteral.current; }
+ EOF
+;
+
+// Rule XListLiteral
+ruleXListLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXListLiteralAccess().getXListLiteralAction_0(),
+ $current);
+ }
+) otherlv_1='#'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1());
+ }
+ otherlv_2='['
+ {
+ newLeafNode(otherlv_2, grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2());
+ }
+((
+(
+ {
+ newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
+ }
+ lv_elements_3_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXListLiteralRule());
+ }
+ add(
+ $current,
+ "elements",
+ lv_elements_3_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_4=','
+ {
+ newLeafNode(otherlv_4, grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
+ }
+ lv_elements_5_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXListLiteralRule());
+ }
+ add(
+ $current,
+ "elements",
+ lv_elements_5_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)? otherlv_6=']'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXClosure
+entryRuleXClosure returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXClosureRule()); }
+ iv_ruleXClosure=ruleXClosure
+ { $current=$iv_ruleXClosure.current; }
+ EOF
+;
+
+// Rule XClosure
+ruleXClosure returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((((
+) '['
+))=>((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXClosureAccess().getXClosureAction_0_0_0(),
+ $current);
+ }
+) otherlv_1='['
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1());
+ }
+))(((((
+(
+ruleJvmFormalParameter
+)
+)( ','
+(
+(
+ruleJvmFormalParameter
+)
+))*)?(
+(
+ '|'
+
+
+)
+)))=>(((
+(
+ {
+ newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0());
+ }
+ lv_declaredFormalParameters_2_0=ruleJvmFormalParameter {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXClosureRule());
+ }
+ add(
+ $current,
+ "declaredFormalParameters",
+ lv_declaredFormalParameters_2_0,
+ "JvmFormalParameter");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_3=','
+ {
+ newLeafNode(otherlv_3, grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0());
+ }
+ lv_declaredFormalParameters_4_0=ruleJvmFormalParameter {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXClosureRule());
+ }
+ add(
+ $current,
+ "declaredFormalParameters",
+ lv_declaredFormalParameters_4_0,
+ "JvmFormalParameter");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)?(
+(
+ lv_explicitSyntax_5_0= '|'
+ {
+ newLeafNode(lv_explicitSyntax_5_0, grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXClosureRule());
+ }
+ setWithLastConsumed($current, "explicitSyntax", true, "|");
+ }
+
+)
+)))?(
+(
+ {
+ newCompositeNode(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0());
+ }
+ lv_expression_6_0=ruleXExpressionInClosure {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXClosureRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_6_0,
+ "XExpressionInClosure");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_7=']'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXExpressionInClosure
+entryRuleXExpressionInClosure returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXExpressionInClosureRule()); }
+ iv_ruleXExpressionInClosure=ruleXExpressionInClosure
+ { $current=$iv_ruleXExpressionInClosure.current; }
+ EOF
+;
+
+// Rule XExpressionInClosure
+ruleXExpressionInClosure returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0(),
+ $current);
+ }
+)((
+(
+ {
+ newCompositeNode(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionInsideBlockParserRuleCall_1_0_0());
+ }
+ lv_expressions_1_0=ruleXExpressionInsideBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXExpressionInClosureRule());
+ }
+ add(
+ $current,
+ "expressions",
+ lv_expressions_1_0,
+ "XExpressionInsideBlock");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_2=';'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
+ }
+)?)*)
+;
+
+
+
+
+
+// Entry rule entryRuleXShortClosure
+entryRuleXShortClosure returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXShortClosureRule()); }
+ iv_ruleXShortClosure=ruleXShortClosure
+ { $current=$iv_ruleXShortClosure.current; }
+ EOF
+;
+
+// Rule XShortClosure
+ruleXShortClosure returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(((((
+)((
+(
+ruleJvmFormalParameter
+)
+)( ','
+(
+(
+ruleJvmFormalParameter
+)
+))*)?(
+(
+ '|'
+
+
+)
+)))=>((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0(),
+ $current);
+ }
+)((
+(
+ {
+ newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0());
+ }
+ lv_declaredFormalParameters_1_0=ruleJvmFormalParameter {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXShortClosureRule());
+ }
+ add(
+ $current,
+ "declaredFormalParameters",
+ lv_declaredFormalParameters_1_0,
+ "JvmFormalParameter");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_2=','
+ {
+ newLeafNode(otherlv_2, grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0());
+ }
+ lv_declaredFormalParameters_3_0=ruleJvmFormalParameter {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXShortClosureRule());
+ }
+ add(
+ $current,
+ "declaredFormalParameters",
+ lv_declaredFormalParameters_3_0,
+ "JvmFormalParameter");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)?(
+(
+ lv_explicitSyntax_4_0= '|'
+ {
+ newLeafNode(lv_explicitSyntax_4_0, grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXShortClosureRule());
+ }
+ setWithLastConsumed($current, "explicitSyntax", true, "|");
+ }
+
+)
+)))(
+(
+ {
+ newCompositeNode(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0());
+ }
+ lv_expression_5_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXShortClosureRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_5_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXParenthesizedExpression
+entryRuleXParenthesizedExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXParenthesizedExpressionRule()); }
+ iv_ruleXParenthesizedExpression=ruleXParenthesizedExpression
+ { $current=$iv_ruleXParenthesizedExpression.current; }
+ EOF
+;
+
+// Rule XParenthesizedExpression
+ruleXParenthesizedExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='('
+ {
+ newLeafNode(otherlv_0, grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
+ }
+
+ {
+ newCompositeNode(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1());
+ }
+ this_XExpression_1=ruleXExpression
+ {
+ $current = $this_XExpression_1.current;
+ afterParserOrEnumRuleCall();
+ }
+ otherlv_2=')'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXIfExpression
+entryRuleXIfExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXIfExpressionRule()); }
+ iv_ruleXIfExpression=ruleXIfExpression
+ { $current=$iv_ruleXIfExpression.current; }
+ EOF
+;
+
+// Rule XIfExpression
+ruleXIfExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0(),
+ $current);
+ }
+) otherlv_1='if'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXIfExpressionAccess().getIfKeyword_1());
+ }
+ otherlv_2='('
+ {
+ newLeafNode(otherlv_2, grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0());
+ }
+ lv_if_3_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
+ }
+ set(
+ $current,
+ "if",
+ lv_if_3_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_4=')'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0());
+ }
+ lv_then_5_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
+ }
+ set(
+ $current,
+ "then",
+ lv_then_5_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((( 'else'
+)=> otherlv_6='else'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0());
+ }
+ lv_else_7_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
+ }
+ set(
+ $current,
+ "else",
+ lv_else_7_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleXSwitchExpression
+entryRuleXSwitchExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXSwitchExpressionRule()); }
+ iv_ruleXSwitchExpression=ruleXSwitchExpression
+ { $current=$iv_ruleXSwitchExpression.current; }
+ EOF
+;
+
+// Rule XSwitchExpression
+ruleXSwitchExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0(),
+ $current);
+ }
+) otherlv_1='switch'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1());
+ }
+((((((
+(
+ruleValidID
+)
+) ':'
+))=>((
+(
+ {
+ newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameValidIDParserRuleCall_2_0_0_0_0_0());
+ }
+ lv_localVarName_2_0=ruleValidID {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+ }
+ set(
+ $current,
+ "localVarName",
+ lv_localVarName_2_0,
+ "ValidID");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_3=':'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_1());
+ }
+))?(
+(
+ {
+ newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0());
+ }
+ lv_switch_4_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+ }
+ set(
+ $current,
+ "switch",
+ lv_switch_4_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+ |(((( '('
+(
+(
+ruleValidID
+)
+) ':'
+))=>( otherlv_5='('
+ {
+ newLeafNode(otherlv_5, grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_1_0_0_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameValidIDParserRuleCall_2_1_0_0_1_0());
+ }
+ lv_localVarName_6_0=ruleValidID {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+ }
+ set(
+ $current,
+ "localVarName",
+ lv_localVarName_6_0,
+ "ValidID");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_7=':'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_2());
+ }
+))(
+(
+ {
+ newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0());
+ }
+ lv_switch_8_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+ }
+ set(
+ $current,
+ "switch",
+ lv_switch_8_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_9=')'
+ {
+ newLeafNode(otherlv_9, grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_1_2());
+ }
+)) otherlv_10='{'
+ {
+ newLeafNode(otherlv_10, grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0());
+ }
+ lv_cases_11_0=ruleXCasePart {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+ }
+ add(
+ $current,
+ "cases",
+ lv_cases_11_0,
+ "XCasePart");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)+( otherlv_12='default'
+ {
+ newLeafNode(otherlv_12, grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0());
+ }
+ otherlv_13=':'
+ {
+ newLeafNode(otherlv_13, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0());
+ }
+ lv_default_14_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+ }
+ set(
+ $current,
+ "default",
+ lv_default_14_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))? otherlv_15='}'
+ {
+ newLeafNode(otherlv_15, grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXCasePart
+entryRuleXCasePart returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXCasePartRule()); }
+ iv_ruleXCasePart=ruleXCasePart
+ { $current=$iv_ruleXCasePart.current; }
+ EOF
+;
+
+// Rule XCasePart
+ruleXCasePart returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_0_0());
+ }
+ lv_typeGuard_0_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXCasePartRule());
+ }
+ set(
+ $current,
+ "typeGuard",
+ lv_typeGuard_0_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?( otherlv_1='case'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXCasePartAccess().getCaseKeyword_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_1_1_0());
+ }
+ lv_case_2_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXCasePartRule());
+ }
+ set(
+ $current,
+ "case",
+ lv_case_2_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))? otherlv_3=':'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getXCasePartAccess().getColonKeyword_2());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0());
+ }
+ lv_then_4_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXCasePartRule());
+ }
+ set(
+ $current,
+ "then",
+ lv_then_4_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXForLoopExpression
+entryRuleXForLoopExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXForLoopExpressionRule()); }
+ iv_ruleXForLoopExpression=ruleXForLoopExpression
+ { $current=$iv_ruleXForLoopExpression.current; }
+ EOF
+;
+
+// Rule XForLoopExpression
+ruleXForLoopExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0(),
+ $current);
+ }
+) otherlv_1='for'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXForLoopExpressionAccess().getForKeyword_1());
+ }
+ otherlv_2='('
+ {
+ newLeafNode(otherlv_2, grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_2());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_3_0());
+ }
+ lv_declaredParam_3_0=ruleJvmFormalParameter {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
+ }
+ set(
+ $current,
+ "declaredParam",
+ lv_declaredParam_3_0,
+ "JvmFormalParameter");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_4=':'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getXForLoopExpressionAccess().getColonKeyword_4());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_5_0());
+ }
+ lv_forExpression_5_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
+ }
+ set(
+ $current,
+ "forExpression",
+ lv_forExpression_5_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_6=')'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_6());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_7_0());
+ }
+ lv_eachExpression_7_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
+ }
+ set(
+ $current,
+ "eachExpression",
+ lv_eachExpression_7_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXWhileExpression
+entryRuleXWhileExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXWhileExpressionRule()); }
+ iv_ruleXWhileExpression=ruleXWhileExpression
+ { $current=$iv_ruleXWhileExpression.current; }
+ EOF
+;
+
+// Rule XWhileExpression
+ruleXWhileExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0(),
+ $current);
+ }
+) otherlv_1='while'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1());
+ }
+ otherlv_2='('
+ {
+ newLeafNode(otherlv_2, grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0());
+ }
+ lv_predicate_3_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXWhileExpressionRule());
+ }
+ set(
+ $current,
+ "predicate",
+ lv_predicate_3_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_4=')'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0());
+ }
+ lv_body_5_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXWhileExpressionRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_5_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXDoWhileExpression
+entryRuleXDoWhileExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXDoWhileExpressionRule()); }
+ iv_ruleXDoWhileExpression=ruleXDoWhileExpression
+ { $current=$iv_ruleXDoWhileExpression.current; }
+ EOF
+;
+
+// Rule XDoWhileExpression
+ruleXDoWhileExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0(),
+ $current);
+ }
+) otherlv_1='do'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0());
+ }
+ lv_body_2_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXDoWhileExpressionRule());
+ }
+ set(
+ $current,
+ "body",
+ lv_body_2_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_3='while'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3());
+ }
+ otherlv_4='('
+ {
+ newLeafNode(otherlv_4, grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0());
+ }
+ lv_predicate_5_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXDoWhileExpressionRule());
+ }
+ set(
+ $current,
+ "predicate",
+ lv_predicate_5_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_6=')'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXBlockExpression
+entryRuleXBlockExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXBlockExpressionRule()); }
+ iv_ruleXBlockExpression=ruleXBlockExpression
+ { $current=$iv_ruleXBlockExpression.current; }
+ EOF
+;
+
+// Rule XBlockExpression
+ruleXBlockExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0(),
+ $current);
+ }
+) otherlv_1='{'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1());
+ }
+((
+(
+ {
+ newCompositeNode(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionInsideBlockParserRuleCall_2_0_0());
+ }
+ lv_expressions_2_0=ruleXExpressionInsideBlock {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXBlockExpressionRule());
+ }
+ add(
+ $current,
+ "expressions",
+ lv_expressions_2_0,
+ "XExpressionInsideBlock");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_3=';'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
+ }
+)?)* otherlv_4='}'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXExpressionInsideBlock
+entryRuleXExpressionInsideBlock returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXExpressionInsideBlockRule()); }
+ iv_ruleXExpressionInsideBlock=ruleXExpressionInsideBlock
+ { $current=$iv_ruleXExpressionInsideBlock.current; }
+ EOF
+;
+
+// Rule XExpressionInsideBlock
+ruleXExpressionInsideBlock returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getXExpressionInsideBlockAccess().getXVariableDeclarationParserRuleCall_0());
+ }
+ this_XVariableDeclaration_0=ruleXVariableDeclaration
+ {
+ $current = $this_XVariableDeclaration_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getXExpressionInsideBlockAccess().getXExpressionParserRuleCall_1());
+ }
+ this_XExpression_1=ruleXExpression
+ {
+ $current = $this_XExpression_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXVariableDeclaration
+entryRuleXVariableDeclaration returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXVariableDeclarationRule()); }
+ iv_ruleXVariableDeclaration=ruleXVariableDeclaration
+ { $current=$iv_ruleXVariableDeclaration.current; }
+ EOF
+;
+
+// Rule XVariableDeclaration
+ruleXVariableDeclaration returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0(),
+ $current);
+ }
+)((
+(
+ lv_writeable_1_0= 'var'
+ {
+ newLeafNode(lv_writeable_1_0, grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXVariableDeclarationRule());
+ }
+ setWithLastConsumed($current, "writeable", true, "var");
+ }
+
+)
+)
+ | otherlv_2='val'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1());
+ }
+)(((((
+(
+ruleJvmTypeReference
+)
+)(
+(
+ruleValidID
+)
+)))=>((
+(
+ {
+ newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0());
+ }
+ lv_type_3_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+ }
+ set(
+ $current,
+ "type",
+ lv_type_3_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0());
+ }
+ lv_name_4_0=ruleValidID {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_4_0,
+ "ValidID");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)))
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0());
+ }
+ lv_name_5_0=ruleValidID {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_5_0,
+ "ValidID");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))( otherlv_6='='
+ {
+ newLeafNode(otherlv_6, grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0());
+ }
+ lv_right_7_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+ }
+ set(
+ $current,
+ "right",
+ lv_right_7_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleJvmFormalParameter
+entryRuleJvmFormalParameter returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getJvmFormalParameterRule()); }
+ iv_ruleJvmFormalParameter=ruleJvmFormalParameter
+ { $current=$iv_ruleJvmFormalParameter.current; }
+ EOF
+;
+
+// Rule JvmFormalParameter
+ruleJvmFormalParameter returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+ lv_parameterType_0_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getJvmFormalParameterRule());
+ }
+ set(
+ $current,
+ "parameterType",
+ lv_parameterType_0_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?(
+(
+ {
+ newCompositeNode(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0());
+ }
+ lv_name_1_0=ruleValidID {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getJvmFormalParameterRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ValidID");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleFullJvmFormalParameter
+entryRuleFullJvmFormalParameter returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getFullJvmFormalParameterRule()); }
+ iv_ruleFullJvmFormalParameter=ruleFullJvmFormalParameter
+ { $current=$iv_ruleFullJvmFormalParameter.current; }
+ EOF
+;
+
+// Rule FullJvmFormalParameter
+ruleFullJvmFormalParameter returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ newCompositeNode(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+ }
+ lv_parameterType_0_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getFullJvmFormalParameterRule());
+ }
+ set(
+ $current,
+ "parameterType",
+ lv_parameterType_0_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0());
+ }
+ lv_name_1_0=ruleValidID {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getFullJvmFormalParameterRule());
+ }
+ set(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ValidID");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXFeatureCall
+entryRuleXFeatureCall returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXFeatureCallRule()); }
+ iv_ruleXFeatureCall=ruleXFeatureCall
+ { $current=$iv_ruleXFeatureCall.current; }
+ EOF
+;
+
+// Rule XFeatureCall
+ruleXFeatureCall returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0(),
+ $current);
+ }
+)( otherlv_1='<'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0());
+ }
+ lv_typeArguments_2_0=ruleJvmArgumentTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+ }
+ add(
+ $current,
+ "typeArguments",
+ lv_typeArguments_2_0,
+ "JvmArgumentTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_3=','
+ {
+ newLeafNode(otherlv_3, grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0());
+ }
+ lv_typeArguments_4_0=ruleJvmArgumentTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+ }
+ add(
+ $current,
+ "typeArguments",
+ lv_typeArguments_4_0,
+ "JvmArgumentTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))* otherlv_5='>'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3());
+ }
+)?(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXFeatureCallRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0());
+ }
+ ruleIdOrSuper {
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(((
+(
+ '('
+
+
+)
+)=>
+(
+ lv_explicitOperationCall_7_0= '('
+ {
+ newLeafNode(lv_explicitOperationCall_7_0, grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXFeatureCallRule());
+ }
+ setWithLastConsumed($current, "explicitOperationCall", true, "(");
+ }
+
+)
+)(((((
+)((
+(
+ruleJvmFormalParameter
+)
+)( ','
+(
+(
+ruleJvmFormalParameter
+)
+))*)?(
+(
+ '|'
+
+
+)
+)))=>
+(
+ {
+ newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0());
+ }
+ lv_featureCallArguments_8_0=ruleXShortClosure {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+ }
+ add(
+ $current,
+ "featureCallArguments",
+ lv_featureCallArguments_8_0,
+ "XShortClosure");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |((
+(
+ {
+ newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0());
+ }
+ lv_featureCallArguments_9_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+ }
+ add(
+ $current,
+ "featureCallArguments",
+ lv_featureCallArguments_9_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_10=','
+ {
+ newLeafNode(otherlv_10, grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0());
+ }
+ lv_featureCallArguments_11_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+ }
+ add(
+ $current,
+ "featureCallArguments",
+ lv_featureCallArguments_11_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*))? otherlv_12=')'
+ {
+ newLeafNode(otherlv_12, grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2());
+ }
+)?((((
+) '['
+))=>
+(
+ {
+ newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0());
+ }
+ lv_featureCallArguments_13_0=ruleXClosure {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+ }
+ add(
+ $current,
+ "featureCallArguments",
+ lv_featureCallArguments_13_0,
+ "XClosure");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleFeatureCallID
+entryRuleFeatureCallID returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getFeatureCallIDRule()); }
+ iv_ruleFeatureCallID=ruleFeatureCallID
+ { $current=$iv_ruleFeatureCallID.current.getText(); }
+ EOF
+;
+
+// Rule FeatureCallID
+ruleFeatureCallID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0());
+ }
+ this_ValidID_0=ruleValidID {
+ $current.merge(this_ValidID_0);
+ }
+
+ {
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ kw='extends'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1());
+ }
+
+ |
+ kw='static'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2());
+ }
+
+ |
+ kw='import'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getImportKeyword_3());
+ }
+
+ |
+ kw='extension'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4());
+ }
+)
+ ;
+
+
+
+
+
+// Entry rule entryRuleIdOrSuper
+entryRuleIdOrSuper returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getIdOrSuperRule()); }
+ iv_ruleIdOrSuper=ruleIdOrSuper
+ { $current=$iv_ruleIdOrSuper.current.getText(); }
+ EOF
+;
+
+// Rule IdOrSuper
+ruleIdOrSuper returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0());
+ }
+ this_FeatureCallID_0=ruleFeatureCallID {
+ $current.merge(this_FeatureCallID_0);
+ }
+
+ {
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ kw='super'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getIdOrSuperAccess().getSuperKeyword_1());
+ }
+)
+ ;
+
+
+
+
+
+// Entry rule entryRuleXConstructorCall
+entryRuleXConstructorCall returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXConstructorCallRule()); }
+ iv_ruleXConstructorCall=ruleXConstructorCall
+ { $current=$iv_ruleXConstructorCall.current; }
+ EOF
+;
+
+// Rule XConstructorCall
+ruleXConstructorCall returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0(),
+ $current);
+ }
+) otherlv_1='new'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXConstructorCallAccess().getNewKeyword_1());
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXConstructorCallRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0());
+ }
+ ruleQualifiedName {
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((( '<'
+)=> otherlv_3='<'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0());
+ }
+ lv_typeArguments_4_0=ruleJvmArgumentTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+ }
+ add(
+ $current,
+ "typeArguments",
+ lv_typeArguments_4_0,
+ "JvmArgumentTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_5=','
+ {
+ newLeafNode(otherlv_5, grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0());
+ }
+ lv_typeArguments_6_0=ruleJvmArgumentTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+ }
+ add(
+ $current,
+ "typeArguments",
+ lv_typeArguments_6_0,
+ "JvmArgumentTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))* otherlv_7='>'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3());
+ }
+)?((( '('
+)=> otherlv_8='('
+ {
+ newLeafNode(otherlv_8, grammarAccess.getXConstructorCallAccess().getLeftParenthesisKeyword_4_0());
+ }
+)(((((
+)((
+(
+ruleJvmFormalParameter
+)
+)( ','
+(
+(
+ruleJvmFormalParameter
+)
+))*)?(
+(
+ '|'
+
+
+)
+)))=>
+(
+ {
+ newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0());
+ }
+ lv_arguments_9_0=ruleXShortClosure {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+ }
+ add(
+ $current,
+ "arguments",
+ lv_arguments_9_0,
+ "XShortClosure");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |((
+(
+ {
+ newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0());
+ }
+ lv_arguments_10_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+ }
+ add(
+ $current,
+ "arguments",
+ lv_arguments_10_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_11=','
+ {
+ newLeafNode(otherlv_11, grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0());
+ }
+ lv_arguments_12_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+ }
+ add(
+ $current,
+ "arguments",
+ lv_arguments_12_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*))? otherlv_13=')'
+ {
+ newLeafNode(otherlv_13, grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2());
+ }
+)?((((
+) '['
+))=>
+(
+ {
+ newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0());
+ }
+ lv_arguments_14_0=ruleXClosure {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+ }
+ add(
+ $current,
+ "arguments",
+ lv_arguments_14_0,
+ "XClosure");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleXBooleanLiteral
+entryRuleXBooleanLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXBooleanLiteralRule()); }
+ iv_ruleXBooleanLiteral=ruleXBooleanLiteral
+ { $current=$iv_ruleXBooleanLiteral.current; }
+ EOF
+;
+
+// Rule XBooleanLiteral
+ruleXBooleanLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0(),
+ $current);
+ }
+)( otherlv_1='false'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0());
+ }
+
+ |(
+(
+ lv_isTrue_2_0= 'true'
+ {
+ newLeafNode(lv_isTrue_2_0, grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXBooleanLiteralRule());
+ }
+ setWithLastConsumed($current, "isTrue", true, "true");
+ }
+
+)
+)))
+;
+
+
+
+
+
+// Entry rule entryRuleXNullLiteral
+entryRuleXNullLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXNullLiteralRule()); }
+ iv_ruleXNullLiteral=ruleXNullLiteral
+ { $current=$iv_ruleXNullLiteral.current; }
+ EOF
+;
+
+// Rule XNullLiteral
+ruleXNullLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0(),
+ $current);
+ }
+) otherlv_1='null'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXNullLiteralAccess().getNullKeyword_1());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXNumberLiteral
+entryRuleXNumberLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXNumberLiteralRule()); }
+ iv_ruleXNumberLiteral=ruleXNumberLiteral
+ { $current=$iv_ruleXNumberLiteral.current; }
+ EOF
+;
+
+// Rule XNumberLiteral
+ruleXNumberLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0(),
+ $current);
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0());
+ }
+ lv_value_1_0=ruleNumber {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXNumberLiteralRule());
+ }
+ set(
+ $current,
+ "value",
+ lv_value_1_0,
+ "Number");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXStringLiteral
+entryRuleXStringLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXStringLiteralRule()); }
+ iv_ruleXStringLiteral=ruleXStringLiteral
+ { $current=$iv_ruleXStringLiteral.current; }
+ EOF
+;
+
+// Rule XStringLiteral
+ruleXStringLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0(),
+ $current);
+ }
+)(
+(
+ lv_value_1_0=RULE_STRING
+ {
+ newLeafNode(lv_value_1_0, grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXStringLiteralRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "value",
+ lv_value_1_0,
+ "STRING");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXTypeLiteral
+entryRuleXTypeLiteral returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXTypeLiteralRule()); }
+ iv_ruleXTypeLiteral=ruleXTypeLiteral
+ { $current=$iv_ruleXTypeLiteral.current; }
+ EOF
+;
+
+// Rule XTypeLiteral
+ruleXTypeLiteral returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0(),
+ $current);
+ }
+) otherlv_1='typeof'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1());
+ }
+ otherlv_2='('
+ {
+ newLeafNode(otherlv_2, grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2());
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXTypeLiteralRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0());
+ }
+ ruleQualifiedName {
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0());
+ }
+ lv_arrayDimensions_4_0=ruleArrayBrackets {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXTypeLiteralRule());
+ }
+ add(
+ $current,
+ "arrayDimensions",
+ lv_arrayDimensions_4_0,
+ "ArrayBrackets");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_5=')'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXThrowExpression
+entryRuleXThrowExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXThrowExpressionRule()); }
+ iv_ruleXThrowExpression=ruleXThrowExpression
+ { $current=$iv_ruleXThrowExpression.current; }
+ EOF
+;
+
+// Rule XThrowExpression
+ruleXThrowExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0(),
+ $current);
+ }
+) otherlv_1='throw'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
+ }
+ lv_expression_2_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXThrowExpressionRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_2_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXReturnExpression
+entryRuleXReturnExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXReturnExpressionRule()); }
+ iv_ruleXReturnExpression=ruleXReturnExpression
+ { $current=$iv_ruleXReturnExpression.current; }
+ EOF
+;
+
+// Rule XReturnExpression
+ruleXReturnExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0(),
+ $current);
+ }
+) otherlv_1='return'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1());
+ }
+((
+(
+ruleXExpression
+)
+)=>
+(
+ {
+ newCompositeNode(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
+ }
+ lv_expression_2_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXReturnExpressionRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_2_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleXTryCatchFinallyExpression
+entryRuleXTryCatchFinallyExpression returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionRule()); }
+ iv_ruleXTryCatchFinallyExpression=ruleXTryCatchFinallyExpression
+ { $current=$iv_ruleXTryCatchFinallyExpression.current; }
+ EOF
+;
+
+// Rule XTryCatchFinallyExpression
+ruleXTryCatchFinallyExpression returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0(),
+ $current);
+ }
+) otherlv_1='try'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
+ }
+ lv_expression_2_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_2_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)(((( 'catch'
+)=>
+(
+ {
+ newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0());
+ }
+ lv_catchClauses_3_0=ruleXCatchClause {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+ }
+ add(
+ $current,
+ "catchClauses",
+ lv_catchClauses_3_0,
+ "XCatchClause");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)+((( 'finally'
+)=> otherlv_4='finally'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0());
+ }
+ lv_finallyExpression_5_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+ }
+ set(
+ $current,
+ "finallyExpression",
+ lv_finallyExpression_5_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+ |( otherlv_6='finally'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0());
+ }
+ lv_finallyExpression_7_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+ }
+ set(
+ $current,
+ "finallyExpression",
+ lv_finallyExpression_7_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))))
+;
+
+
+
+
+
+// Entry rule entryRuleXCatchClause
+entryRuleXCatchClause returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXCatchClauseRule()); }
+ iv_ruleXCatchClause=ruleXCatchClause
+ { $current=$iv_ruleXCatchClause.current; }
+ EOF
+;
+
+// Rule XCatchClause
+ruleXCatchClause returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((( 'catch'
+)=> otherlv_0='catch'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getXCatchClauseAccess().getCatchKeyword_0());
+ }
+) otherlv_1='('
+ {
+ newLeafNode(otherlv_1, grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0());
+ }
+ lv_declaredParam_2_0=ruleFullJvmFormalParameter {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXCatchClauseRule());
+ }
+ set(
+ $current,
+ "declaredParam",
+ lv_declaredParam_2_0,
+ "FullJvmFormalParameter");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_3=')'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0());
+ }
+ lv_expression_4_0=ruleXExpression {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXCatchClauseRule());
+ }
+ set(
+ $current,
+ "expression",
+ lv_expression_4_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleQualifiedName
+entryRuleQualifiedName returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getQualifiedNameRule()); }
+ iv_ruleQualifiedName=ruleQualifiedName
+ { $current=$iv_ruleQualifiedName.current.getText(); }
+ EOF
+;
+
+// Rule QualifiedName
+ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0());
+ }
+ this_ValidID_0=ruleValidID {
+ $current.merge(this_ValidID_0);
+ }
+
+ {
+ afterParserOrEnumRuleCall();
+ }
+(((
+ '.'
+)=>
+ kw='.'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0());
+ }
+)
+ {
+ newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1());
+ }
+ this_ValidID_2=ruleValidID {
+ $current.merge(this_ValidID_2);
+ }
+
+ {
+ afterParserOrEnumRuleCall();
+ }
+)*)
+ ;
+
+
+
+
+
+// Entry rule entryRuleNumber
+entryRuleNumber returns [String current=null]
+ @init {
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+ }
+ :
+ { newCompositeNode(grammarAccess.getNumberRule()); }
+ iv_ruleNumber=ruleNumber
+ { $current=$iv_ruleNumber.current.getText(); }
+ EOF
+;
+finally {
+ myHiddenTokenState.restore();
+}
+
+// Rule Number
+ruleNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+ }
+ @after { leaveRule(); }:
+( this_HEX_0=RULE_HEX {
+ $current.merge(this_HEX_0);
+ }
+
+ {
+ newLeafNode(this_HEX_0, grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0());
+ }
+
+ |(( this_INT_1=RULE_INT {
+ $current.merge(this_INT_1);
+ }
+
+ {
+ newLeafNode(this_INT_1, grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0());
+ }
+
+ | this_DECIMAL_2=RULE_DECIMAL {
+ $current.merge(this_DECIMAL_2);
+ }
+
+ {
+ newLeafNode(this_DECIMAL_2, grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1());
+ }
+)(
+ kw='.'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0());
+ }
+( this_INT_4=RULE_INT {
+ $current.merge(this_INT_4);
+ }
+
+ {
+ newLeafNode(this_INT_4, grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0());
+ }
+
+ | this_DECIMAL_5=RULE_DECIMAL {
+ $current.merge(this_DECIMAL_5);
+ }
+
+ {
+ newLeafNode(this_DECIMAL_5, grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1());
+ }
+))?))
+ ;
+finally {
+ myHiddenTokenState.restore();
+}
+
+
+
+
+
+
+
+// Entry rule entryRuleJvmTypeReference
+entryRuleJvmTypeReference returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getJvmTypeReferenceRule()); }
+ iv_ruleJvmTypeReference=ruleJvmTypeReference
+ { $current=$iv_ruleJvmTypeReference.current; }
+ EOF
+;
+
+// Rule JvmTypeReference
+ruleJvmTypeReference returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0());
+ }
+ this_JvmParameterizedTypeReference_0=ruleJvmParameterizedTypeReference
+ {
+ $current = $this_JvmParameterizedTypeReference_0.current;
+ afterParserOrEnumRuleCall();
+ }
+((((
+) ruleArrayBrackets))=>((
+ {
+ $current = forceCreateModelElementAndSet(
+ grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0(),
+ $current);
+ }
+)
+ {
+ newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1());
+ }
+ruleArrayBrackets
+ {
+ afterParserOrEnumRuleCall();
+ }
+))*)
+ |
+ {
+ newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1());
+ }
+ this_XFunctionTypeRef_3=ruleXFunctionTypeRef
+ {
+ $current = $this_XFunctionTypeRef_3.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleArrayBrackets
+entryRuleArrayBrackets returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getArrayBracketsRule()); }
+ iv_ruleArrayBrackets=ruleArrayBrackets
+ { $current=$iv_ruleArrayBrackets.current.getText(); }
+ EOF
+;
+
+// Rule ArrayBrackets
+ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ kw='['
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0());
+ }
+
+ kw=']'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1());
+ }
+)
+ ;
+
+
+
+
+
+// Entry rule entryRuleXFunctionTypeRef
+entryRuleXFunctionTypeRef returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXFunctionTypeRefRule()); }
+ iv_ruleXFunctionTypeRef=ruleXFunctionTypeRef
+ { $current=$iv_ruleXFunctionTypeRef.current; }
+ EOF
+;
+
+// Rule XFunctionTypeRef
+ruleXFunctionTypeRef returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(( otherlv_0='('
+ {
+ newLeafNode(otherlv_0, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0());
+ }
+((
+(
+ {
+ newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0());
+ }
+ lv_paramTypes_1_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule());
+ }
+ add(
+ $current,
+ "paramTypes",
+ lv_paramTypes_1_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_2=','
+ {
+ newLeafNode(otherlv_2, grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0());
+ }
+ lv_paramTypes_3_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule());
+ }
+ add(
+ $current,
+ "paramTypes",
+ lv_paramTypes_3_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))*)? otherlv_4=')'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2());
+ }
+)? otherlv_5='=>'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0());
+ }
+ lv_returnType_6_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule());
+ }
+ set(
+ $current,
+ "returnType",
+ lv_returnType_6_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleJvmParameterizedTypeReference
+entryRuleJvmParameterizedTypeReference returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceRule()); }
+ iv_ruleJvmParameterizedTypeReference=ruleJvmParameterizedTypeReference
+ { $current=$iv_ruleJvmParameterizedTypeReference.current; }
+ EOF
+;
+
+// Rule JvmParameterizedTypeReference
+ruleJvmParameterizedTypeReference returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getJvmParameterizedTypeReferenceRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0());
+ }
+ ruleQualifiedName {
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)((( '<'
+)=> otherlv_1='<'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0());
+ }
+)(
+(
+ {
+ newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0());
+ }
+ lv_arguments_2_0=ruleJvmArgumentTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+ }
+ add(
+ $current,
+ "arguments",
+ lv_arguments_2_0,
+ "JvmArgumentTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)( otherlv_3=','
+ {
+ newLeafNode(otherlv_3, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0());
+ }
+ lv_arguments_4_0=ruleJvmArgumentTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+ }
+ add(
+ $current,
+ "arguments",
+ lv_arguments_4_0,
+ "JvmArgumentTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))* otherlv_5='>'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3());
+ }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleJvmArgumentTypeReference
+entryRuleJvmArgumentTypeReference returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceRule()); }
+ iv_ruleJvmArgumentTypeReference=ruleJvmArgumentTypeReference
+ { $current=$iv_ruleJvmArgumentTypeReference.current; }
+ EOF
+;
+
+// Rule JvmArgumentTypeReference
+ruleJvmArgumentTypeReference returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0());
+ }
+ this_JvmTypeReference_0=ruleJvmTypeReference
+ {
+ $current = $this_JvmTypeReference_0.current;
+ afterParserOrEnumRuleCall();
+ }
+
+ |
+ {
+ newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1());
+ }
+ this_JvmWildcardTypeReference_1=ruleJvmWildcardTypeReference
+ {
+ $current = $this_JvmWildcardTypeReference_1.current;
+ afterParserOrEnumRuleCall();
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleJvmWildcardTypeReference
+entryRuleJvmWildcardTypeReference returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceRule()); }
+ iv_ruleJvmWildcardTypeReference=ruleJvmWildcardTypeReference
+ { $current=$iv_ruleJvmWildcardTypeReference.current; }
+ EOF
+;
+
+// Rule JvmWildcardTypeReference
+ruleJvmWildcardTypeReference returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0(),
+ $current);
+ }
+) otherlv_1='?'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1());
+ }
+((
+(
+ {
+ newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0());
+ }
+ lv_constraints_2_0=ruleJvmUpperBound {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+ }
+ add(
+ $current,
+ "constraints",
+ lv_constraints_2_0,
+ "JvmUpperBound");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0());
+ }
+ lv_constraints_3_0=ruleJvmLowerBound {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+ }
+ add(
+ $current,
+ "constraints",
+ lv_constraints_3_0,
+ "JvmLowerBound");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleJvmUpperBound
+entryRuleJvmUpperBound returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getJvmUpperBoundRule()); }
+ iv_ruleJvmUpperBound=ruleJvmUpperBound
+ { $current=$iv_ruleJvmUpperBound.current; }
+ EOF
+;
+
+// Rule JvmUpperBound
+ruleJvmUpperBound returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='extends'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+ }
+ lv_typeReference_1_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getJvmUpperBoundRule());
+ }
+ set(
+ $current,
+ "typeReference",
+ lv_typeReference_1_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleJvmUpperBoundAnded
+entryRuleJvmUpperBoundAnded returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getJvmUpperBoundAndedRule()); }
+ iv_ruleJvmUpperBoundAnded=ruleJvmUpperBoundAnded
+ { $current=$iv_ruleJvmUpperBoundAnded.current; }
+ EOF
+;
+
+// Rule JvmUpperBoundAnded
+ruleJvmUpperBoundAnded returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='&'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+ }
+ lv_typeReference_1_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getJvmUpperBoundAndedRule());
+ }
+ set(
+ $current,
+ "typeReference",
+ lv_typeReference_1_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleJvmLowerBound
+entryRuleJvmLowerBound returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getJvmLowerBoundRule()); }
+ iv_ruleJvmLowerBound=ruleJvmLowerBound
+ { $current=$iv_ruleJvmLowerBound.current; }
+ EOF
+;
+
+// Rule JvmLowerBound
+ruleJvmLowerBound returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='super'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+ }
+ lv_typeReference_1_0=ruleJvmTypeReference {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getJvmLowerBoundRule());
+ }
+ set(
+ $current,
+ "typeReference",
+ lv_typeReference_1_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))
+;
+
+
+
+
+
+
+
+// Entry rule entryRuleQualifiedNameWithWildcard
+entryRuleQualifiedNameWithWildcard returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule()); }
+ iv_ruleQualifiedNameWithWildcard=ruleQualifiedNameWithWildcard
+ { $current=$iv_ruleQualifiedNameWithWildcard.current.getText(); }
+ EOF
+;
+
+// Rule QualifiedNameWithWildcard
+ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+ {
+ newCompositeNode(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0());
+ }
+ this_QualifiedName_0=ruleQualifiedName {
+ $current.merge(this_QualifiedName_0);
+ }
+
+ {
+ afterParserOrEnumRuleCall();
+ }
+
+ kw='.'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1());
+ }
+
+ kw='*'
+ {
+ $current.merge(kw);
+ newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2());
+ }
+)
+ ;
+
+
+
+
+
+// Entry rule entryRuleValidID
+entryRuleValidID returns [String current=null]
+ :
+ { newCompositeNode(grammarAccess.getValidIDRule()); }
+ iv_ruleValidID=ruleValidID
+ { $current=$iv_ruleValidID.current.getText(); }
+ EOF
+;
+
+// Rule ValidID
+ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+ this_ID_0=RULE_ID {
+ $current.merge(this_ID_0);
+ }
+
+ {
+ newLeafNode(this_ID_0, grammarAccess.getValidIDAccess().getIDTerminalRuleCall());
+ }
+
+ ;
+
+
+
+
+
+// Entry rule entryRuleXImportSection
+entryRuleXImportSection returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXImportSectionRule()); }
+ iv_ruleXImportSection=ruleXImportSection
+ { $current=$iv_ruleXImportSection.current; }
+ EOF
+;
+
+// Rule XImportSection
+ruleXImportSection returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+(
+(
+ {
+ newCompositeNode(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0());
+ }
+ lv_importDeclarations_0_0=ruleXImportDeclaration {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXImportSectionRule());
+ }
+ add(
+ $current,
+ "importDeclarations",
+ lv_importDeclarations_0_0,
+ "XImportDeclaration");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)+
+;
+
+
+
+
+
+// Entry rule entryRuleXImportDeclaration
+entryRuleXImportDeclaration returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getXImportDeclarationRule()); }
+ iv_ruleXImportDeclaration=ruleXImportDeclaration
+ { $current=$iv_ruleXImportDeclaration.current; }
+ EOF
+;
+
+// Rule XImportDeclaration
+ruleXImportDeclaration returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='import'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getXImportDeclarationAccess().getImportKeyword_0());
+ }
+(((
+(
+ lv_static_1_0= 'static'
+ {
+ newLeafNode(lv_static_1_0, grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXImportDeclarationRule());
+ }
+ setWithLastConsumed($current, "static", true, "static");
+ }
+
+)
+)(
+(
+ lv_extension_2_0= 'extension'
+ {
+ newLeafNode(lv_extension_2_0, grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0());
+ }
+
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXImportDeclarationRule());
+ }
+ setWithLastConsumed($current, "extension", true, "extension");
+ }
+
+)
+)?(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXImportDeclarationRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_0_2_0());
+ }
+ ruleQualifiedName {
+ afterParserOrEnumRuleCall();
+ }
+
+)
+) otherlv_4='.'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getXImportDeclarationAccess().getFullStopKeyword_1_0_3());
+ }
+ otherlv_5='*'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getXImportDeclarationAccess().getAsteriskKeyword_1_0_4());
+ }
+)
+ |(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getXImportDeclarationRule());
+ }
+ }
+ {
+ newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_1_0());
+ }
+ ruleQualifiedName {
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)
+ |(
+(
+ {
+ newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_2_0());
+ }
+ lv_importedNamespace_7_0=ruleQualifiedNameWithWildcard {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getXImportDeclarationRule());
+ }
+ set(
+ $current,
+ "importedNamespace",
+ lv_importedNamespace_7_0,
+ "QualifiedNameWithWildcard");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+))( otherlv_8=';'
+ {
+ newLeafNode(otherlv_8, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2());
+ }
+)?)
+;
+
+
+
+
+
+RULE_HEX : ('0x'|'0X') ('0'..'9'|'a'..'f'|'A'..'F'|'_')+ ('#' (('b'|'B') ('i'|'I')|('l'|'L')))?;
+
+RULE_INT : '0'..'9' ('0'..'9'|'_')*;
+
+RULE_DECIMAL : RULE_INT (('e'|'E') ('+'|'-')? RULE_INT)? (('b'|'B') ('i'|'I'|'d'|'D')|('l'|'L'|'d'|'D'|'f'|'F'))?;
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'$'|'_') ('a'..'z'|'A'..'Z'|'$'|'_'|'0'..'9')*;
+
+RULE_STRING : ('"' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'"')))* '"'|'\'' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.tokens b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.tokens
new file mode 100644
index 000000000..4b1fd450b
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.tokens
@@ -0,0 +1,185 @@
+RULE_ID=4
+T__29=29
+T__28=28
+T__27=27
+T__26=26
+T__25=25
+T__24=24
+T__23=23
+T__22=22
+RULE_ANY_OTHER=12
+T__21=21
+T__20=20
+T__93=93
+T__19=19
+T__94=94
+T__91=91
+RULE_HEX=6
+T__92=92
+T__16=16
+T__15=15
+T__90=90
+T__18=18
+T__17=17
+T__14=14
+T__13=13
+RULE_DECIMAL=8
+T__99=99
+T__98=98
+T__97=97
+T__96=96
+T__95=95
+T__80=80
+T__81=81
+T__82=82
+T__83=83
+T__85=85
+T__84=84
+T__87=87
+T__86=86
+T__89=89
+T__88=88
+RULE_ML_COMMENT=9
+RULE_STRING=5
+T__71=71
+T__72=72
+T__70=70
+T__76=76
+T__75=75
+T__74=74
+T__73=73
+T__79=79
+T__78=78
+T__77=77
+T__68=68
+T__69=69
+T__66=66
+T__67=67
+T__64=64
+T__65=65
+T__62=62
+T__63=63
+T__61=61
+T__60=60
+T__55=55
+T__56=56
+T__57=57
+T__58=58
+T__51=51
+T__52=52
+T__53=53
+T__54=54
+T__59=59
+RULE_INT=7
+T__50=50
+T__42=42
+T__43=43
+T__40=40
+T__41=41
+T__46=46
+T__47=47
+T__44=44
+T__45=45
+T__48=48
+T__49=49
+T__100=100
+RULE_SL_COMMENT=10
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+RULE_WS=11
+'instanceof'=46
+'#'=70
+'>='=47
+'text'=19
+'=='=42
+'/'=61
+'switch'=77
+'>'=49
+'||'=40
+'extension'=87
+'&&'=41
+';'=74
+'control'=28
+'return'=95
+'==='=44
+'<>'=54
+'for'=80
+'propertyDescriptionProvider'=22
+'?.'=67
+'+'=57
+'viewerContentProvider'=31
+'.'=65
+'viewcategory'=36
+'=>'=53
+'import'=86
+'?:'=55
+'static'=85
+'true'=91
+'viewpart'=33
+'catch'=98
+'else'=76
+'extends'=17
+'+='=38
+'{'=14
+'as'=64
+'?'=99
+'try'=96
+'var'=83
+'children'=32
+'if'=75
+'('=68
+':'=23
+'while'=81
+'featuresProvider'=24
+'-'=58
+'**'=60
+'formControlFactory'=27
+','=26
+'default'=78
+'viewname'=34
+'-='=39
+']'=72
+'..'=52
+'!'=63
+'finally'=97
+'|'=73
+'labelProvider'=18
+'..<'=51
+'new'=89
+'val'=84
+'null'=92
+'typeof'=93
+'module'=13
+'='=37
+'features'=25
+'<=>'=56
+'throw'=94
+'::'=66
+')'=69
+'%'=62
+'->'=21
+'super'=88
+'do'=82
+'target'=29
+'case'=79
+'parts'=15
+'}'=16
+'<='=48
+'!='=43
+'!=='=45
+'false'=90
+'<'=50
+'['=71
+'proposals'=30
+'*'=59
+'viewclass'=35
+'&'=100
+'image'=20
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDslLexer.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDslLexer.java
new file mode 100644
index 000000000..4b7b5c2d8
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDslLexer.java
@@ -0,0 +1,4185 @@
+package org.eclipse.emf.parsley.dsl.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalEmfParsleyDslLexer extends Lexer {
+ public static final int RULE_ID=4;
+ public static final int T__29=29;
+ public static final int T__28=28;
+ public static final int T__27=27;
+ public static final int T__26=26;
+ public static final int T__25=25;
+ public static final int T__24=24;
+ public static final int T__23=23;
+ public static final int T__22=22;
+ public static final int RULE_ANY_OTHER=12;
+ public static final int T__21=21;
+ public static final int T__20=20;
+ public static final int EOF=-1;
+ public static final int T__93=93;
+ public static final int T__19=19;
+ public static final int T__94=94;
+ public static final int T__91=91;
+ public static final int T__92=92;
+ public static final int RULE_HEX=6;
+ public static final int T__16=16;
+ public static final int T__90=90;
+ public static final int T__15=15;
+ public static final int T__18=18;
+ public static final int T__17=17;
+ public static final int T__14=14;
+ public static final int T__13=13;
+ public static final int RULE_DECIMAL=8;
+ public static final int T__99=99;
+ public static final int T__98=98;
+ public static final int T__97=97;
+ public static final int T__96=96;
+ public static final int T__95=95;
+ public static final int T__80=80;
+ public static final int T__81=81;
+ public static final int T__82=82;
+ public static final int T__83=83;
+ public static final int T__85=85;
+ public static final int T__84=84;
+ public static final int T__87=87;
+ public static final int T__86=86;
+ public static final int T__89=89;
+ public static final int T__88=88;
+ public static final int RULE_ML_COMMENT=9;
+ public static final int RULE_STRING=5;
+ public static final int T__71=71;
+ public static final int T__72=72;
+ public static final int T__70=70;
+ public static final int T__76=76;
+ public static final int T__75=75;
+ public static final int T__74=74;
+ public static final int T__73=73;
+ public static final int T__79=79;
+ public static final int T__78=78;
+ public static final int T__77=77;
+ public static final int T__68=68;
+ public static final int T__69=69;
+ public static final int T__66=66;
+ public static final int T__67=67;
+ public static final int T__64=64;
+ public static final int T__65=65;
+ public static final int T__62=62;
+ public static final int T__63=63;
+ public static final int T__61=61;
+ public static final int T__60=60;
+ public static final int T__55=55;
+ public static final int T__56=56;
+ public static final int T__57=57;
+ public static final int T__58=58;
+ public static final int T__51=51;
+ public static final int T__52=52;
+ public static final int T__53=53;
+ public static final int T__54=54;
+ public static final int T__59=59;
+ public static final int RULE_INT=7;
+ public static final int T__50=50;
+ public static final int T__42=42;
+ public static final int T__43=43;
+ public static final int T__40=40;
+ public static final int T__41=41;
+ public static final int T__46=46;
+ public static final int T__47=47;
+ public static final int T__44=44;
+ public static final int T__45=45;
+ public static final int T__48=48;
+ public static final int T__49=49;
+ public static final int T__100=100;
+ public static final int RULE_SL_COMMENT=10;
+ public static final int T__30=30;
+ public static final int T__31=31;
+ public static final int T__32=32;
+ public static final int T__33=33;
+ public static final int T__34=34;
+ public static final int T__35=35;
+ public static final int T__36=36;
+ public static final int T__37=37;
+ public static final int T__38=38;
+ public static final int T__39=39;
+ public static final int RULE_WS=11;
+
+ // delegates
+ // delegators
+
+ public InternalEmfParsleyDslLexer() {;}
+ public InternalEmfParsleyDslLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalEmfParsleyDslLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g"; }
+
+ // $ANTLR start "T__13"
+ public final void mT__13() throws RecognitionException {
+ try {
+ int _type = T__13;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:11:7: ( 'module' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:11:9: 'module'
+ {
+ match("module");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__13"
+
+ // $ANTLR start "T__14"
+ public final void mT__14() throws RecognitionException {
+ try {
+ int _type = T__14;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:12:7: ( '{' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:12:9: '{'
+ {
+ match('{');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__14"
+
+ // $ANTLR start "T__15"
+ public final void mT__15() throws RecognitionException {
+ try {
+ int _type = T__15;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:13:7: ( 'parts' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:13:9: 'parts'
+ {
+ match("parts");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__15"
+
+ // $ANTLR start "T__16"
+ public final void mT__16() throws RecognitionException {
+ try {
+ int _type = T__16;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:14:7: ( '}' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:14:9: '}'
+ {
+ match('}');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__16"
+
+ // $ANTLR start "T__17"
+ public final void mT__17() throws RecognitionException {
+ try {
+ int _type = T__17;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:15:7: ( 'extends' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:15:9: 'extends'
+ {
+ match("extends");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__17"
+
+ // $ANTLR start "T__18"
+ public final void mT__18() throws RecognitionException {
+ try {
+ int _type = T__18;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:16:7: ( 'labelProvider' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:16:9: 'labelProvider'
+ {
+ match("labelProvider");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__18"
+
+ // $ANTLR start "T__19"
+ public final void mT__19() throws RecognitionException {
+ try {
+ int _type = T__19;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:17:7: ( 'text' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:17:9: 'text'
+ {
+ match("text");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__19"
+
+ // $ANTLR start "T__20"
+ public final void mT__20() throws RecognitionException {
+ try {
+ int _type = T__20;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:18:7: ( 'image' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:18:9: 'image'
+ {
+ match("image");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__20"
+
+ // $ANTLR start "T__21"
+ public final void mT__21() throws RecognitionException {
+ try {
+ int _type = T__21;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:19:7: ( '->' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:19:9: '->'
+ {
+ match("->");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__21"
+
+ // $ANTLR start "T__22"
+ public final void mT__22() throws RecognitionException {
+ try {
+ int _type = T__22;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:20:7: ( 'propertyDescriptionProvider' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:20:9: 'propertyDescriptionProvider'
+ {
+ match("propertyDescriptionProvider");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__22"
+
+ // $ANTLR start "T__23"
+ public final void mT__23() throws RecognitionException {
+ try {
+ int _type = T__23;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:21:7: ( ':' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:21:9: ':'
+ {
+ match(':');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__23"
+
+ // $ANTLR start "T__24"
+ public final void mT__24() throws RecognitionException {
+ try {
+ int _type = T__24;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:22:7: ( 'featuresProvider' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:22:9: 'featuresProvider'
+ {
+ match("featuresProvider");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__24"
+
+ // $ANTLR start "T__25"
+ public final void mT__25() throws RecognitionException {
+ try {
+ int _type = T__25;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:23:7: ( 'features' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:23:9: 'features'
+ {
+ match("features");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__25"
+
+ // $ANTLR start "T__26"
+ public final void mT__26() throws RecognitionException {
+ try {
+ int _type = T__26;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:24:7: ( ',' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:24:9: ','
+ {
+ match(',');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__26"
+
+ // $ANTLR start "T__27"
+ public final void mT__27() throws RecognitionException {
+ try {
+ int _type = T__27;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:25:7: ( 'formControlFactory' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:25:9: 'formControlFactory'
+ {
+ match("formControlFactory");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__27"
+
+ // $ANTLR start "T__28"
+ public final void mT__28() throws RecognitionException {
+ try {
+ int _type = T__28;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:26:7: ( 'control' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:26:9: 'control'
+ {
+ match("control");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__28"
+
+ // $ANTLR start "T__29"
+ public final void mT__29() throws RecognitionException {
+ try {
+ int _type = T__29;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:27:7: ( 'target' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:27:9: 'target'
+ {
+ match("target");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__29"
+
+ // $ANTLR start "T__30"
+ public final void mT__30() throws RecognitionException {
+ try {
+ int _type = T__30;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:28:7: ( 'proposals' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:28:9: 'proposals'
+ {
+ match("proposals");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__30"
+
+ // $ANTLR start "T__31"
+ public final void mT__31() throws RecognitionException {
+ try {
+ int _type = T__31;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:29:7: ( 'viewerContentProvider' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:29:9: 'viewerContentProvider'
+ {
+ match("viewerContentProvider");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__31"
+
+ // $ANTLR start "T__32"
+ public final void mT__32() throws RecognitionException {
+ try {
+ int _type = T__32;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:30:7: ( 'children' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:30:9: 'children'
+ {
+ match("children");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__32"
+
+ // $ANTLR start "T__33"
+ public final void mT__33() throws RecognitionException {
+ try {
+ int _type = T__33;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:31:7: ( 'viewpart' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:31:9: 'viewpart'
+ {
+ match("viewpart");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__33"
+
+ // $ANTLR start "T__34"
+ public final void mT__34() throws RecognitionException {
+ try {
+ int _type = T__34;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:32:7: ( 'viewname' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:32:9: 'viewname'
+ {
+ match("viewname");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__34"
+
+ // $ANTLR start "T__35"
+ public final void mT__35() throws RecognitionException {
+ try {
+ int _type = T__35;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:33:7: ( 'viewclass' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:33:9: 'viewclass'
+ {
+ match("viewclass");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__35"
+
+ // $ANTLR start "T__36"
+ public final void mT__36() throws RecognitionException {
+ try {
+ int _type = T__36;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:34:7: ( 'viewcategory' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:34:9: 'viewcategory'
+ {
+ match("viewcategory");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__36"
+
+ // $ANTLR start "T__37"
+ public final void mT__37() throws RecognitionException {
+ try {
+ int _type = T__37;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:35:7: ( '=' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:35:9: '='
+ {
+ match('=');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__37"
+
+ // $ANTLR start "T__38"
+ public final void mT__38() throws RecognitionException {
+ try {
+ int _type = T__38;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:36:7: ( '+=' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:36:9: '+='
+ {
+ match("+=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__38"
+
+ // $ANTLR start "T__39"
+ public final void mT__39() throws RecognitionException {
+ try {
+ int _type = T__39;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:37:7: ( '-=' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:37:9: '-='
+ {
+ match("-=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__39"
+
+ // $ANTLR start "T__40"
+ public final void mT__40() throws RecognitionException {
+ try {
+ int _type = T__40;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:38:7: ( '||' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:38:9: '||'
+ {
+ match("||");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__40"
+
+ // $ANTLR start "T__41"
+ public final void mT__41() throws RecognitionException {
+ try {
+ int _type = T__41;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:39:7: ( '&&' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:39:9: '&&'
+ {
+ match("&&");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__41"
+
+ // $ANTLR start "T__42"
+ public final void mT__42() throws RecognitionException {
+ try {
+ int _type = T__42;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:40:7: ( '==' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:40:9: '=='
+ {
+ match("==");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__42"
+
+ // $ANTLR start "T__43"
+ public final void mT__43() throws RecognitionException {
+ try {
+ int _type = T__43;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:41:7: ( '!=' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:41:9: '!='
+ {
+ match("!=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__43"
+
+ // $ANTLR start "T__44"
+ public final void mT__44() throws RecognitionException {
+ try {
+ int _type = T__44;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:42:7: ( '===' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:42:9: '==='
+ {
+ match("===");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__44"
+
+ // $ANTLR start "T__45"
+ public final void mT__45() throws RecognitionException {
+ try {
+ int _type = T__45;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:43:7: ( '!==' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:43:9: '!=='
+ {
+ match("!==");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__45"
+
+ // $ANTLR start "T__46"
+ public final void mT__46() throws RecognitionException {
+ try {
+ int _type = T__46;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:44:7: ( 'instanceof' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:44:9: 'instanceof'
+ {
+ match("instanceof");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__46"
+
+ // $ANTLR start "T__47"
+ public final void mT__47() throws RecognitionException {
+ try {
+ int _type = T__47;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:45:7: ( '>=' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:45:9: '>='
+ {
+ match(">=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__47"
+
+ // $ANTLR start "T__48"
+ public final void mT__48() throws RecognitionException {
+ try {
+ int _type = T__48;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:46:7: ( '<=' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:46:9: '<='
+ {
+ match("<=");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__48"
+
+ // $ANTLR start "T__49"
+ public final void mT__49() throws RecognitionException {
+ try {
+ int _type = T__49;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:47:7: ( '>' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:47:9: '>'
+ {
+ match('>');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__49"
+
+ // $ANTLR start "T__50"
+ public final void mT__50() throws RecognitionException {
+ try {
+ int _type = T__50;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:48:7: ( '<' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:48:9: '<'
+ {
+ match('<');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__50"
+
+ // $ANTLR start "T__51"
+ public final void mT__51() throws RecognitionException {
+ try {
+ int _type = T__51;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:49:7: ( '..<' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:49:9: '..<'
+ {
+ match("..<");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__51"
+
+ // $ANTLR start "T__52"
+ public final void mT__52() throws RecognitionException {
+ try {
+ int _type = T__52;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:50:7: ( '..' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:50:9: '..'
+ {
+ match("..");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__52"
+
+ // $ANTLR start "T__53"
+ public final void mT__53() throws RecognitionException {
+ try {
+ int _type = T__53;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:51:7: ( '=>' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:51:9: '=>'
+ {
+ match("=>");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__53"
+
+ // $ANTLR start "T__54"
+ public final void mT__54() throws RecognitionException {
+ try {
+ int _type = T__54;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:52:7: ( '<>' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:52:9: '<>'
+ {
+ match("<>");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__54"
+
+ // $ANTLR start "T__55"
+ public final void mT__55() throws RecognitionException {
+ try {
+ int _type = T__55;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:53:7: ( '?:' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:53:9: '?:'
+ {
+ match("?:");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__55"
+
+ // $ANTLR start "T__56"
+ public final void mT__56() throws RecognitionException {
+ try {
+ int _type = T__56;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:54:7: ( '<=>' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:54:9: '<=>'
+ {
+ match("<=>");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__56"
+
+ // $ANTLR start "T__57"
+ public final void mT__57() throws RecognitionException {
+ try {
+ int _type = T__57;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:55:7: ( '+' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:55:9: '+'
+ {
+ match('+');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__57"
+
+ // $ANTLR start "T__58"
+ public final void mT__58() throws RecognitionException {
+ try {
+ int _type = T__58;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:56:7: ( '-' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:56:9: '-'
+ {
+ match('-');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__58"
+
+ // $ANTLR start "T__59"
+ public final void mT__59() throws RecognitionException {
+ try {
+ int _type = T__59;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:57:7: ( '*' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:57:9: '*'
+ {
+ match('*');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__59"
+
+ // $ANTLR start "T__60"
+ public final void mT__60() throws RecognitionException {
+ try {
+ int _type = T__60;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:58:7: ( '**' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:58:9: '**'
+ {
+ match("**");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__60"
+
+ // $ANTLR start "T__61"
+ public final void mT__61() throws RecognitionException {
+ try {
+ int _type = T__61;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:59:7: ( '/' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:59:9: '/'
+ {
+ match('/');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__61"
+
+ // $ANTLR start "T__62"
+ public final void mT__62() throws RecognitionException {
+ try {
+ int _type = T__62;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:60:7: ( '%' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:60:9: '%'
+ {
+ match('%');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__62"
+
+ // $ANTLR start "T__63"
+ public final void mT__63() throws RecognitionException {
+ try {
+ int _type = T__63;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:61:7: ( '!' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:61:9: '!'
+ {
+ match('!');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__63"
+
+ // $ANTLR start "T__64"
+ public final void mT__64() throws RecognitionException {
+ try {
+ int _type = T__64;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:62:7: ( 'as' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:62:9: 'as'
+ {
+ match("as");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__64"
+
+ // $ANTLR start "T__65"
+ public final void mT__65() throws RecognitionException {
+ try {
+ int _type = T__65;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:63:7: ( '.' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:63:9: '.'
+ {
+ match('.');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__65"
+
+ // $ANTLR start "T__66"
+ public final void mT__66() throws RecognitionException {
+ try {
+ int _type = T__66;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:64:7: ( '::' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:64:9: '::'
+ {
+ match("::");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__66"
+
+ // $ANTLR start "T__67"
+ public final void mT__67() throws RecognitionException {
+ try {
+ int _type = T__67;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:65:7: ( '?.' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:65:9: '?.'
+ {
+ match("?.");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__67"
+
+ // $ANTLR start "T__68"
+ public final void mT__68() throws RecognitionException {
+ try {
+ int _type = T__68;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:66:7: ( '(' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:66:9: '('
+ {
+ match('(');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__68"
+
+ // $ANTLR start "T__69"
+ public final void mT__69() throws RecognitionException {
+ try {
+ int _type = T__69;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:67:7: ( ')' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:67:9: ')'
+ {
+ match(')');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__69"
+
+ // $ANTLR start "T__70"
+ public final void mT__70() throws RecognitionException {
+ try {
+ int _type = T__70;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:68:7: ( '#' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:68:9: '#'
+ {
+ match('#');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__70"
+
+ // $ANTLR start "T__71"
+ public final void mT__71() throws RecognitionException {
+ try {
+ int _type = T__71;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:69:7: ( '[' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:69:9: '['
+ {
+ match('[');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__71"
+
+ // $ANTLR start "T__72"
+ public final void mT__72() throws RecognitionException {
+ try {
+ int _type = T__72;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:70:7: ( ']' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:70:9: ']'
+ {
+ match(']');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__72"
+
+ // $ANTLR start "T__73"
+ public final void mT__73() throws RecognitionException {
+ try {
+ int _type = T__73;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:71:7: ( '|' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:71:9: '|'
+ {
+ match('|');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__73"
+
+ // $ANTLR start "T__74"
+ public final void mT__74() throws RecognitionException {
+ try {
+ int _type = T__74;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:72:7: ( ';' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:72:9: ';'
+ {
+ match(';');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__74"
+
+ // $ANTLR start "T__75"
+ public final void mT__75() throws RecognitionException {
+ try {
+ int _type = T__75;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:73:7: ( 'if' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:73:9: 'if'
+ {
+ match("if");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__75"
+
+ // $ANTLR start "T__76"
+ public final void mT__76() throws RecognitionException {
+ try {
+ int _type = T__76;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:74:7: ( 'else' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:74:9: 'else'
+ {
+ match("else");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__76"
+
+ // $ANTLR start "T__77"
+ public final void mT__77() throws RecognitionException {
+ try {
+ int _type = T__77;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:75:7: ( 'switch' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:75:9: 'switch'
+ {
+ match("switch");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__77"
+
+ // $ANTLR start "T__78"
+ public final void mT__78() throws RecognitionException {
+ try {
+ int _type = T__78;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:76:7: ( 'default' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:76:9: 'default'
+ {
+ match("default");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__78"
+
+ // $ANTLR start "T__79"
+ public final void mT__79() throws RecognitionException {
+ try {
+ int _type = T__79;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:77:7: ( 'case' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:77:9: 'case'
+ {
+ match("case");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__79"
+
+ // $ANTLR start "T__80"
+ public final void mT__80() throws RecognitionException {
+ try {
+ int _type = T__80;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:78:7: ( 'for' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:78:9: 'for'
+ {
+ match("for");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__80"
+
+ // $ANTLR start "T__81"
+ public final void mT__81() throws RecognitionException {
+ try {
+ int _type = T__81;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:79:7: ( 'while' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:79:9: 'while'
+ {
+ match("while");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__81"
+
+ // $ANTLR start "T__82"
+ public final void mT__82() throws RecognitionException {
+ try {
+ int _type = T__82;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:80:7: ( 'do' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:80:9: 'do'
+ {
+ match("do");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__82"
+
+ // $ANTLR start "T__83"
+ public final void mT__83() throws RecognitionException {
+ try {
+ int _type = T__83;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:81:7: ( 'var' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:81:9: 'var'
+ {
+ match("var");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__83"
+
+ // $ANTLR start "T__84"
+ public final void mT__84() throws RecognitionException {
+ try {
+ int _type = T__84;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:82:7: ( 'val' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:82:9: 'val'
+ {
+ match("val");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__84"
+
+ // $ANTLR start "T__85"
+ public final void mT__85() throws RecognitionException {
+ try {
+ int _type = T__85;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:83:7: ( 'static' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:83:9: 'static'
+ {
+ match("static");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__85"
+
+ // $ANTLR start "T__86"
+ public final void mT__86() throws RecognitionException {
+ try {
+ int _type = T__86;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:84:7: ( 'import' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:84:9: 'import'
+ {
+ match("import");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__86"
+
+ // $ANTLR start "T__87"
+ public final void mT__87() throws RecognitionException {
+ try {
+ int _type = T__87;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:85:7: ( 'extension' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:85:9: 'extension'
+ {
+ match("extension");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__87"
+
+ // $ANTLR start "T__88"
+ public final void mT__88() throws RecognitionException {
+ try {
+ int _type = T__88;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:86:7: ( 'super' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:86:9: 'super'
+ {
+ match("super");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__88"
+
+ // $ANTLR start "T__89"
+ public final void mT__89() throws RecognitionException {
+ try {
+ int _type = T__89;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:87:7: ( 'new' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:87:9: 'new'
+ {
+ match("new");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__89"
+
+ // $ANTLR start "T__90"
+ public final void mT__90() throws RecognitionException {
+ try {
+ int _type = T__90;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:88:7: ( 'false' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:88:9: 'false'
+ {
+ match("false");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__90"
+
+ // $ANTLR start "T__91"
+ public final void mT__91() throws RecognitionException {
+ try {
+ int _type = T__91;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:89:7: ( 'true' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:89:9: 'true'
+ {
+ match("true");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__91"
+
+ // $ANTLR start "T__92"
+ public final void mT__92() throws RecognitionException {
+ try {
+ int _type = T__92;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:90:7: ( 'null' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:90:9: 'null'
+ {
+ match("null");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__92"
+
+ // $ANTLR start "T__93"
+ public final void mT__93() throws RecognitionException {
+ try {
+ int _type = T__93;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:91:7: ( 'typeof' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:91:9: 'typeof'
+ {
+ match("typeof");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__93"
+
+ // $ANTLR start "T__94"
+ public final void mT__94() throws RecognitionException {
+ try {
+ int _type = T__94;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:92:7: ( 'throw' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:92:9: 'throw'
+ {
+ match("throw");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__94"
+
+ // $ANTLR start "T__95"
+ public final void mT__95() throws RecognitionException {
+ try {
+ int _type = T__95;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:93:7: ( 'return' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:93:9: 'return'
+ {
+ match("return");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__95"
+
+ // $ANTLR start "T__96"
+ public final void mT__96() throws RecognitionException {
+ try {
+ int _type = T__96;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:94:7: ( 'try' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:94:9: 'try'
+ {
+ match("try");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__96"
+
+ // $ANTLR start "T__97"
+ public final void mT__97() throws RecognitionException {
+ try {
+ int _type = T__97;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:95:7: ( 'finally' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:95:9: 'finally'
+ {
+ match("finally");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__97"
+
+ // $ANTLR start "T__98"
+ public final void mT__98() throws RecognitionException {
+ try {
+ int _type = T__98;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:96:7: ( 'catch' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:96:9: 'catch'
+ {
+ match("catch");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__98"
+
+ // $ANTLR start "T__99"
+ public final void mT__99() throws RecognitionException {
+ try {
+ int _type = T__99;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:97:7: ( '?' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:97:9: '?'
+ {
+ match('?');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__99"
+
+ // $ANTLR start "T__100"
+ public final void mT__100() throws RecognitionException {
+ try {
+ int _type = T__100;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:98:8: ( '&' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:98:10: '&'
+ {
+ match('&');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__100"
+
+ // $ANTLR start "RULE_HEX"
+ public final void mRULE_HEX() throws RecognitionException {
+ try {
+ int _type = RULE_HEX;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6788:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6788:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6788:12: ( '0x' | '0X' )
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='0') ) {
+ int LA1_1 = input.LA(2);
+
+ if ( (LA1_1=='x') ) {
+ alt1=1;
+ }
+ else if ( (LA1_1=='X') ) {
+ alt1=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 1, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 1, 0, input);
+
+ throw nvae;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6788:13: '0x'
+ {
+ match("0x");
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6788:18: '0X'
+ {
+ match("0X");
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6788:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+ int cnt2=0;
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='F')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='f')) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='f') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ if ( cnt2 >= 1 ) break loop2;
+ EarlyExitException eee =
+ new EarlyExitException(2, input);
+ throw eee;
+ }
+ cnt2++;
+ } while (true);
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6788:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0=='#') ) {
+ alt4=1;
+ }
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6788:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+ {
+ match('#');
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6788:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0=='B'||LA3_0=='b') ) {
+ alt3=1;
+ }
+ else if ( (LA3_0=='L'||LA3_0=='l') ) {
+ alt3=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 3, 0, input);
+
+ throw nvae;
+ }
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6788:64: ( 'b' | 'B' ) ( 'i' | 'I' )
+ {
+ if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ if ( input.LA(1)=='I'||input.LA(1)=='i' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6788:84: ( 'l' | 'L' )
+ {
+ if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_HEX"
+
+ // $ANTLR start "RULE_INT"
+ public final void mRULE_INT() throws RecognitionException {
+ try {
+ int _type = RULE_INT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6790:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6790:12: '0' .. '9' ( '0' .. '9' | '_' )*
+ {
+ matchRange('0','9');
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6790:21: ( '0' .. '9' | '_' )*
+ loop5:
+ do {
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( ((LA5_0>='0' && LA5_0<='9')||LA5_0=='_') ) {
+ alt5=1;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||input.LA(1)=='_' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop5;
+ }
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INT"
+
+ // $ANTLR start "RULE_DECIMAL"
+ public final void mRULE_DECIMAL() throws RecognitionException {
+ try {
+ int _type = RULE_DECIMAL;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6792:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6792:16: RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+ {
+ mRULE_INT();
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6792:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0=='E'||LA7_0=='e') ) {
+ alt7=1;
+ }
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6792:26: ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT
+ {
+ if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6792:36: ( '+' | '-' )?
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0=='+'||LA6_0=='-') ) {
+ alt6=1;
+ }
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:
+ {
+ if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ }
+
+ mRULE_INT();
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6792:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+ int alt8=3;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0=='B'||LA8_0=='b') ) {
+ alt8=1;
+ }
+ else if ( (LA8_0=='D'||LA8_0=='F'||LA8_0=='L'||LA8_0=='d'||LA8_0=='f'||LA8_0=='l') ) {
+ alt8=2;
+ }
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6792:59: ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' )
+ {
+ if ( input.LA(1)=='B'||input.LA(1)=='b' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ if ( input.LA(1)=='D'||input.LA(1)=='I'||input.LA(1)=='d'||input.LA(1)=='i' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6792:87: ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' )
+ {
+ if ( input.LA(1)=='D'||input.LA(1)=='F'||input.LA(1)=='L'||input.LA(1)=='d'||input.LA(1)=='f'||input.LA(1)=='l' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_DECIMAL"
+
+ // $ANTLR start "RULE_ID"
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6794:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6794:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6794:11: ( '^' )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='^') ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6794:11: '^'
+ {
+ match('^');
+
+ }
+ break;
+
+ }
+
+ if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6794:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+ loop10:
+ do {
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0=='$'||(LA10_0>='0' && LA10_0<='9')||(LA10_0>='A' && LA10_0<='Z')||LA10_0=='_'||(LA10_0>='a' && LA10_0<='z')) ) {
+ alt10=1;
+ }
+
+
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:
+ {
+ if ( input.LA(1)=='$'||(input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop10;
+ }
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ID"
+
+ // $ANTLR start "RULE_STRING"
+ public final void mRULE_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_STRING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6796:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6796:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6796:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( (LA13_0=='\"') ) {
+ alt13=1;
+ }
+ else if ( (LA13_0=='\'') ) {
+ alt13=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 13, 0, input);
+
+ throw nvae;
+ }
+ switch (alt13) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6796:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6796:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
+ loop11:
+ do {
+ int alt11=3;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0=='\\') ) {
+ alt11=1;
+ }
+ else if ( ((LA11_0>='\u0000' && LA11_0<='!')||(LA11_0>='#' && LA11_0<='[')||(LA11_0>=']' && LA11_0<='\uFFFF')) ) {
+ alt11=2;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6796:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6796:66: ~ ( ( '\\\\' | '\"' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop11;
+ }
+ } while (true);
+
+ match('\"');
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6796:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ {
+ match('\'');
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6796:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
+ loop12:
+ do {
+ int alt12=3;
+ int LA12_0 = input.LA(1);
+
+ if ( (LA12_0=='\\') ) {
+ alt12=1;
+ }
+ else if ( ((LA12_0>='\u0000' && LA12_0<='&')||(LA12_0>='(' && LA12_0<='[')||(LA12_0>=']' && LA12_0<='\uFFFF')) ) {
+ alt12=2;
+ }
+
+
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6796:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6796:137: ~ ( ( '\\\\' | '\\'' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop12;
+ }
+ } while (true);
+
+ match('\'');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_STRING"
+
+ // $ANTLR start "RULE_ML_COMMENT"
+ public final void mRULE_ML_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_ML_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6798:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6798:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6798:24: ( options {greedy=false; } : . )*
+ loop14:
+ do {
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0=='*') ) {
+ int LA14_1 = input.LA(2);
+
+ if ( (LA14_1=='/') ) {
+ alt14=2;
+ }
+ else if ( ((LA14_1>='\u0000' && LA14_1<='.')||(LA14_1>='0' && LA14_1<='\uFFFF')) ) {
+ alt14=1;
+ }
+
+
+ }
+ else if ( ((LA14_0>='\u0000' && LA14_0<=')')||(LA14_0>='+' && LA14_0<='\uFFFF')) ) {
+ alt14=1;
+ }
+
+
+ switch (alt14) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6798:52: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop14;
+ }
+ } while (true);
+
+ match("*/");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ML_COMMENT"
+
+ // $ANTLR start "RULE_SL_COMMENT"
+ public final void mRULE_SL_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_SL_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6800:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6800:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6800:24: (~ ( ( '\\n' | '\\r' ) ) )*
+ loop15:
+ do {
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+
+ if ( ((LA15_0>='\u0000' && LA15_0<='\t')||(LA15_0>='\u000B' && LA15_0<='\f')||(LA15_0>='\u000E' && LA15_0<='\uFFFF')) ) {
+ alt15=1;
+ }
+
+
+ switch (alt15) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6800:24: ~ ( ( '\\n' | '\\r' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop15;
+ }
+ } while (true);
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6800:40: ( ( '\\r' )? '\\n' )?
+ int alt17=2;
+ int LA17_0 = input.LA(1);
+
+ if ( (LA17_0=='\n'||LA17_0=='\r') ) {
+ alt17=1;
+ }
+ switch (alt17) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6800:41: ( '\\r' )? '\\n'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6800:41: ( '\\r' )?
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( (LA16_0=='\r') ) {
+ alt16=1;
+ }
+ switch (alt16) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6800:41: '\\r'
+ {
+ match('\r');
+
+ }
+ break;
+
+ }
+
+ match('\n');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SL_COMMENT"
+
+ // $ANTLR start "RULE_WS"
+ public final void mRULE_WS() throws RecognitionException {
+ try {
+ int _type = RULE_WS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6802:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6802:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6802:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ int cnt18=0;
+ loop18:
+ do {
+ int alt18=2;
+ int LA18_0 = input.LA(1);
+
+ if ( ((LA18_0>='\t' && LA18_0<='\n')||LA18_0=='\r'||LA18_0==' ') ) {
+ alt18=1;
+ }
+
+
+ switch (alt18) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:
+ {
+ if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ if ( cnt18 >= 1 ) break loop18;
+ EarlyExitException eee =
+ new EarlyExitException(18, input);
+ throw eee;
+ }
+ cnt18++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_WS"
+
+ // $ANTLR start "RULE_ANY_OTHER"
+ public final void mRULE_ANY_OTHER() throws RecognitionException {
+ try {
+ int _type = RULE_ANY_OTHER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6804:16: ( . )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6804:18: .
+ {
+ matchAny();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ANY_OTHER"
+
+ public void mTokens() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+ int alt19=97;
+ alt19 = dfa19.predict(input);
+ switch (alt19) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:10: T__13
+ {
+ mT__13();
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:16: T__14
+ {
+ mT__14();
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:22: T__15
+ {
+ mT__15();
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:28: T__16
+ {
+ mT__16();
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:34: T__17
+ {
+ mT__17();
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:40: T__18
+ {
+ mT__18();
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:46: T__19
+ {
+ mT__19();
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:52: T__20
+ {
+ mT__20();
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:58: T__21
+ {
+ mT__21();
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:64: T__22
+ {
+ mT__22();
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:70: T__23
+ {
+ mT__23();
+
+ }
+ break;
+ case 12 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:76: T__24
+ {
+ mT__24();
+
+ }
+ break;
+ case 13 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:82: T__25
+ {
+ mT__25();
+
+ }
+ break;
+ case 14 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:88: T__26
+ {
+ mT__26();
+
+ }
+ break;
+ case 15 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:94: T__27
+ {
+ mT__27();
+
+ }
+ break;
+ case 16 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:100: T__28
+ {
+ mT__28();
+
+ }
+ break;
+ case 17 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:106: T__29
+ {
+ mT__29();
+
+ }
+ break;
+ case 18 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:112: T__30
+ {
+ mT__30();
+
+ }
+ break;
+ case 19 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:118: T__31
+ {
+ mT__31();
+
+ }
+ break;
+ case 20 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:124: T__32
+ {
+ mT__32();
+
+ }
+ break;
+ case 21 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:130: T__33
+ {
+ mT__33();
+
+ }
+ break;
+ case 22 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:136: T__34
+ {
+ mT__34();
+
+ }
+ break;
+ case 23 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:142: T__35
+ {
+ mT__35();
+
+ }
+ break;
+ case 24 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:148: T__36
+ {
+ mT__36();
+
+ }
+ break;
+ case 25 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:154: T__37
+ {
+ mT__37();
+
+ }
+ break;
+ case 26 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:160: T__38
+ {
+ mT__38();
+
+ }
+ break;
+ case 27 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:166: T__39
+ {
+ mT__39();
+
+ }
+ break;
+ case 28 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:172: T__40
+ {
+ mT__40();
+
+ }
+ break;
+ case 29 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:178: T__41
+ {
+ mT__41();
+
+ }
+ break;
+ case 30 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:184: T__42
+ {
+ mT__42();
+
+ }
+ break;
+ case 31 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:190: T__43
+ {
+ mT__43();
+
+ }
+ break;
+ case 32 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:196: T__44
+ {
+ mT__44();
+
+ }
+ break;
+ case 33 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:202: T__45
+ {
+ mT__45();
+
+ }
+ break;
+ case 34 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:208: T__46
+ {
+ mT__46();
+
+ }
+ break;
+ case 35 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:214: T__47
+ {
+ mT__47();
+
+ }
+ break;
+ case 36 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:220: T__48
+ {
+ mT__48();
+
+ }
+ break;
+ case 37 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:226: T__49
+ {
+ mT__49();
+
+ }
+ break;
+ case 38 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:232: T__50
+ {
+ mT__50();
+
+ }
+ break;
+ case 39 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:238: T__51
+ {
+ mT__51();
+
+ }
+ break;
+ case 40 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:244: T__52
+ {
+ mT__52();
+
+ }
+ break;
+ case 41 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:250: T__53
+ {
+ mT__53();
+
+ }
+ break;
+ case 42 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:256: T__54
+ {
+ mT__54();
+
+ }
+ break;
+ case 43 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:262: T__55
+ {
+ mT__55();
+
+ }
+ break;
+ case 44 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:268: T__56
+ {
+ mT__56();
+
+ }
+ break;
+ case 45 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:274: T__57
+ {
+ mT__57();
+
+ }
+ break;
+ case 46 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:280: T__58
+ {
+ mT__58();
+
+ }
+ break;
+ case 47 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:286: T__59
+ {
+ mT__59();
+
+ }
+ break;
+ case 48 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:292: T__60
+ {
+ mT__60();
+
+ }
+ break;
+ case 49 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:298: T__61
+ {
+ mT__61();
+
+ }
+ break;
+ case 50 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:304: T__62
+ {
+ mT__62();
+
+ }
+ break;
+ case 51 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:310: T__63
+ {
+ mT__63();
+
+ }
+ break;
+ case 52 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:316: T__64
+ {
+ mT__64();
+
+ }
+ break;
+ case 53 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:322: T__65
+ {
+ mT__65();
+
+ }
+ break;
+ case 54 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:328: T__66
+ {
+ mT__66();
+
+ }
+ break;
+ case 55 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:334: T__67
+ {
+ mT__67();
+
+ }
+ break;
+ case 56 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:340: T__68
+ {
+ mT__68();
+
+ }
+ break;
+ case 57 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:346: T__69
+ {
+ mT__69();
+
+ }
+ break;
+ case 58 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:352: T__70
+ {
+ mT__70();
+
+ }
+ break;
+ case 59 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:358: T__71
+ {
+ mT__71();
+
+ }
+ break;
+ case 60 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:364: T__72
+ {
+ mT__72();
+
+ }
+ break;
+ case 61 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:370: T__73
+ {
+ mT__73();
+
+ }
+ break;
+ case 62 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:376: T__74
+ {
+ mT__74();
+
+ }
+ break;
+ case 63 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:382: T__75
+ {
+ mT__75();
+
+ }
+ break;
+ case 64 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:388: T__76
+ {
+ mT__76();
+
+ }
+ break;
+ case 65 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:394: T__77
+ {
+ mT__77();
+
+ }
+ break;
+ case 66 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:400: T__78
+ {
+ mT__78();
+
+ }
+ break;
+ case 67 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:406: T__79
+ {
+ mT__79();
+
+ }
+ break;
+ case 68 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:412: T__80
+ {
+ mT__80();
+
+ }
+ break;
+ case 69 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:418: T__81
+ {
+ mT__81();
+
+ }
+ break;
+ case 70 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:424: T__82
+ {
+ mT__82();
+
+ }
+ break;
+ case 71 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:430: T__83
+ {
+ mT__83();
+
+ }
+ break;
+ case 72 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:436: T__84
+ {
+ mT__84();
+
+ }
+ break;
+ case 73 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:442: T__85
+ {
+ mT__85();
+
+ }
+ break;
+ case 74 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:448: T__86
+ {
+ mT__86();
+
+ }
+ break;
+ case 75 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:454: T__87
+ {
+ mT__87();
+
+ }
+ break;
+ case 76 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:460: T__88
+ {
+ mT__88();
+
+ }
+ break;
+ case 77 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:466: T__89
+ {
+ mT__89();
+
+ }
+ break;
+ case 78 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:472: T__90
+ {
+ mT__90();
+
+ }
+ break;
+ case 79 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:478: T__91
+ {
+ mT__91();
+
+ }
+ break;
+ case 80 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:484: T__92
+ {
+ mT__92();
+
+ }
+ break;
+ case 81 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:490: T__93
+ {
+ mT__93();
+
+ }
+ break;
+ case 82 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:496: T__94
+ {
+ mT__94();
+
+ }
+ break;
+ case 83 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:502: T__95
+ {
+ mT__95();
+
+ }
+ break;
+ case 84 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:508: T__96
+ {
+ mT__96();
+
+ }
+ break;
+ case 85 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:514: T__97
+ {
+ mT__97();
+
+ }
+ break;
+ case 86 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:520: T__98
+ {
+ mT__98();
+
+ }
+ break;
+ case 87 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:526: T__99
+ {
+ mT__99();
+
+ }
+ break;
+ case 88 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:532: T__100
+ {
+ mT__100();
+
+ }
+ break;
+ case 89 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:539: RULE_HEX
+ {
+ mRULE_HEX();
+
+ }
+ break;
+ case 90 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:548: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 91 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:557: RULE_DECIMAL
+ {
+ mRULE_DECIMAL();
+
+ }
+ break;
+ case 92 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:570: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 93 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:578: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 94 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:590: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 95 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:606: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 96 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:622: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 97 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1:630: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA19 dfa19 = new DFA19(this);
+ static final String DFA19_eotS =
+ "\1\uffff\1\60\1\uffff\1\60\1\uffff\4\60\1\102\1\104\1\60\1\uffff"+
+ "\2\60\1\121\1\123\1\125\1\127\1\131\1\133\1\136\1\140\1\143\1\145"+
+ "\1\150\1\uffff\1\60\6\uffff\5\60\2\174\1\56\1\uffff\2\56\2\uffff"+
+ "\1\60\2\uffff\2\60\1\uffff\12\60\1\u008f\5\uffff\4\60\1\uffff\5"+
+ "\60\1\u009c\10\uffff\1\u009e\3\uffff\1\u00a0\2\uffff\1\u00a2\12"+
+ "\uffff\1\u00a3\6\uffff\4\60\1\u00a8\4\60\1\uffff\1\174\4\uffff\11"+
+ "\60\1\u00b6\5\60\1\uffff\1\60\1\u00be\7\60\1\u00c6\1\u00c7\11\uffff"+
+ "\4\60\1\uffff\1\60\1\u00cd\6\60\1\u00d5\1\60\1\u00d7\1\60\1\u00d9"+
+ "\1\uffff\7\60\1\uffff\4\60\1\u00e5\2\60\2\uffff\5\60\1\uffff\1\u00f0"+
+ "\2\60\1\u00f3\3\60\1\uffff\1\60\1\uffff\1\60\1\uffff\1\60\1\u00fb"+
+ "\1\u00fc\4\60\1\u0101\3\60\1\uffff\1\u0105\6\60\1\u010d\1\60\1\u010f"+
+ "\1\uffff\1\60\1\u0111\1\uffff\5\60\1\u0117\1\u0118\2\uffff\1\u0119"+
+ "\3\60\1\uffff\3\60\1\uffff\5\60\1\u0125\1\u0126\1\uffff\1\60\1\uffff"+
+ "\1\u0128\1\uffff\2\60\1\u012b\2\60\3\uffff\3\60\1\u0131\1\u0132"+
+ "\6\60\2\uffff\1\u0139\1\uffff\2\60\1\uffff\3\60\1\u0140\1\60\2\uffff"+
+ "\1\u0142\1\60\1\u0144\1\u0145\2\60\1\uffff\1\60\1\u0149\1\u014a"+
+ "\3\60\1\uffff\1\60\1\uffff\1\60\2\uffff\1\u0150\2\60\2\uffff\1\60"+
+ "\1\u0154\3\60\1\uffff\3\60\1\uffff\11\60\1\u0164\1\60\1\u0166\3"+
+ "\60\1\uffff\1\60\1\uffff\10\60\1\u0173\3\60\1\uffff\3\60\1\u017a"+
+ "\2\60\1\uffff\4\60\1\u0181\1\60\1\uffff\4\60\1\u0187\1\uffff";
+ static final String DFA19_eofS =
+ "\u0188\uffff";
+ static final String DFA19_minS =
+ "\1\0\1\157\1\uffff\1\141\1\uffff\1\154\2\141\1\146\1\75\1\72\1\141"+
+ "\1\uffff\2\141\2\75\1\174\1\46\3\75\2\56\2\52\1\uffff\1\163\6\uffff"+
+ "\1\164\1\145\1\150\2\145\2\60\1\44\1\uffff\2\0\2\uffff\1\144\2\uffff"+
+ "\1\162\1\157\1\uffff\1\164\1\163\1\142\1\170\1\162\1\165\1\160\1"+
+ "\162\1\141\1\163\1\44\5\uffff\1\141\1\162\1\154\1\156\1\uffff\1"+
+ "\156\1\151\1\163\1\145\1\154\1\75\10\uffff\1\75\3\uffff\1\76\2\uffff"+
+ "\1\74\12\uffff\1\44\6\uffff\1\151\1\141\1\160\1\146\1\44\1\151\1"+
+ "\167\1\154\1\164\1\uffff\1\60\4\uffff\1\165\1\164\1\160\3\145\1"+
+ "\164\1\147\1\145\1\44\1\145\1\157\1\147\1\157\1\164\1\uffff\1\164"+
+ "\1\44\1\163\1\141\1\164\1\154\1\145\1\143\1\167\2\44\11\uffff\2"+
+ "\164\1\145\1\141\1\uffff\1\154\1\44\1\154\1\165\1\154\1\163\1\145"+
+ "\1\156\1\44\1\154\1\44\1\145\1\44\1\uffff\1\157\1\167\1\145\1\162"+
+ "\1\141\1\165\1\103\1\uffff\1\145\1\154\1\162\1\144\1\44\1\150\1"+
+ "\143\2\uffff\1\143\1\151\1\162\1\165\1\145\1\uffff\1\44\1\162\1"+
+ "\145\1\44\1\162\1\163\1\144\1\uffff\1\120\1\uffff\1\164\1\uffff"+
+ "\1\146\2\44\1\164\1\156\1\162\1\157\1\44\1\154\1\157\1\162\1\uffff"+
+ "\1\44\1\162\3\141\1\150\1\143\1\44\1\154\1\44\1\uffff\1\156\1\44"+
+ "\1\uffff\1\164\1\141\1\163\1\151\1\162\2\44\2\uffff\1\44\1\143\1"+
+ "\145\1\156\1\uffff\1\171\1\154\1\145\1\uffff\1\103\1\162\1\155\1"+
+ "\141\1\164\2\44\1\uffff\1\164\1\uffff\1\44\1\uffff\1\171\1\154\1"+
+ "\44\2\157\3\uffff\1\145\1\163\1\164\2\44\1\156\1\157\1\164\1\145"+
+ "\1\163\1\145\2\uffff\1\44\1\uffff\1\104\1\163\1\uffff\1\156\1\166"+
+ "\1\157\1\44\1\162\2\uffff\1\44\1\156\2\44\1\163\1\147\1\uffff\1"+
+ "\145\2\44\1\151\1\146\1\162\1\uffff\1\157\1\uffff\1\164\2\uffff"+
+ "\1\44\1\157\1\163\2\uffff\1\144\1\44\1\157\1\154\1\145\1\uffff\1"+
+ "\162\1\143\1\145\1\uffff\1\166\1\106\1\156\1\171\2\162\1\151\1\141"+
+ "\1\164\1\44\1\151\1\44\1\144\1\143\1\120\1\uffff\1\160\1\uffff\1"+
+ "\145\1\164\1\162\1\164\1\162\2\157\1\151\1\44\1\162\1\166\1\157"+
+ "\1\uffff\1\171\1\151\1\156\1\44\1\144\1\120\1\uffff\1\145\2\162"+
+ "\1\157\1\44\1\166\1\uffff\1\151\1\144\1\145\1\162\1\44\1\uffff";
+ static final String DFA19_maxS =
+ "\1\uffff\1\157\1\uffff\1\162\1\uffff\1\170\1\141\1\171\1\156\1\76"+
+ "\1\72\1\157\1\uffff\1\157\1\151\1\76\1\75\1\174\1\46\2\75\1\76\1"+
+ "\56\1\72\1\52\1\57\1\uffff\1\163\6\uffff\1\167\1\157\1\150\1\165"+
+ "\1\145\1\170\1\154\1\172\1\uffff\2\uffff\2\uffff\1\144\2\uffff\1"+
+ "\162\1\157\1\uffff\1\164\1\163\1\142\1\170\1\162\1\171\1\160\1\162"+
+ "\1\160\1\163\1\172\5\uffff\1\141\1\162\1\154\1\156\1\uffff\1\156"+
+ "\1\151\1\164\1\145\1\162\1\75\10\uffff\1\75\3\uffff\1\76\2\uffff"+
+ "\1\74\12\uffff\1\172\6\uffff\1\151\1\141\1\160\1\146\1\172\1\151"+
+ "\1\167\1\154\1\164\1\uffff\1\154\4\uffff\1\165\1\164\1\160\3\145"+
+ "\1\164\1\147\1\145\1\172\1\145\1\157\1\147\1\157\1\164\1\uffff\1"+
+ "\164\1\172\1\163\1\141\1\164\1\154\1\145\1\143\1\167\2\172\11\uffff"+
+ "\2\164\1\145\1\141\1\uffff\1\154\1\172\1\154\1\165\1\154\1\163\1"+
+ "\157\1\156\1\172\1\154\1\172\1\145\1\172\1\uffff\1\157\1\167\1\145"+
+ "\1\162\1\141\1\165\1\103\1\uffff\1\145\1\154\1\162\1\144\1\172\1"+
+ "\150\1\160\2\uffff\1\143\1\151\1\162\1\165\1\145\1\uffff\1\172\1"+
+ "\162\1\145\1\172\1\162\2\163\1\uffff\1\120\1\uffff\1\164\1\uffff"+
+ "\1\146\2\172\1\164\1\156\1\162\1\157\1\172\1\154\1\157\1\162\1\uffff"+
+ "\1\172\1\162\2\141\1\154\1\150\1\143\1\172\1\154\1\172\1\uffff\1"+
+ "\156\1\172\1\uffff\1\164\1\141\1\163\1\151\1\162\2\172\2\uffff\1"+
+ "\172\1\143\1\145\1\156\1\uffff\1\171\1\154\1\145\1\uffff\1\103\1"+
+ "\162\1\155\1\141\1\164\2\172\1\uffff\1\164\1\uffff\1\172\1\uffff"+
+ "\1\171\1\154\1\172\2\157\3\uffff\1\145\1\163\1\164\2\172\1\156\1"+
+ "\157\1\164\1\145\1\163\1\145\2\uffff\1\172\1\uffff\1\104\1\163\1"+
+ "\uffff\1\156\1\166\1\157\1\172\1\162\2\uffff\1\172\1\156\2\172\1"+
+ "\163\1\147\1\uffff\1\145\2\172\1\151\1\146\1\162\1\uffff\1\157\1"+
+ "\uffff\1\164\2\uffff\1\172\1\157\1\163\2\uffff\1\144\1\172\1\157"+
+ "\1\154\1\145\1\uffff\1\162\1\143\1\145\1\uffff\1\166\1\106\1\156"+
+ "\1\171\2\162\1\151\1\141\1\164\1\172\1\151\1\172\1\144\1\143\1\120"+
+ "\1\uffff\1\160\1\uffff\1\145\1\164\1\162\1\164\1\162\2\157\1\151"+
+ "\1\172\1\162\1\166\1\157\1\uffff\1\171\1\151\1\156\1\172\1\144\1"+
+ "\120\1\uffff\1\145\2\162\1\157\1\172\1\166\1\uffff\1\151\1\144\1"+
+ "\145\1\162\1\172\1\uffff";
+ static final String DFA19_acceptS =
+ "\2\uffff\1\2\1\uffff\1\4\7\uffff\1\16\15\uffff\1\62\1\uffff\1\70"+
+ "\1\71\1\72\1\73\1\74\1\76\10\uffff\1\134\2\uffff\1\140\1\141\1\uffff"+
+ "\1\134\1\2\2\uffff\1\4\13\uffff\1\11\1\33\1\56\1\66\1\13\4\uffff"+
+ "\1\16\6\uffff\1\51\1\31\1\32\1\55\1\34\1\75\1\35\1\130\1\uffff\1"+
+ "\63\1\43\1\45\1\uffff\1\52\1\46\1\uffff\1\65\1\53\1\67\1\127\1\60"+
+ "\1\57\1\136\1\137\1\61\1\62\1\uffff\1\70\1\71\1\72\1\73\1\74\1\76"+
+ "\11\uffff\1\131\1\uffff\1\132\1\133\1\135\1\140\17\uffff\1\77\13"+
+ "\uffff\1\40\1\36\1\41\1\37\1\54\1\44\1\47\1\50\1\64\4\uffff\1\106"+
+ "\15\uffff\1\124\7\uffff\1\104\7\uffff\1\107\1\110\5\uffff\1\115"+
+ "\7\uffff\1\100\1\uffff\1\7\1\uffff\1\117\13\uffff\1\103\12\uffff"+
+ "\1\120\2\uffff\1\3\7\uffff\1\122\1\10\4\uffff\1\116\3\uffff\1\126"+
+ "\7\uffff\1\114\1\uffff\1\105\1\uffff\1\1\5\uffff\1\21\1\121\1\112"+
+ "\13\uffff\1\101\1\111\1\uffff\1\123\2\uffff\1\5\5\uffff\1\125\1"+
+ "\20\6\uffff\1\102\6\uffff\1\15\1\uffff\1\24\1\uffff\1\25\1\26\3"+
+ "\uffff\1\22\1\113\5\uffff\1\27\3\uffff\1\42\17\uffff\1\30\1\uffff"+
+ "\1\6\14\uffff\1\14\6\uffff\1\17\6\uffff\1\23\5\uffff\1\12";
+ static final String DFA19_specialS =
+ "\1\0\52\uffff\1\2\1\1\u015b\uffff}>";
+ static final String[] DFA19_transitionS = {
+ "\11\56\2\55\2\56\1\55\22\56\1\55\1\23\1\53\1\36\1\52\1\32\1"+
+ "\22\1\54\1\34\1\35\1\30\1\20\1\14\1\11\1\26\1\31\1\47\11\50"+
+ "\1\12\1\41\1\25\1\17\1\24\1\27\1\56\32\52\1\37\1\56\1\40\1\51"+
+ "\1\52\1\56\1\33\1\52\1\15\1\43\1\5\1\13\2\52\1\10\2\52\1\6\1"+
+ "\1\1\45\1\52\1\3\1\52\1\46\1\42\1\7\1\52\1\16\1\44\3\52\1\2"+
+ "\1\21\1\4\uff82\56",
+ "\1\57",
+ "",
+ "\1\62\20\uffff\1\63",
+ "",
+ "\1\66\13\uffff\1\65",
+ "\1\67",
+ "\1\71\3\uffff\1\70\2\uffff\1\74\11\uffff\1\72\6\uffff\1\73",
+ "\1\77\6\uffff\1\75\1\76",
+ "\1\101\1\100",
+ "\1\103",
+ "\1\107\3\uffff\1\105\3\uffff\1\110\5\uffff\1\106",
+ "",
+ "\1\114\6\uffff\1\113\6\uffff\1\112",
+ "\1\116\7\uffff\1\115",
+ "\1\117\1\120",
+ "\1\122",
+ "\1\124",
+ "\1\126",
+ "\1\130",
+ "\1\132",
+ "\1\134\1\135",
+ "\1\137",
+ "\1\142\13\uffff\1\141",
+ "\1\144",
+ "\1\146\4\uffff\1\147",
+ "",
+ "\1\152",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\162\1\163\1\uffff\1\161",
+ "\1\164\11\uffff\1\165",
+ "\1\166",
+ "\1\167\17\uffff\1\170",
+ "\1\171",
+ "\12\173\10\uffff\1\175\1\uffff\3\175\5\uffff\1\175\13\uffff"+
+ "\1\172\6\uffff\1\173\2\uffff\1\175\1\uffff\3\175\5\uffff\1\175"+
+ "\13\uffff\1\172",
+ "\12\173\10\uffff\1\175\1\uffff\3\175\5\uffff\1\175\22\uffff"+
+ "\1\173\2\uffff\1\175\1\uffff\3\175\5\uffff\1\175",
+ "\1\60\34\uffff\32\60\4\uffff\1\60\1\uffff\32\60",
+ "",
+ "\0\176",
+ "\0\176",
+ "",
+ "",
+ "\1\u0080",
+ "",
+ "",
+ "\1\u0081",
+ "\1\u0082",
+ "",
+ "\1\u0083",
+ "\1\u0084",
+ "\1\u0085",
+ "\1\u0086",
+ "\1\u0087",
+ "\1\u0088\3\uffff\1\u0089",
+ "\1\u008a",
+ "\1\u008b",
+ "\1\u008c\16\uffff\1\u008d",
+ "\1\u008e",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\u0090",
+ "\1\u0091",
+ "\1\u0092",
+ "\1\u0093",
+ "",
+ "\1\u0094",
+ "\1\u0095",
+ "\1\u0096\1\u0097",
+ "\1\u0098",
+ "\1\u009a\5\uffff\1\u0099",
+ "\1\u009b",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\u009d",
+ "",
+ "",
+ "",
+ "\1\u009f",
+ "",
+ "",
+ "\1\u00a1",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\u00a4",
+ "\1\u00a5",
+ "\1\u00a6",
+ "\1\u00a7",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u00a9",
+ "\1\u00aa",
+ "\1\u00ab",
+ "\1\u00ac",
+ "",
+ "\12\173\10\uffff\1\175\1\uffff\3\175\5\uffff\1\175\22\uffff"+
+ "\1\173\2\uffff\1\175\1\uffff\3\175\5\uffff\1\175",
+ "",
+ "",
+ "",
+ "",
+ "\1\u00ad",
+ "\1\u00ae",
+ "\1\u00af",
+ "\1\u00b0",
+ "\1\u00b1",
+ "\1\u00b2",
+ "\1\u00b3",
+ "\1\u00b4",
+ "\1\u00b5",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u00b7",
+ "\1\u00b8",
+ "\1\u00b9",
+ "\1\u00ba",
+ "\1\u00bb",
+ "",
+ "\1\u00bc",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\14"+
+ "\60\1\u00bd\15\60",
+ "\1\u00bf",
+ "\1\u00c0",
+ "\1\u00c1",
+ "\1\u00c2",
+ "\1\u00c3",
+ "\1\u00c4",
+ "\1\u00c5",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\u00c8",
+ "\1\u00c9",
+ "\1\u00ca",
+ "\1\u00cb",
+ "",
+ "\1\u00cc",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u00ce",
+ "\1\u00cf",
+ "\1\u00d0",
+ "\1\u00d1",
+ "\1\u00d2\11\uffff\1\u00d3",
+ "\1\u00d4",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u00d6",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u00d8",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "",
+ "\1\u00da",
+ "\1\u00db",
+ "\1\u00dc",
+ "\1\u00dd",
+ "\1\u00de",
+ "\1\u00df",
+ "\1\u00e0",
+ "",
+ "\1\u00e1",
+ "\1\u00e2",
+ "\1\u00e3",
+ "\1\u00e4",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u00e6",
+ "\1\u00ea\1\uffff\1\u00e7\10\uffff\1\u00e9\1\uffff\1\u00e8",
+ "",
+ "",
+ "\1\u00eb",
+ "\1\u00ec",
+ "\1\u00ed",
+ "\1\u00ee",
+ "\1\u00ef",
+ "",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u00f1",
+ "\1\u00f2",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u00f4",
+ "\1\u00f5",
+ "\1\u00f6\16\uffff\1\u00f7",
+ "",
+ "\1\u00f8",
+ "",
+ "\1\u00f9",
+ "",
+ "\1\u00fa",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u00fd",
+ "\1\u00fe",
+ "\1\u00ff",
+ "\1\u0100",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u0102",
+ "\1\u0103",
+ "\1\u0104",
+ "",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u0106",
+ "\1\u0107",
+ "\1\u0108",
+ "\1\u010a\12\uffff\1\u0109",
+ "\1\u010b",
+ "\1\u010c",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u010e",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "",
+ "\1\u0110",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "",
+ "\1\u0112",
+ "\1\u0113",
+ "\1\u0114",
+ "\1\u0115",
+ "\1\u0116",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "",
+ "",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u011a",
+ "\1\u011b",
+ "\1\u011c",
+ "",
+ "\1\u011d",
+ "\1\u011e",
+ "\1\u011f",
+ "",
+ "\1\u0120",
+ "\1\u0121",
+ "\1\u0122",
+ "\1\u0123",
+ "\1\u0124",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "",
+ "\1\u0127",
+ "",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "",
+ "\1\u0129",
+ "\1\u012a",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u012c",
+ "\1\u012d",
+ "",
+ "",
+ "",
+ "\1\u012e",
+ "\1\u012f",
+ "\1\u0130",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u0133",
+ "\1\u0134",
+ "\1\u0135",
+ "\1\u0136",
+ "\1\u0137",
+ "\1\u0138",
+ "",
+ "",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "",
+ "\1\u013a",
+ "\1\u013b",
+ "",
+ "\1\u013c",
+ "\1\u013d",
+ "\1\u013e",
+ "\1\60\13\uffff\12\60\7\uffff\17\60\1\u013f\12\60\4\uffff\1"+
+ "\60\1\uffff\32\60",
+ "\1\u0141",
+ "",
+ "",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u0143",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u0146",
+ "\1\u0147",
+ "",
+ "\1\u0148",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u014b",
+ "\1\u014c",
+ "\1\u014d",
+ "",
+ "\1\u014e",
+ "",
+ "\1\u014f",
+ "",
+ "",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u0151",
+ "\1\u0152",
+ "",
+ "",
+ "\1\u0153",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u0155",
+ "\1\u0156",
+ "\1\u0157",
+ "",
+ "\1\u0158",
+ "\1\u0159",
+ "\1\u015a",
+ "",
+ "\1\u015b",
+ "\1\u015c",
+ "\1\u015d",
+ "\1\u015e",
+ "\1\u015f",
+ "\1\u0160",
+ "\1\u0161",
+ "\1\u0162",
+ "\1\u0163",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u0165",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u0167",
+ "\1\u0168",
+ "\1\u0169",
+ "",
+ "\1\u016a",
+ "",
+ "\1\u016b",
+ "\1\u016c",
+ "\1\u016d",
+ "\1\u016e",
+ "\1\u016f",
+ "\1\u0170",
+ "\1\u0171",
+ "\1\u0172",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u0174",
+ "\1\u0175",
+ "\1\u0176",
+ "",
+ "\1\u0177",
+ "\1\u0178",
+ "\1\u0179",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u017b",
+ "\1\u017c",
+ "",
+ "\1\u017d",
+ "\1\u017e",
+ "\1\u017f",
+ "\1\u0180",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ "\1\u0182",
+ "",
+ "\1\u0183",
+ "\1\u0184",
+ "\1\u0185",
+ "\1\u0186",
+ "\1\60\13\uffff\12\60\7\uffff\32\60\4\uffff\1\60\1\uffff\32"+
+ "\60",
+ ""
+ };
+
+ static final short[] DFA19_eot = DFA.unpackEncodedString(DFA19_eotS);
+ static final short[] DFA19_eof = DFA.unpackEncodedString(DFA19_eofS);
+ static final char[] DFA19_min = DFA.unpackEncodedStringToUnsignedChars(DFA19_minS);
+ static final char[] DFA19_max = DFA.unpackEncodedStringToUnsignedChars(DFA19_maxS);
+ static final short[] DFA19_accept = DFA.unpackEncodedString(DFA19_acceptS);
+ static final short[] DFA19_special = DFA.unpackEncodedString(DFA19_specialS);
+ static final short[][] DFA19_transition;
+
+ static {
+ int numStates = DFA19_transitionS.length;
+ DFA19_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA19_transition[i] = DFA.unpackEncodedString(DFA19_transitionS[i]);
+ }
+ }
+
+ class DFA19 extends DFA {
+
+ public DFA19(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 19;
+ this.eot = DFA19_eot;
+ this.eof = DFA19_eof;
+ this.min = DFA19_min;
+ this.max = DFA19_max;
+ this.accept = DFA19_accept;
+ this.special = DFA19_special;
+ this.transition = DFA19_transition;
+ }
+ public String getDescription() {
+ return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ IntStream input = _input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA19_0 = input.LA(1);
+
+ s = -1;
+ if ( (LA19_0=='m') ) {s = 1;}
+
+ else if ( (LA19_0=='{') ) {s = 2;}
+
+ else if ( (LA19_0=='p') ) {s = 3;}
+
+ else if ( (LA19_0=='}') ) {s = 4;}
+
+ else if ( (LA19_0=='e') ) {s = 5;}
+
+ else if ( (LA19_0=='l') ) {s = 6;}
+
+ else if ( (LA19_0=='t') ) {s = 7;}
+
+ else if ( (LA19_0=='i') ) {s = 8;}
+
+ else if ( (LA19_0=='-') ) {s = 9;}
+
+ else if ( (LA19_0==':') ) {s = 10;}
+
+ else if ( (LA19_0=='f') ) {s = 11;}
+
+ else if ( (LA19_0==',') ) {s = 12;}
+
+ else if ( (LA19_0=='c') ) {s = 13;}
+
+ else if ( (LA19_0=='v') ) {s = 14;}
+
+ else if ( (LA19_0=='=') ) {s = 15;}
+
+ else if ( (LA19_0=='+') ) {s = 16;}
+
+ else if ( (LA19_0=='|') ) {s = 17;}
+
+ else if ( (LA19_0=='&') ) {s = 18;}
+
+ else if ( (LA19_0=='!') ) {s = 19;}
+
+ else if ( (LA19_0=='>') ) {s = 20;}
+
+ else if ( (LA19_0=='<') ) {s = 21;}
+
+ else if ( (LA19_0=='.') ) {s = 22;}
+
+ else if ( (LA19_0=='?') ) {s = 23;}
+
+ else if ( (LA19_0=='*') ) {s = 24;}
+
+ else if ( (LA19_0=='/') ) {s = 25;}
+
+ else if ( (LA19_0=='%') ) {s = 26;}
+
+ else if ( (LA19_0=='a') ) {s = 27;}
+
+ else if ( (LA19_0=='(') ) {s = 28;}
+
+ else if ( (LA19_0==')') ) {s = 29;}
+
+ else if ( (LA19_0=='#') ) {s = 30;}
+
+ else if ( (LA19_0=='[') ) {s = 31;}
+
+ else if ( (LA19_0==']') ) {s = 32;}
+
+ else if ( (LA19_0==';') ) {s = 33;}
+
+ else if ( (LA19_0=='s') ) {s = 34;}
+
+ else if ( (LA19_0=='d') ) {s = 35;}
+
+ else if ( (LA19_0=='w') ) {s = 36;}
+
+ else if ( (LA19_0=='n') ) {s = 37;}
+
+ else if ( (LA19_0=='r') ) {s = 38;}
+
+ else if ( (LA19_0=='0') ) {s = 39;}
+
+ else if ( ((LA19_0>='1' && LA19_0<='9')) ) {s = 40;}
+
+ else if ( (LA19_0=='^') ) {s = 41;}
+
+ else if ( (LA19_0=='$'||(LA19_0>='A' && LA19_0<='Z')||LA19_0=='_'||LA19_0=='b'||(LA19_0>='g' && LA19_0<='h')||(LA19_0>='j' && LA19_0<='k')||LA19_0=='o'||LA19_0=='q'||LA19_0=='u'||(LA19_0>='x' && LA19_0<='z')) ) {s = 42;}
+
+ else if ( (LA19_0=='\"') ) {s = 43;}
+
+ else if ( (LA19_0=='\'') ) {s = 44;}
+
+ else if ( ((LA19_0>='\t' && LA19_0<='\n')||LA19_0=='\r'||LA19_0==' ') ) {s = 45;}
+
+ else if ( ((LA19_0>='\u0000' && LA19_0<='\b')||(LA19_0>='\u000B' && LA19_0<='\f')||(LA19_0>='\u000E' && LA19_0<='\u001F')||LA19_0=='@'||LA19_0=='\\'||LA19_0=='`'||(LA19_0>='~' && LA19_0<='\uFFFF')) ) {s = 46;}
+
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA19_44 = input.LA(1);
+
+ s = -1;
+ if ( ((LA19_44>='\u0000' && LA19_44<='\uFFFF')) ) {s = 126;}
+
+ else s = 46;
+
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA19_43 = input.LA(1);
+
+ s = -1;
+ if ( ((LA19_43>='\u0000' && LA19_43<='\uFFFF')) ) {s = 126;}
+
+ else s = 46;
+
+ if ( s>=0 ) return s;
+ break;
+ }
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 19, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDslParser.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDslParser.java
new file mode 100644
index 000000000..18027bf16
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDslParser.java
@@ -0,0 +1,24813 @@
+package org.eclipse.emf.parsley.dsl.parser.antlr.internal;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.emf.parsley.dsl.services.EmfParsleyDslGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+@SuppressWarnings("all")
+public class InternalEmfParsleyDslParser extends AbstractInternalAntlrParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'module'", "'{'", "'parts'", "'}'", "'extends'", "'labelProvider'", "'text'", "'image'", "'->'", "'propertyDescriptionProvider'", "':'", "'featuresProvider'", "'features'", "','", "'formControlFactory'", "'control'", "'target'", "'proposals'", "'viewerContentProvider'", "'children'", "'viewpart'", "'viewname'", "'viewclass'", "'viewcategory'", "'='", "'+='", "'-='", "'||'", "'&&'", "'=='", "'!='", "'==='", "'!=='", "'instanceof'", "'>='", "'<='", "'>'", "'<'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'<=>'", "'+'", "'-'", "'*'", "'**'", "'/'", "'%'", "'!'", "'as'", "'.'", "'::'", "'?.'", "'('", "')'", "'#'", "'['", "']'", "'|'", "';'", "'if'", "'else'", "'switch'", "'default'", "'case'", "'for'", "'while'", "'do'", "'var'", "'val'", "'static'", "'import'", "'extension'", "'super'", "'new'", "'false'", "'true'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'catch'", "'?'", "'&'"
+ };
+ public static final int RULE_ID=4;
+ public static final int T__29=29;
+ public static final int T__28=28;
+ public static final int T__27=27;
+ public static final int T__26=26;
+ public static final int T__25=25;
+ public static final int T__24=24;
+ public static final int T__23=23;
+ public static final int T__22=22;
+ public static final int RULE_ANY_OTHER=12;
+ public static final int T__21=21;
+ public static final int T__20=20;
+ public static final int EOF=-1;
+ public static final int T__93=93;
+ public static final int T__19=19;
+ public static final int T__94=94;
+ public static final int T__91=91;
+ public static final int RULE_HEX=6;
+ public static final int T__92=92;
+ public static final int T__16=16;
+ public static final int T__15=15;
+ public static final int T__90=90;
+ public static final int T__18=18;
+ public static final int T__17=17;
+ public static final int T__14=14;
+ public static final int T__13=13;
+ public static final int RULE_DECIMAL=8;
+ public static final int T__99=99;
+ public static final int T__98=98;
+ public static final int T__97=97;
+ public static final int T__96=96;
+ public static final int T__95=95;
+ public static final int T__80=80;
+ public static final int T__81=81;
+ public static final int T__82=82;
+ public static final int T__83=83;
+ public static final int T__85=85;
+ public static final int T__84=84;
+ public static final int T__87=87;
+ public static final int T__86=86;
+ public static final int T__89=89;
+ public static final int T__88=88;
+ public static final int RULE_ML_COMMENT=9;
+ public static final int RULE_STRING=5;
+ public static final int T__71=71;
+ public static final int T__72=72;
+ public static final int T__70=70;
+ public static final int T__76=76;
+ public static final int T__75=75;
+ public static final int T__74=74;
+ public static final int T__73=73;
+ public static final int T__79=79;
+ public static final int T__78=78;
+ public static final int T__77=77;
+ public static final int T__68=68;
+ public static final int T__69=69;
+ public static final int T__66=66;
+ public static final int T__67=67;
+ public static final int T__64=64;
+ public static final int T__65=65;
+ public static final int T__62=62;
+ public static final int T__63=63;
+ public static final int T__61=61;
+ public static final int T__60=60;
+ public static final int T__55=55;
+ public static final int T__56=56;
+ public static final int T__57=57;
+ public static final int T__58=58;
+ public static final int T__51=51;
+ public static final int T__52=52;
+ public static final int T__53=53;
+ public static final int T__54=54;
+ public static final int T__59=59;
+ public static final int RULE_INT=7;
+ public static final int T__50=50;
+ public static final int T__42=42;
+ public static final int T__43=43;
+ public static final int T__40=40;
+ public static final int T__41=41;
+ public static final int T__46=46;
+ public static final int T__47=47;
+ public static final int T__44=44;
+ public static final int T__45=45;
+ public static final int T__48=48;
+ public static final int T__49=49;
+ public static final int T__100=100;
+ public static final int RULE_SL_COMMENT=10;
+ public static final int T__30=30;
+ public static final int T__31=31;
+ public static final int T__32=32;
+ public static final int T__33=33;
+ public static final int T__34=34;
+ public static final int T__35=35;
+ public static final int T__36=36;
+ public static final int T__37=37;
+ public static final int T__38=38;
+ public static final int T__39=39;
+ public static final int RULE_WS=11;
+
+ // delegates
+ // delegators
+
+
+ public InternalEmfParsleyDslParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalEmfParsleyDslParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalEmfParsleyDslParser.tokenNames; }
+ public String getGrammarFileName() { return "../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g"; }
+
+
+
+ private EmfParsleyDslGrammarAccess grammarAccess;
+
+ public InternalEmfParsleyDslParser(TokenStream input, EmfParsleyDslGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Model";
+ }
+
+ @Override
+ protected EmfParsleyDslGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+
+
+
+ // $ANTLR start "entryRuleModel"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:67:1: entryRuleModel returns [EObject current=null] : iv_ruleModel= ruleModel EOF ;
+ public final EObject entryRuleModel() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleModel = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:68:2: (iv_ruleModel= ruleModel EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:69:2: iv_ruleModel= ruleModel EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getModelRule());
+ }
+ pushFollow(FOLLOW_ruleModel_in_entryRuleModel75);
+ iv_ruleModel=ruleModel();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleModel;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleModel85); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleModel"
+
+
+ // $ANTLR start "ruleModel"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:76:1: ruleModel returns [EObject current=null] : ( ( (lv_importSection_0_0= ruleXImportSection ) )? ( (lv_module_1_0= ruleModule ) ) ) ;
+ public final EObject ruleModel() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_importSection_0_0 = null;
+
+ EObject lv_module_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:79:28: ( ( ( (lv_importSection_0_0= ruleXImportSection ) )? ( (lv_module_1_0= ruleModule ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:80:1: ( ( (lv_importSection_0_0= ruleXImportSection ) )? ( (lv_module_1_0= ruleModule ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:80:1: ( ( (lv_importSection_0_0= ruleXImportSection ) )? ( (lv_module_1_0= ruleModule ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:80:2: ( (lv_importSection_0_0= ruleXImportSection ) )? ( (lv_module_1_0= ruleModule ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:80:2: ( (lv_importSection_0_0= ruleXImportSection ) )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==86) ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:81:1: (lv_importSection_0_0= ruleXImportSection )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:81:1: (lv_importSection_0_0= ruleXImportSection )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:82:3: lv_importSection_0_0= ruleXImportSection
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getModelAccess().getImportSectionXImportSectionParserRuleCall_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleXImportSection_in_ruleModel131);
+ lv_importSection_0_0=ruleXImportSection();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getModelRule());
+ }
+ set(
+ current,
+ "importSection",
+ lv_importSection_0_0,
+ "XImportSection");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:98:3: ( (lv_module_1_0= ruleModule ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:99:1: (lv_module_1_0= ruleModule )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:99:1: (lv_module_1_0= ruleModule )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:100:3: lv_module_1_0= ruleModule
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getModelAccess().getModuleModuleParserRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleModule_in_ruleModel153);
+ lv_module_1_0=ruleModule();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getModelRule());
+ }
+ set(
+ current,
+ "module",
+ lv_module_1_0,
+ "Module");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleModel"
+
+
+ // $ANTLR start "entryRuleModule"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:124:1: entryRuleModule returns [EObject current=null] : iv_ruleModule= ruleModule EOF ;
+ public final EObject entryRuleModule() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleModule = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:125:2: (iv_ruleModule= ruleModule EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:126:2: iv_ruleModule= ruleModule EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getModuleRule());
+ }
+ pushFollow(FOLLOW_ruleModule_in_entryRuleModule189);
+ iv_ruleModule=ruleModule();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleModule;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleModule199); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleModule"
+
+
+ // $ANTLR start "ruleModule"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:133:1: ruleModule returns [EObject current=null] : (otherlv_0= 'module' ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_extendsClause_2_0= ruleExtendsClause ) )? otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' ) ) ) ) )* ) ) ) otherlv_15= '}' ) ;
+ public final EObject ruleModule() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_3=null;
+ Token otherlv_11=null;
+ Token otherlv_12=null;
+ Token otherlv_14=null;
+ Token otherlv_15=null;
+ AntlrDatatypeRuleToken lv_name_1_0 = null;
+
+ EObject lv_extendsClause_2_0 = null;
+
+ EObject lv_labelProvider_5_0 = null;
+
+ EObject lv_propertyDescriptionProvider_6_0 = null;
+
+ EObject lv_featuresProvider_7_0 = null;
+
+ EObject lv_formControlFactory_8_0 = null;
+
+ EObject lv_proposalCreator_9_0 = null;
+
+ EObject lv_viewerContentProvider_10_0 = null;
+
+ EObject lv_parts_13_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:136:28: ( (otherlv_0= 'module' ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_extendsClause_2_0= ruleExtendsClause ) )? otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' ) ) ) ) )* ) ) ) otherlv_15= '}' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:137:1: (otherlv_0= 'module' ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_extendsClause_2_0= ruleExtendsClause ) )? otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' ) ) ) ) )* ) ) ) otherlv_15= '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:137:1: (otherlv_0= 'module' ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_extendsClause_2_0= ruleExtendsClause ) )? otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' ) ) ) ) )* ) ) ) otherlv_15= '}' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:137:3: otherlv_0= 'module' ( (lv_name_1_0= ruleQualifiedName ) ) ( (lv_extendsClause_2_0= ruleExtendsClause ) )? otherlv_3= '{' ( ( ( ( ({...}? => ( ({...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' ) ) ) ) )* ) ) ) otherlv_15= '}'
+ {
+ otherlv_0=(Token)match(input,13,FOLLOW_13_in_ruleModule236); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_0, grammarAccess.getModuleAccess().getModuleKeyword_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:141:1: ( (lv_name_1_0= ruleQualifiedName ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:142:1: (lv_name_1_0= ruleQualifiedName )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:142:1: (lv_name_1_0= ruleQualifiedName )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:143:3: lv_name_1_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getModuleAccess().getNameQualifiedNameParserRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_ruleModule257);
+ lv_name_1_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_1_0,
+ "QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:159:2: ( (lv_extendsClause_2_0= ruleExtendsClause ) )?
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==17) ) {
+ alt2=1;
+ }
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:160:1: (lv_extendsClause_2_0= ruleExtendsClause )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:160:1: (lv_extendsClause_2_0= ruleExtendsClause )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:161:3: lv_extendsClause_2_0= ruleExtendsClause
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getModuleAccess().getExtendsClauseExtendsClauseParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleExtendsClause_in_ruleModule278);
+ lv_extendsClause_2_0=ruleExtendsClause();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ set(
+ current,
+ "extendsClause",
+ lv_extendsClause_2_0,
+ "ExtendsClause");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleModule291); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:181:1: ( ( ( ( ({...}? => ( ({...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' ) ) ) ) )* ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:183:1: ( ( ( ({...}? => ( ({...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' ) ) ) ) )* ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:183:1: ( ( ( ({...}? => ( ({...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' ) ) ) ) )* ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:184:2: ( ( ({...}? => ( ({...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' ) ) ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:187:2: ( ( ({...}? => ( ({...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' ) ) ) ) )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:188:3: ( ({...}? => ( ({...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' ) ) ) ) )*
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:188:3: ( ({...}? => ( ({...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' ) ) ) ) )*
+ loop4:
+ do {
+ int alt4=8;
+ int LA4_0 = input.LA(1);
+
+ if ( LA4_0 ==18 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0) ) {
+ alt4=1;
+ }
+ else if ( LA4_0 ==22 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1) ) {
+ alt4=2;
+ }
+ else if ( LA4_0 ==24 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2) ) {
+ alt4=3;
+ }
+ else if ( LA4_0 ==27 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3) ) {
+ alt4=4;
+ }
+ else if ( LA4_0 ==30 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4) ) {
+ alt4=5;
+ }
+ else if ( LA4_0 ==31 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5) ) {
+ alt4=6;
+ }
+ else if ( LA4_0 ==15 && getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6) ) {
+ alt4=7;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:190:4: ({...}? => ( ({...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:190:4: ({...}? => ( ({...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:191:5: {...}? => ( ({...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleModule", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0)");
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:191:103: ( ({...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:192:6: ({...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 0);
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:195:6: ({...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:195:7: {...}? => ( (lv_labelProvider_5_0= ruleLabelProvider ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleModule", "true");
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:195:16: ( (lv_labelProvider_5_0= ruleLabelProvider ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:196:1: (lv_labelProvider_5_0= ruleLabelProvider )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:196:1: (lv_labelProvider_5_0= ruleLabelProvider )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:197:3: lv_labelProvider_5_0= ruleLabelProvider
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getModuleAccess().getLabelProviderLabelProviderParserRuleCall_4_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleLabelProvider_in_ruleModule357);
+ lv_labelProvider_5_0=ruleLabelProvider();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ set(
+ current,
+ "labelProvider",
+ lv_labelProvider_5_0,
+ "LabelProvider");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:220:4: ({...}? => ( ({...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:220:4: ({...}? => ( ({...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:221:5: {...}? => ( ({...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleModule", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1)");
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:221:103: ( ({...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:222:6: ({...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 1);
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:225:6: ({...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:225:7: {...}? => ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleModule", "true");
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:225:16: ( (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:226:1: (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:226:1: (lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:227:3: lv_propertyDescriptionProvider_6_0= rulePropertyDescriptionProvider
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getModuleAccess().getPropertyDescriptionProviderPropertyDescriptionProviderParserRuleCall_4_1_0());
+
+ }
+ pushFollow(FOLLOW_rulePropertyDescriptionProvider_in_ruleModule432);
+ lv_propertyDescriptionProvider_6_0=rulePropertyDescriptionProvider();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ set(
+ current,
+ "propertyDescriptionProvider",
+ lv_propertyDescriptionProvider_6_0,
+ "PropertyDescriptionProvider");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:250:4: ({...}? => ( ({...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:250:4: ({...}? => ( ({...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:251:5: {...}? => ( ({...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleModule", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2)");
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:251:103: ( ({...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:252:6: ({...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 2);
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:255:6: ({...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:255:7: {...}? => ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleModule", "true");
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:255:16: ( (lv_featuresProvider_7_0= ruleFeaturesProvider ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:256:1: (lv_featuresProvider_7_0= ruleFeaturesProvider )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:256:1: (lv_featuresProvider_7_0= ruleFeaturesProvider )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:257:3: lv_featuresProvider_7_0= ruleFeaturesProvider
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getModuleAccess().getFeaturesProviderFeaturesProviderParserRuleCall_4_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleFeaturesProvider_in_ruleModule507);
+ lv_featuresProvider_7_0=ruleFeaturesProvider();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ set(
+ current,
+ "featuresProvider",
+ lv_featuresProvider_7_0,
+ "FeaturesProvider");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:280:4: ({...}? => ( ({...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:280:4: ({...}? => ( ({...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:281:5: {...}? => ( ({...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleModule", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3)");
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:281:103: ( ({...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:282:6: ({...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 3);
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:285:6: ({...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:285:7: {...}? => ( (lv_formControlFactory_8_0= ruleFormControlFactory ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleModule", "true");
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:285:16: ( (lv_formControlFactory_8_0= ruleFormControlFactory ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:286:1: (lv_formControlFactory_8_0= ruleFormControlFactory )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:286:1: (lv_formControlFactory_8_0= ruleFormControlFactory )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:287:3: lv_formControlFactory_8_0= ruleFormControlFactory
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getModuleAccess().getFormControlFactoryFormControlFactoryParserRuleCall_4_3_0());
+
+ }
+ pushFollow(FOLLOW_ruleFormControlFactory_in_ruleModule582);
+ lv_formControlFactory_8_0=ruleFormControlFactory();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ set(
+ current,
+ "formControlFactory",
+ lv_formControlFactory_8_0,
+ "FormControlFactory");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:310:4: ({...}? => ( ({...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:310:4: ({...}? => ( ({...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:311:5: {...}? => ( ({...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleModule", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4)");
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:311:103: ( ({...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:312:6: ({...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 4);
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:315:6: ({...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:315:7: {...}? => ( (lv_proposalCreator_9_0= ruleProposalCreator ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleModule", "true");
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:315:16: ( (lv_proposalCreator_9_0= ruleProposalCreator ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:316:1: (lv_proposalCreator_9_0= ruleProposalCreator )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:316:1: (lv_proposalCreator_9_0= ruleProposalCreator )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:317:3: lv_proposalCreator_9_0= ruleProposalCreator
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getModuleAccess().getProposalCreatorProposalCreatorParserRuleCall_4_4_0());
+
+ }
+ pushFollow(FOLLOW_ruleProposalCreator_in_ruleModule657);
+ lv_proposalCreator_9_0=ruleProposalCreator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ set(
+ current,
+ "proposalCreator",
+ lv_proposalCreator_9_0,
+ "ProposalCreator");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:340:4: ({...}? => ( ({...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:340:4: ({...}? => ( ({...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:341:5: {...}? => ( ({...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleModule", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5)");
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:341:103: ( ({...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:342:6: ({...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 5);
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:345:6: ({...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:345:7: {...}? => ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleModule", "true");
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:345:16: ( (lv_viewerContentProvider_10_0= ruleViewerContentProvider ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:346:1: (lv_viewerContentProvider_10_0= ruleViewerContentProvider )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:346:1: (lv_viewerContentProvider_10_0= ruleViewerContentProvider )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:347:3: lv_viewerContentProvider_10_0= ruleViewerContentProvider
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getModuleAccess().getViewerContentProviderViewerContentProviderParserRuleCall_4_5_0());
+
+ }
+ pushFollow(FOLLOW_ruleViewerContentProvider_in_ruleModule732);
+ lv_viewerContentProvider_10_0=ruleViewerContentProvider();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ set(
+ current,
+ "viewerContentProvider",
+ lv_viewerContentProvider_10_0,
+ "ViewerContentProvider");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:370:4: ({...}? => ( ({...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:370:4: ({...}? => ( ({...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:371:5: {...}? => ( ({...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleModule", "getUnorderedGroupHelper().canSelect(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6)");
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:371:103: ( ({...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:372:6: ({...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getModuleAccess().getUnorderedGroup_4(), 6);
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:375:6: ({...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:375:7: {...}? => (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleModule", "true");
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:375:16: (otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:375:18: otherlv_11= 'parts' otherlv_12= '{' ( (lv_parts_13_0= rulePartSpecification ) )* otherlv_14= '}'
+ {
+ otherlv_11=(Token)match(input,15,FOLLOW_15_in_ruleModule799); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_11, grammarAccess.getModuleAccess().getPartsKeyword_4_6_0());
+
+ }
+ otherlv_12=(Token)match(input,14,FOLLOW_14_in_ruleModule811); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_12, grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_4_6_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:383:1: ( (lv_parts_13_0= rulePartSpecification ) )*
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==33) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:384:1: (lv_parts_13_0= rulePartSpecification )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:384:1: (lv_parts_13_0= rulePartSpecification )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:385:3: lv_parts_13_0= rulePartSpecification
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getModuleAccess().getPartsPartSpecificationParserRuleCall_4_6_2_0());
+
+ }
+ pushFollow(FOLLOW_rulePartSpecification_in_ruleModule832);
+ lv_parts_13_0=rulePartSpecification();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getModuleRule());
+ }
+ add(
+ current,
+ "parts",
+ lv_parts_13_0,
+ "PartSpecification");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop3;
+ }
+ } while (true);
+
+ otherlv_14=(Token)match(input,16,FOLLOW_16_in_ruleModule845); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_14, grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_4_6_3());
+
+ }
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getModuleAccess().getUnorderedGroup_4());
+
+ }
+
+ otherlv_15=(Token)match(input,16,FOLLOW_16_in_ruleModule898); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_15, grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_5());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleModule"
+
+
+ // $ANTLR start "entryRuleExtendsClause"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:431:1: entryRuleExtendsClause returns [EObject current=null] : iv_ruleExtendsClause= ruleExtendsClause EOF ;
+ public final EObject entryRuleExtendsClause() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleExtendsClause = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:432:2: (iv_ruleExtendsClause= ruleExtendsClause EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:433:2: iv_ruleExtendsClause= ruleExtendsClause EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getExtendsClauseRule());
+ }
+ pushFollow(FOLLOW_ruleExtendsClause_in_entryRuleExtendsClause934);
+ iv_ruleExtendsClause=ruleExtendsClause();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleExtendsClause;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleExtendsClause944); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleExtendsClause"
+
+
+ // $ANTLR start "ruleExtendsClause"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:440:1: ruleExtendsClause returns [EObject current=null] : (otherlv_0= 'extends' ( (lv_superType_1_0= ruleJvmTypeReference ) ) ) ;
+ public final EObject ruleExtendsClause() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ EObject lv_superType_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:443:28: ( (otherlv_0= 'extends' ( (lv_superType_1_0= ruleJvmTypeReference ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:444:1: (otherlv_0= 'extends' ( (lv_superType_1_0= ruleJvmTypeReference ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:444:1: (otherlv_0= 'extends' ( (lv_superType_1_0= ruleJvmTypeReference ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:444:3: otherlv_0= 'extends' ( (lv_superType_1_0= ruleJvmTypeReference ) )
+ {
+ otherlv_0=(Token)match(input,17,FOLLOW_17_in_ruleExtendsClause981); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_0, grammarAccess.getExtendsClauseAccess().getExtendsKeyword_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:448:1: ( (lv_superType_1_0= ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:449:1: (lv_superType_1_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:449:1: (lv_superType_1_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:450:3: lv_superType_1_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getExtendsClauseAccess().getSuperTypeJvmTypeReferenceParserRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleExtendsClause1002);
+ lv_superType_1_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getExtendsClauseRule());
+ }
+ set(
+ current,
+ "superType",
+ lv_superType_1_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleExtendsClause"
+
+
+ // $ANTLR start "entryRuleLabelProvider"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:474:1: entryRuleLabelProvider returns [EObject current=null] : iv_ruleLabelProvider= ruleLabelProvider EOF ;
+ public final EObject entryRuleLabelProvider() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleLabelProvider = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:475:2: (iv_ruleLabelProvider= ruleLabelProvider EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:476:2: iv_ruleLabelProvider= ruleLabelProvider EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getLabelProviderRule());
+ }
+ pushFollow(FOLLOW_ruleLabelProvider_in_entryRuleLabelProvider1038);
+ iv_ruleLabelProvider=ruleLabelProvider();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleLabelProvider;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleLabelProvider1048); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleLabelProvider"
+
+
+ // $ANTLR start "ruleLabelProvider"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:483:1: ruleLabelProvider returns [EObject current=null] : ( () otherlv_1= 'labelProvider' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' ) ) ) ) )* ) ) ) otherlv_12= '}' ) ;
+ public final EObject ruleLabelProvider() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_8=null;
+ Token otherlv_9=null;
+ Token otherlv_11=null;
+ Token otherlv_12=null;
+ EObject lv_labelSpecifications_6_0 = null;
+
+ EObject lv_imageSpecifications_10_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:486:28: ( ( () otherlv_1= 'labelProvider' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' ) ) ) ) )* ) ) ) otherlv_12= '}' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:487:1: ( () otherlv_1= 'labelProvider' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' ) ) ) ) )* ) ) ) otherlv_12= '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:487:1: ( () otherlv_1= 'labelProvider' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' ) ) ) ) )* ) ) ) otherlv_12= '}' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:487:2: () otherlv_1= 'labelProvider' otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' ) ) ) ) )* ) ) ) otherlv_12= '}'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:487:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:488:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getLabelProviderAccess().getLabelProviderAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleLabelProvider1094); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getLabelProviderAccess().getLabelProviderKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleLabelProvider1106); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_2());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:501:1: ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' ) ) ) ) )* ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:503:1: ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' ) ) ) ) )* ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:503:1: ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' ) ) ) ) )* ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:504:2: ( ( ({...}? => ( ({...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' ) ) ) ) )* )
+ {
+ getUnorderedGroupHelper().enter(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3());
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:507:2: ( ( ({...}? => ( ({...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' ) ) ) ) )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:508:3: ( ({...}? => ( ({...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' ) ) ) ) )*
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:508:3: ( ({...}? => ( ({...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' ) ) ) ) )*
+ loop7:
+ do {
+ int alt7=3;
+ int LA7_0 = input.LA(1);
+
+ if ( LA7_0 ==19 && getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 0) ) {
+ alt7=1;
+ }
+ else if ( LA7_0 ==20 && getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 1) ) {
+ alt7=2;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:510:4: ({...}? => ( ({...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:510:4: ({...}? => ( ({...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:511:5: {...}? => ( ({...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 0) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleLabelProvider", "getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 0)");
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:511:110: ( ({...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:512:6: ({...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 0);
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:515:6: ({...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:515:7: {...}? => (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleLabelProvider", "true");
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:515:16: (otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:515:18: otherlv_4= 'text' otherlv_5= '{' ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )* otherlv_7= '}'
+ {
+ otherlv_4=(Token)match(input,19,FOLLOW_19_in_ruleLabelProvider1164); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0());
+
+ }
+ otherlv_5=(Token)match(input,14,FOLLOW_14_in_ruleLabelProvider1176); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:523:1: ( (lv_labelSpecifications_6_0= ruleLabelSpecification ) )*
+ loop5:
+ do {
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==RULE_ID||LA5_0==53||LA5_0==68) ) {
+ alt5=1;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:524:1: (lv_labelSpecifications_6_0= ruleLabelSpecification )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:524:1: (lv_labelSpecifications_6_0= ruleLabelSpecification )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:525:3: lv_labelSpecifications_6_0= ruleLabelSpecification
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getLabelProviderAccess().getLabelSpecificationsLabelSpecificationParserRuleCall_3_0_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleLabelSpecification_in_ruleLabelProvider1197);
+ lv_labelSpecifications_6_0=ruleLabelSpecification();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLabelProviderRule());
+ }
+ add(
+ current,
+ "labelSpecifications",
+ lv_labelSpecifications_6_0,
+ "LabelSpecification");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop5;
+ }
+ } while (true);
+
+ otherlv_7=(Token)match(input,16,FOLLOW_16_in_ruleLabelProvider1210); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3());
+
+ }
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:552:4: ({...}? => ( ({...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:552:4: ({...}? => ( ({...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:553:5: {...}? => ( ({...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' ) ) )
+ {
+ if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 1) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleLabelProvider", "getUnorderedGroupHelper().canSelect(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 1)");
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:553:110: ( ({...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:554:6: ({...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' ) )
+ {
+ getUnorderedGroupHelper().select(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3(), 1);
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:557:6: ({...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:557:7: {...}? => (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' )
+ {
+ if ( !((true)) ) {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ throw new FailedPredicateException(input, "ruleLabelProvider", "true");
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:557:16: (otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:557:18: otherlv_8= 'image' otherlv_9= '{' ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )* otherlv_11= '}'
+ {
+ otherlv_8=(Token)match(input,20,FOLLOW_20_in_ruleLabelProvider1278); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_8, grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0());
+
+ }
+ otherlv_9=(Token)match(input,14,FOLLOW_14_in_ruleLabelProvider1290); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_9, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:565:1: ( (lv_imageSpecifications_10_0= ruleLabelSpecification ) )*
+ loop6:
+ do {
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==RULE_ID||LA6_0==53||LA6_0==68) ) {
+ alt6=1;
+ }
+
+
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:566:1: (lv_imageSpecifications_10_0= ruleLabelSpecification )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:566:1: (lv_imageSpecifications_10_0= ruleLabelSpecification )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:567:3: lv_imageSpecifications_10_0= ruleLabelSpecification
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getLabelProviderAccess().getImageSpecificationsLabelSpecificationParserRuleCall_3_1_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleLabelSpecification_in_ruleLabelProvider1311);
+ lv_imageSpecifications_10_0=ruleLabelSpecification();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLabelProviderRule());
+ }
+ add(
+ current,
+ "imageSpecifications",
+ lv_imageSpecifications_10_0,
+ "LabelSpecification");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop6;
+ }
+ } while (true);
+
+ otherlv_11=(Token)match(input,16,FOLLOW_16_in_ruleLabelProvider1324); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_11, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3());
+
+ }
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().returnFromSelection(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3());
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop7;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ getUnorderedGroupHelper().leave(grammarAccess.getLabelProviderAccess().getUnorderedGroup_3());
+
+ }
+
+ otherlv_12=(Token)match(input,16,FOLLOW_16_in_ruleLabelProvider1377); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_12, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_4());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleLabelProvider"
+
+
+ // $ANTLR start "entryRuleLabelSpecification"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:613:1: entryRuleLabelSpecification returns [EObject current=null] : iv_ruleLabelSpecification= ruleLabelSpecification EOF ;
+ public final EObject entryRuleLabelSpecification() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleLabelSpecification = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:614:2: (iv_ruleLabelSpecification= ruleLabelSpecification EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:615:2: iv_ruleLabelSpecification= ruleLabelSpecification EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getLabelSpecificationRule());
+ }
+ pushFollow(FOLLOW_ruleLabelSpecification_in_entryRuleLabelSpecification1413);
+ iv_ruleLabelSpecification=ruleLabelSpecification();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleLabelSpecification;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleLabelSpecification1423); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleLabelSpecification"
+
+
+ // $ANTLR start "ruleLabelSpecification"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:622:1: ruleLabelSpecification returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) )? otherlv_2= '->' ( (lv_expression_3_0= ruleXExpression ) ) ) ;
+ public final EObject ruleLabelSpecification() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_2=null;
+ EObject lv_parameterType_0_0 = null;
+
+ AntlrDatatypeRuleToken lv_name_1_0 = null;
+
+ EObject lv_expression_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:625:28: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) )? otherlv_2= '->' ( (lv_expression_3_0= ruleXExpression ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:626:1: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) )? otherlv_2= '->' ( (lv_expression_3_0= ruleXExpression ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:626:1: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) )? otherlv_2= '->' ( (lv_expression_3_0= ruleXExpression ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:626:2: ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) )? otherlv_2= '->' ( (lv_expression_3_0= ruleXExpression ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:626:2: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:627:1: (lv_parameterType_0_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:627:1: (lv_parameterType_0_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:628:3: lv_parameterType_0_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getLabelSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleLabelSpecification1469);
+ lv_parameterType_0_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLabelSpecificationRule());
+ }
+ set(
+ current,
+ "parameterType",
+ lv_parameterType_0_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:644:2: ( (lv_name_1_0= ruleValidID ) )?
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==RULE_ID) ) {
+ alt8=1;
+ }
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:645:1: (lv_name_1_0= ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:645:1: (lv_name_1_0= ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:646:3: lv_name_1_0= ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getLabelSpecificationAccess().getNameValidIDParserRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleValidID_in_ruleLabelSpecification1490);
+ lv_name_1_0=ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLabelSpecificationRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_1_0,
+ "ValidID");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_2=(Token)match(input,21,FOLLOW_21_in_ruleLabelSpecification1503); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getLabelSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_2());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:666:1: ( (lv_expression_3_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:667:1: (lv_expression_3_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:667:1: (lv_expression_3_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:668:3: lv_expression_3_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getLabelSpecificationAccess().getExpressionXExpressionParserRuleCall_3_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleLabelSpecification1524);
+ lv_expression_3_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getLabelSpecificationRule());
+ }
+ set(
+ current,
+ "expression",
+ lv_expression_3_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleLabelSpecification"
+
+
+ // $ANTLR start "entryRulePropertyDescriptionProvider"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:692:1: entryRulePropertyDescriptionProvider returns [EObject current=null] : iv_rulePropertyDescriptionProvider= rulePropertyDescriptionProvider EOF ;
+ public final EObject entryRulePropertyDescriptionProvider() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_rulePropertyDescriptionProvider = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:693:2: (iv_rulePropertyDescriptionProvider= rulePropertyDescriptionProvider EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:694:2: iv_rulePropertyDescriptionProvider= rulePropertyDescriptionProvider EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getPropertyDescriptionProviderRule());
+ }
+ pushFollow(FOLLOW_rulePropertyDescriptionProvider_in_entryRulePropertyDescriptionProvider1560);
+ iv_rulePropertyDescriptionProvider=rulePropertyDescriptionProvider();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_rulePropertyDescriptionProvider;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRulePropertyDescriptionProvider1570); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulePropertyDescriptionProvider"
+
+
+ // $ANTLR start "rulePropertyDescriptionProvider"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:701:1: rulePropertyDescriptionProvider returns [EObject current=null] : ( () otherlv_1= 'propertyDescriptionProvider' otherlv_2= '{' (otherlv_3= 'text' otherlv_4= '{' ( (lv_labelSpecifications_5_0= rulePropertyDescriptionSpecification ) )* otherlv_6= '}' )? otherlv_7= '}' ) ;
+ public final EObject rulePropertyDescriptionProvider() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_3=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ Token otherlv_7=null;
+ EObject lv_labelSpecifications_5_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:704:28: ( ( () otherlv_1= 'propertyDescriptionProvider' otherlv_2= '{' (otherlv_3= 'text' otherlv_4= '{' ( (lv_labelSpecifications_5_0= rulePropertyDescriptionSpecification ) )* otherlv_6= '}' )? otherlv_7= '}' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:705:1: ( () otherlv_1= 'propertyDescriptionProvider' otherlv_2= '{' (otherlv_3= 'text' otherlv_4= '{' ( (lv_labelSpecifications_5_0= rulePropertyDescriptionSpecification ) )* otherlv_6= '}' )? otherlv_7= '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:705:1: ( () otherlv_1= 'propertyDescriptionProvider' otherlv_2= '{' (otherlv_3= 'text' otherlv_4= '{' ( (lv_labelSpecifications_5_0= rulePropertyDescriptionSpecification ) )* otherlv_6= '}' )? otherlv_7= '}' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:705:2: () otherlv_1= 'propertyDescriptionProvider' otherlv_2= '{' (otherlv_3= 'text' otherlv_4= '{' ( (lv_labelSpecifications_5_0= rulePropertyDescriptionSpecification ) )* otherlv_6= '}' )? otherlv_7= '}'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:705:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:706:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getPropertyDescriptionProviderAccess().getPropertyDescriptionProviderAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,22,FOLLOW_22_in_rulePropertyDescriptionProvider1616); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getPropertyDescriptionProviderAccess().getPropertyDescriptionProviderKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,14,FOLLOW_14_in_rulePropertyDescriptionProvider1628); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getPropertyDescriptionProviderAccess().getLeftCurlyBracketKeyword_2());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:719:1: (otherlv_3= 'text' otherlv_4= '{' ( (lv_labelSpecifications_5_0= rulePropertyDescriptionSpecification ) )* otherlv_6= '}' )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0==19) ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:719:3: otherlv_3= 'text' otherlv_4= '{' ( (lv_labelSpecifications_5_0= rulePropertyDescriptionSpecification ) )* otherlv_6= '}'
+ {
+ otherlv_3=(Token)match(input,19,FOLLOW_19_in_rulePropertyDescriptionProvider1641); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getPropertyDescriptionProviderAccess().getTextKeyword_3_0());
+
+ }
+ otherlv_4=(Token)match(input,14,FOLLOW_14_in_rulePropertyDescriptionProvider1653); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getPropertyDescriptionProviderAccess().getLeftCurlyBracketKeyword_3_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:727:1: ( (lv_labelSpecifications_5_0= rulePropertyDescriptionSpecification ) )*
+ loop9:
+ do {
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0==RULE_ID||LA9_0==53||LA9_0==68) ) {
+ alt9=1;
+ }
+
+
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:728:1: (lv_labelSpecifications_5_0= rulePropertyDescriptionSpecification )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:728:1: (lv_labelSpecifications_5_0= rulePropertyDescriptionSpecification )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:729:3: lv_labelSpecifications_5_0= rulePropertyDescriptionSpecification
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPropertyDescriptionProviderAccess().getLabelSpecificationsPropertyDescriptionSpecificationParserRuleCall_3_2_0());
+
+ }
+ pushFollow(FOLLOW_rulePropertyDescriptionSpecification_in_rulePropertyDescriptionProvider1674);
+ lv_labelSpecifications_5_0=rulePropertyDescriptionSpecification();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getPropertyDescriptionProviderRule());
+ }
+ add(
+ current,
+ "labelSpecifications",
+ lv_labelSpecifications_5_0,
+ "PropertyDescriptionSpecification");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop9;
+ }
+ } while (true);
+
+ otherlv_6=(Token)match(input,16,FOLLOW_16_in_rulePropertyDescriptionProvider1687); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getPropertyDescriptionProviderAccess().getRightCurlyBracketKeyword_3_3());
+
+ }
+
+ }
+ break;
+
+ }
+
+ otherlv_7=(Token)match(input,16,FOLLOW_16_in_rulePropertyDescriptionProvider1701); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getPropertyDescriptionProviderAccess().getRightCurlyBracketKeyword_4());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulePropertyDescriptionProvider"
+
+
+ // $ANTLR start "entryRulePropertyDescriptionSpecification"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:761:1: entryRulePropertyDescriptionSpecification returns [EObject current=null] : iv_rulePropertyDescriptionSpecification= rulePropertyDescriptionSpecification EOF ;
+ public final EObject entryRulePropertyDescriptionSpecification() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_rulePropertyDescriptionSpecification = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:762:2: (iv_rulePropertyDescriptionSpecification= rulePropertyDescriptionSpecification EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:763:2: iv_rulePropertyDescriptionSpecification= rulePropertyDescriptionSpecification EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getPropertyDescriptionSpecificationRule());
+ }
+ pushFollow(FOLLOW_rulePropertyDescriptionSpecification_in_entryRulePropertyDescriptionSpecification1737);
+ iv_rulePropertyDescriptionSpecification=rulePropertyDescriptionSpecification();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_rulePropertyDescriptionSpecification;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRulePropertyDescriptionSpecification1747); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulePropertyDescriptionSpecification"
+
+
+ // $ANTLR start "rulePropertyDescriptionSpecification"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:770:1: rulePropertyDescriptionSpecification returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) otherlv_3= '->' ( (lv_expression_4_0= ruleXExpression ) ) ) ;
+ public final EObject rulePropertyDescriptionSpecification() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_3=null;
+ EObject lv_parameterType_0_0 = null;
+
+ EObject lv_expression_4_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:773:28: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) otherlv_3= '->' ( (lv_expression_4_0= ruleXExpression ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:774:1: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) otherlv_3= '->' ( (lv_expression_4_0= ruleXExpression ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:774:1: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) otherlv_3= '->' ( (lv_expression_4_0= ruleXExpression ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:774:2: ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) otherlv_3= '->' ( (lv_expression_4_0= ruleXExpression ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:774:2: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:775:1: (lv_parameterType_0_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:775:1: (lv_parameterType_0_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:776:3: lv_parameterType_0_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPropertyDescriptionSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_rulePropertyDescriptionSpecification1793);
+ lv_parameterType_0_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getPropertyDescriptionSpecificationRule());
+ }
+ set(
+ current,
+ "parameterType",
+ lv_parameterType_0_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,23,FOLLOW_23_in_rulePropertyDescriptionSpecification1805); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getPropertyDescriptionSpecificationAccess().getColonKeyword_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:796:1: ( (otherlv_2= RULE_ID ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:797:1: (otherlv_2= RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:797:1: (otherlv_2= RULE_ID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:798:3: otherlv_2= RULE_ID
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getPropertyDescriptionSpecificationRule());
+ }
+
+ }
+ otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePropertyDescriptionSpecification1825); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getPropertyDescriptionSpecificationAccess().getFeatureJvmMemberCrossReference_2_0());
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,21,FOLLOW_21_in_rulePropertyDescriptionSpecification1837); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getPropertyDescriptionSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_3());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:813:1: ( (lv_expression_4_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:814:1: (lv_expression_4_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:814:1: (lv_expression_4_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:815:3: lv_expression_4_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPropertyDescriptionSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_rulePropertyDescriptionSpecification1858);
+ lv_expression_4_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getPropertyDescriptionSpecificationRule());
+ }
+ set(
+ current,
+ "expression",
+ lv_expression_4_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulePropertyDescriptionSpecification"
+
+
+ // $ANTLR start "entryRuleFeaturesProvider"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:839:1: entryRuleFeaturesProvider returns [EObject current=null] : iv_ruleFeaturesProvider= ruleFeaturesProvider EOF ;
+ public final EObject entryRuleFeaturesProvider() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleFeaturesProvider = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:840:2: (iv_ruleFeaturesProvider= ruleFeaturesProvider EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:841:2: iv_ruleFeaturesProvider= ruleFeaturesProvider EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getFeaturesProviderRule());
+ }
+ pushFollow(FOLLOW_ruleFeaturesProvider_in_entryRuleFeaturesProvider1894);
+ iv_ruleFeaturesProvider=ruleFeaturesProvider();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleFeaturesProvider;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleFeaturesProvider1904); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleFeaturesProvider"
+
+
+ // $ANTLR start "ruleFeaturesProvider"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:848:1: ruleFeaturesProvider returns [EObject current=null] : ( () otherlv_1= 'featuresProvider' otherlv_2= '{' (otherlv_3= 'features' otherlv_4= '{' ( (lv_featureSpecifications_5_0= ruleFeatureSpecification ) )* otherlv_6= '}' )? otherlv_7= '}' ) ;
+ public final EObject ruleFeaturesProvider() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_3=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ Token otherlv_7=null;
+ EObject lv_featureSpecifications_5_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:851:28: ( ( () otherlv_1= 'featuresProvider' otherlv_2= '{' (otherlv_3= 'features' otherlv_4= '{' ( (lv_featureSpecifications_5_0= ruleFeatureSpecification ) )* otherlv_6= '}' )? otherlv_7= '}' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:852:1: ( () otherlv_1= 'featuresProvider' otherlv_2= '{' (otherlv_3= 'features' otherlv_4= '{' ( (lv_featureSpecifications_5_0= ruleFeatureSpecification ) )* otherlv_6= '}' )? otherlv_7= '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:852:1: ( () otherlv_1= 'featuresProvider' otherlv_2= '{' (otherlv_3= 'features' otherlv_4= '{' ( (lv_featureSpecifications_5_0= ruleFeatureSpecification ) )* otherlv_6= '}' )? otherlv_7= '}' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:852:2: () otherlv_1= 'featuresProvider' otherlv_2= '{' (otherlv_3= 'features' otherlv_4= '{' ( (lv_featureSpecifications_5_0= ruleFeatureSpecification ) )* otherlv_6= '}' )? otherlv_7= '}'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:852:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:853:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getFeaturesProviderAccess().getFeaturesProviderAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,24,FOLLOW_24_in_ruleFeaturesProvider1950); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getFeaturesProviderAccess().getFeaturesProviderKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleFeaturesProvider1962); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getFeaturesProviderAccess().getLeftCurlyBracketKeyword_2());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:866:1: (otherlv_3= 'features' otherlv_4= '{' ( (lv_featureSpecifications_5_0= ruleFeatureSpecification ) )* otherlv_6= '}' )?
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+
+ if ( (LA12_0==25) ) {
+ alt12=1;
+ }
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:866:3: otherlv_3= 'features' otherlv_4= '{' ( (lv_featureSpecifications_5_0= ruleFeatureSpecification ) )* otherlv_6= '}'
+ {
+ otherlv_3=(Token)match(input,25,FOLLOW_25_in_ruleFeaturesProvider1975); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getFeaturesProviderAccess().getFeaturesKeyword_3_0());
+
+ }
+ otherlv_4=(Token)match(input,14,FOLLOW_14_in_ruleFeaturesProvider1987); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getFeaturesProviderAccess().getLeftCurlyBracketKeyword_3_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:874:1: ( (lv_featureSpecifications_5_0= ruleFeatureSpecification ) )*
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0==RULE_ID||LA11_0==53||LA11_0==68) ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:875:1: (lv_featureSpecifications_5_0= ruleFeatureSpecification )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:875:1: (lv_featureSpecifications_5_0= ruleFeatureSpecification )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:876:3: lv_featureSpecifications_5_0= ruleFeatureSpecification
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getFeaturesProviderAccess().getFeatureSpecificationsFeatureSpecificationParserRuleCall_3_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleFeatureSpecification_in_ruleFeaturesProvider2008);
+ lv_featureSpecifications_5_0=ruleFeatureSpecification();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getFeaturesProviderRule());
+ }
+ add(
+ current,
+ "featureSpecifications",
+ lv_featureSpecifications_5_0,
+ "FeatureSpecification");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop11;
+ }
+ } while (true);
+
+ otherlv_6=(Token)match(input,16,FOLLOW_16_in_ruleFeaturesProvider2021); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getFeaturesProviderAccess().getRightCurlyBracketKeyword_3_3());
+
+ }
+
+ }
+ break;
+
+ }
+
+ otherlv_7=(Token)match(input,16,FOLLOW_16_in_ruleFeaturesProvider2035); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getFeaturesProviderAccess().getRightCurlyBracketKeyword_4());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleFeaturesProvider"
+
+
+ // $ANTLR start "entryRuleFeatureSpecification"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:908:1: entryRuleFeatureSpecification returns [EObject current=null] : iv_ruleFeatureSpecification= ruleFeatureSpecification EOF ;
+ public final EObject entryRuleFeatureSpecification() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleFeatureSpecification = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:909:2: (iv_ruleFeatureSpecification= ruleFeatureSpecification EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:910:2: iv_ruleFeatureSpecification= ruleFeatureSpecification EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getFeatureSpecificationRule());
+ }
+ pushFollow(FOLLOW_ruleFeatureSpecification_in_entryRuleFeatureSpecification2071);
+ iv_ruleFeatureSpecification=ruleFeatureSpecification();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleFeatureSpecification;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleFeatureSpecification2081); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleFeatureSpecification"
+
+
+ // $ANTLR start "ruleFeatureSpecification"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:917:1: ruleFeatureSpecification returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= '->' ( (otherlv_2= RULE_ID ) ) (otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) )* ) ;
+ public final EObject ruleFeatureSpecification() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_3=null;
+ Token otherlv_4=null;
+ EObject lv_parameterType_0_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:920:28: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= '->' ( (otherlv_2= RULE_ID ) ) (otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) )* ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:921:1: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= '->' ( (otherlv_2= RULE_ID ) ) (otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:921:1: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= '->' ( (otherlv_2= RULE_ID ) ) (otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:921:2: ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= '->' ( (otherlv_2= RULE_ID ) ) (otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) )*
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:921:2: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:922:1: (lv_parameterType_0_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:922:1: (lv_parameterType_0_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:923:3: lv_parameterType_0_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getFeatureSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleFeatureSpecification2127);
+ lv_parameterType_0_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getFeatureSpecificationRule());
+ }
+ set(
+ current,
+ "parameterType",
+ lv_parameterType_0_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,21,FOLLOW_21_in_ruleFeatureSpecification2139); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getFeatureSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:943:1: ( (otherlv_2= RULE_ID ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:944:1: (otherlv_2= RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:944:1: (otherlv_2= RULE_ID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:945:3: otherlv_2= RULE_ID
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getFeatureSpecificationRule());
+ }
+
+ }
+ otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleFeatureSpecification2159); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberCrossReference_2_0());
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:956:2: (otherlv_3= ',' ( (otherlv_4= RULE_ID ) ) )*
+ loop13:
+ do {
+ int alt13=2;
+ int LA13_0 = input.LA(1);
+
+ if ( (LA13_0==26) ) {
+ alt13=1;
+ }
+
+
+ switch (alt13) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:956:4: otherlv_3= ',' ( (otherlv_4= RULE_ID ) )
+ {
+ otherlv_3=(Token)match(input,26,FOLLOW_26_in_ruleFeatureSpecification2172); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getFeatureSpecificationAccess().getCommaKeyword_3_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:960:1: ( (otherlv_4= RULE_ID ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:961:1: (otherlv_4= RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:961:1: (otherlv_4= RULE_ID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:962:3: otherlv_4= RULE_ID
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getFeatureSpecificationRule());
+ }
+
+ }
+ otherlv_4=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleFeatureSpecification2192); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getFeatureSpecificationAccess().getFeaturesJvmMemberCrossReference_3_1_0());
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop13;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleFeatureSpecification"
+
+
+ // $ANTLR start "entryRuleFormControlFactory"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:981:1: entryRuleFormControlFactory returns [EObject current=null] : iv_ruleFormControlFactory= ruleFormControlFactory EOF ;
+ public final EObject entryRuleFormControlFactory() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleFormControlFactory = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:982:2: (iv_ruleFormControlFactory= ruleFormControlFactory EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:983:2: iv_ruleFormControlFactory= ruleFormControlFactory EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getFormControlFactoryRule());
+ }
+ pushFollow(FOLLOW_ruleFormControlFactory_in_entryRuleFormControlFactory2230);
+ iv_ruleFormControlFactory=ruleFormControlFactory();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleFormControlFactory;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleFormControlFactory2240); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleFormControlFactory"
+
+
+ // $ANTLR start "ruleFormControlFactory"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:990:1: ruleFormControlFactory returns [EObject current=null] : ( () otherlv_1= 'formControlFactory' otherlv_2= '{' (otherlv_3= 'control' otherlv_4= '{' ( (lv_controlSpecifications_5_0= ruleFormControlSpecification ) )* otherlv_6= '}' )? otherlv_7= '}' ) ;
+ public final EObject ruleFormControlFactory() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_3=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ Token otherlv_7=null;
+ EObject lv_controlSpecifications_5_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:993:28: ( ( () otherlv_1= 'formControlFactory' otherlv_2= '{' (otherlv_3= 'control' otherlv_4= '{' ( (lv_controlSpecifications_5_0= ruleFormControlSpecification ) )* otherlv_6= '}' )? otherlv_7= '}' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:994:1: ( () otherlv_1= 'formControlFactory' otherlv_2= '{' (otherlv_3= 'control' otherlv_4= '{' ( (lv_controlSpecifications_5_0= ruleFormControlSpecification ) )* otherlv_6= '}' )? otherlv_7= '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:994:1: ( () otherlv_1= 'formControlFactory' otherlv_2= '{' (otherlv_3= 'control' otherlv_4= '{' ( (lv_controlSpecifications_5_0= ruleFormControlSpecification ) )* otherlv_6= '}' )? otherlv_7= '}' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:994:2: () otherlv_1= 'formControlFactory' otherlv_2= '{' (otherlv_3= 'control' otherlv_4= '{' ( (lv_controlSpecifications_5_0= ruleFormControlSpecification ) )* otherlv_6= '}' )? otherlv_7= '}'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:994:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:995:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getFormControlFactoryAccess().getFormControlFactoryAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,27,FOLLOW_27_in_ruleFormControlFactory2286); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getFormControlFactoryAccess().getFormControlFactoryKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleFormControlFactory2298); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getFormControlFactoryAccess().getLeftCurlyBracketKeyword_2());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1008:1: (otherlv_3= 'control' otherlv_4= '{' ( (lv_controlSpecifications_5_0= ruleFormControlSpecification ) )* otherlv_6= '}' )?
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0==28) ) {
+ alt15=1;
+ }
+ switch (alt15) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1008:3: otherlv_3= 'control' otherlv_4= '{' ( (lv_controlSpecifications_5_0= ruleFormControlSpecification ) )* otherlv_6= '}'
+ {
+ otherlv_3=(Token)match(input,28,FOLLOW_28_in_ruleFormControlFactory2311); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getFormControlFactoryAccess().getControlKeyword_3_0());
+
+ }
+ otherlv_4=(Token)match(input,14,FOLLOW_14_in_ruleFormControlFactory2323); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getFormControlFactoryAccess().getLeftCurlyBracketKeyword_3_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1016:1: ( (lv_controlSpecifications_5_0= ruleFormControlSpecification ) )*
+ loop14:
+ do {
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0==RULE_ID||LA14_0==53||LA14_0==68) ) {
+ alt14=1;
+ }
+
+
+ switch (alt14) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1017:1: (lv_controlSpecifications_5_0= ruleFormControlSpecification )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1017:1: (lv_controlSpecifications_5_0= ruleFormControlSpecification )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1018:3: lv_controlSpecifications_5_0= ruleFormControlSpecification
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getFormControlFactoryAccess().getControlSpecificationsFormControlSpecificationParserRuleCall_3_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleFormControlSpecification_in_ruleFormControlFactory2344);
+ lv_controlSpecifications_5_0=ruleFormControlSpecification();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getFormControlFactoryRule());
+ }
+ add(
+ current,
+ "controlSpecifications",
+ lv_controlSpecifications_5_0,
+ "FormControlSpecification");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop14;
+ }
+ } while (true);
+
+ otherlv_6=(Token)match(input,16,FOLLOW_16_in_ruleFormControlFactory2357); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getFormControlFactoryAccess().getRightCurlyBracketKeyword_3_3());
+
+ }
+
+ }
+ break;
+
+ }
+
+ otherlv_7=(Token)match(input,16,FOLLOW_16_in_ruleFormControlFactory2371); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getFormControlFactoryAccess().getRightCurlyBracketKeyword_4());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleFormControlFactory"
+
+
+ // $ANTLR start "entryRuleFormControlSpecification"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1050:1: entryRuleFormControlSpecification returns [EObject current=null] : iv_ruleFormControlSpecification= ruleFormControlSpecification EOF ;
+ public final EObject entryRuleFormControlSpecification() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleFormControlSpecification = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1051:2: (iv_ruleFormControlSpecification= ruleFormControlSpecification EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1052:2: iv_ruleFormControlSpecification= ruleFormControlSpecification EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getFormControlSpecificationRule());
+ }
+ pushFollow(FOLLOW_ruleFormControlSpecification_in_entryRuleFormControlSpecification2407);
+ iv_ruleFormControlSpecification=ruleFormControlSpecification();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleFormControlSpecification;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleFormControlSpecification2417); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleFormControlSpecification"
+
+
+ // $ANTLR start "ruleFormControlSpecification"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1059:1: ruleFormControlSpecification returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) otherlv_3= '->' ( (lv_expression_4_0= ruleXExpression ) ) (otherlv_5= 'target' ( (lv_target_6_0= ruleXExpression ) ) )? ) ;
+ public final EObject ruleFormControlSpecification() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ EObject lv_parameterType_0_0 = null;
+
+ EObject lv_expression_4_0 = null;
+
+ EObject lv_target_6_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1062:28: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) otherlv_3= '->' ( (lv_expression_4_0= ruleXExpression ) ) (otherlv_5= 'target' ( (lv_target_6_0= ruleXExpression ) ) )? ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1063:1: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) otherlv_3= '->' ( (lv_expression_4_0= ruleXExpression ) ) (otherlv_5= 'target' ( (lv_target_6_0= ruleXExpression ) ) )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1063:1: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) otherlv_3= '->' ( (lv_expression_4_0= ruleXExpression ) ) (otherlv_5= 'target' ( (lv_target_6_0= ruleXExpression ) ) )? )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1063:2: ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) otherlv_3= '->' ( (lv_expression_4_0= ruleXExpression ) ) (otherlv_5= 'target' ( (lv_target_6_0= ruleXExpression ) ) )?
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1063:2: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1064:1: (lv_parameterType_0_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1064:1: (lv_parameterType_0_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1065:3: lv_parameterType_0_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getFormControlSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleFormControlSpecification2463);
+ lv_parameterType_0_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getFormControlSpecificationRule());
+ }
+ set(
+ current,
+ "parameterType",
+ lv_parameterType_0_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,23,FOLLOW_23_in_ruleFormControlSpecification2475); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getFormControlSpecificationAccess().getColonKeyword_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1085:1: ( (otherlv_2= RULE_ID ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1086:1: (otherlv_2= RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1086:1: (otherlv_2= RULE_ID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1087:3: otherlv_2= RULE_ID
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getFormControlSpecificationRule());
+ }
+
+ }
+ otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleFormControlSpecification2495); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getFormControlSpecificationAccess().getFeatureJvmMemberCrossReference_2_0());
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,21,FOLLOW_21_in_ruleFormControlSpecification2507); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getFormControlSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_3());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1102:1: ( (lv_expression_4_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1103:1: (lv_expression_4_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1103:1: (lv_expression_4_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1104:3: lv_expression_4_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getFormControlSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleFormControlSpecification2528);
+ lv_expression_4_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getFormControlSpecificationRule());
+ }
+ set(
+ current,
+ "expression",
+ lv_expression_4_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1120:2: (otherlv_5= 'target' ( (lv_target_6_0= ruleXExpression ) ) )?
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( (LA16_0==29) ) {
+ alt16=1;
+ }
+ switch (alt16) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1120:4: otherlv_5= 'target' ( (lv_target_6_0= ruleXExpression ) )
+ {
+ otherlv_5=(Token)match(input,29,FOLLOW_29_in_ruleFormControlSpecification2541); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getFormControlSpecificationAccess().getTargetKeyword_5_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1124:1: ( (lv_target_6_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1125:1: (lv_target_6_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1125:1: (lv_target_6_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1126:3: lv_target_6_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getFormControlSpecificationAccess().getTargetXExpressionParserRuleCall_5_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleFormControlSpecification2562);
+ lv_target_6_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getFormControlSpecificationRule());
+ }
+ set(
+ current,
+ "target",
+ lv_target_6_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleFormControlSpecification"
+
+
+ // $ANTLR start "entryRuleProposalCreator"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1150:1: entryRuleProposalCreator returns [EObject current=null] : iv_ruleProposalCreator= ruleProposalCreator EOF ;
+ public final EObject entryRuleProposalCreator() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleProposalCreator = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1151:2: (iv_ruleProposalCreator= ruleProposalCreator EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1152:2: iv_ruleProposalCreator= ruleProposalCreator EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getProposalCreatorRule());
+ }
+ pushFollow(FOLLOW_ruleProposalCreator_in_entryRuleProposalCreator2600);
+ iv_ruleProposalCreator=ruleProposalCreator();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleProposalCreator;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleProposalCreator2610); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleProposalCreator"
+
+
+ // $ANTLR start "ruleProposalCreator"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1159:1: ruleProposalCreator returns [EObject current=null] : ( () otherlv_1= 'proposals' otherlv_2= '{' ( (lv_proposalsSpecifications_3_0= ruleProposalSpecification ) )* otherlv_4= '}' ) ;
+ public final EObject ruleProposalCreator() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ EObject lv_proposalsSpecifications_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1162:28: ( ( () otherlv_1= 'proposals' otherlv_2= '{' ( (lv_proposalsSpecifications_3_0= ruleProposalSpecification ) )* otherlv_4= '}' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1163:1: ( () otherlv_1= 'proposals' otherlv_2= '{' ( (lv_proposalsSpecifications_3_0= ruleProposalSpecification ) )* otherlv_4= '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1163:1: ( () otherlv_1= 'proposals' otherlv_2= '{' ( (lv_proposalsSpecifications_3_0= ruleProposalSpecification ) )* otherlv_4= '}' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1163:2: () otherlv_1= 'proposals' otherlv_2= '{' ( (lv_proposalsSpecifications_3_0= ruleProposalSpecification ) )* otherlv_4= '}'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1163:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1164:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getProposalCreatorAccess().getProposalCreatorAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,30,FOLLOW_30_in_ruleProposalCreator2656); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getProposalCreatorAccess().getProposalsKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleProposalCreator2668); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getProposalCreatorAccess().getLeftCurlyBracketKeyword_2());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1177:1: ( (lv_proposalsSpecifications_3_0= ruleProposalSpecification ) )*
+ loop17:
+ do {
+ int alt17=2;
+ int LA17_0 = input.LA(1);
+
+ if ( (LA17_0==RULE_ID||LA17_0==53||LA17_0==68) ) {
+ alt17=1;
+ }
+
+
+ switch (alt17) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1178:1: (lv_proposalsSpecifications_3_0= ruleProposalSpecification )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1178:1: (lv_proposalsSpecifications_3_0= ruleProposalSpecification )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1179:3: lv_proposalsSpecifications_3_0= ruleProposalSpecification
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getProposalCreatorAccess().getProposalsSpecificationsProposalSpecificationParserRuleCall_3_0());
+
+ }
+ pushFollow(FOLLOW_ruleProposalSpecification_in_ruleProposalCreator2689);
+ lv_proposalsSpecifications_3_0=ruleProposalSpecification();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getProposalCreatorRule());
+ }
+ add(
+ current,
+ "proposalsSpecifications",
+ lv_proposalsSpecifications_3_0,
+ "ProposalSpecification");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop17;
+ }
+ } while (true);
+
+ otherlv_4=(Token)match(input,16,FOLLOW_16_in_ruleProposalCreator2702); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getProposalCreatorAccess().getRightCurlyBracketKeyword_4());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleProposalCreator"
+
+
+ // $ANTLR start "entryRuleProposalSpecification"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1207:1: entryRuleProposalSpecification returns [EObject current=null] : iv_ruleProposalSpecification= ruleProposalSpecification EOF ;
+ public final EObject entryRuleProposalSpecification() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleProposalSpecification = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1208:2: (iv_ruleProposalSpecification= ruleProposalSpecification EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1209:2: iv_ruleProposalSpecification= ruleProposalSpecification EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getProposalSpecificationRule());
+ }
+ pushFollow(FOLLOW_ruleProposalSpecification_in_entryRuleProposalSpecification2738);
+ iv_ruleProposalSpecification=ruleProposalSpecification();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleProposalSpecification;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleProposalSpecification2748); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleProposalSpecification"
+
+
+ // $ANTLR start "ruleProposalSpecification"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1216:1: ruleProposalSpecification returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) otherlv_3= '->' ( (lv_expression_4_0= ruleXExpression ) ) ) ;
+ public final EObject ruleProposalSpecification() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_3=null;
+ EObject lv_parameterType_0_0 = null;
+
+ EObject lv_expression_4_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1219:28: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) otherlv_3= '->' ( (lv_expression_4_0= ruleXExpression ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1220:1: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) otherlv_3= '->' ( (lv_expression_4_0= ruleXExpression ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1220:1: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) otherlv_3= '->' ( (lv_expression_4_0= ruleXExpression ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1220:2: ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) otherlv_1= ':' ( (otherlv_2= RULE_ID ) ) otherlv_3= '->' ( (lv_expression_4_0= ruleXExpression ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1220:2: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1221:1: (lv_parameterType_0_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1221:1: (lv_parameterType_0_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1222:3: lv_parameterType_0_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getProposalSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleProposalSpecification2794);
+ lv_parameterType_0_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getProposalSpecificationRule());
+ }
+ set(
+ current,
+ "parameterType",
+ lv_parameterType_0_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,23,FOLLOW_23_in_ruleProposalSpecification2806); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getProposalSpecificationAccess().getColonKeyword_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1242:1: ( (otherlv_2= RULE_ID ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1243:1: (otherlv_2= RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1243:1: (otherlv_2= RULE_ID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1244:3: otherlv_2= RULE_ID
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getProposalSpecificationRule());
+ }
+
+ }
+ otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleProposalSpecification2826); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getProposalSpecificationAccess().getFeatureJvmMemberCrossReference_2_0());
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,21,FOLLOW_21_in_ruleProposalSpecification2838); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getProposalSpecificationAccess().getHyphenMinusGreaterThanSignKeyword_3());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1259:1: ( (lv_expression_4_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1260:1: (lv_expression_4_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1260:1: (lv_expression_4_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1261:3: lv_expression_4_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getProposalSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleProposalSpecification2859);
+ lv_expression_4_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getProposalSpecificationRule());
+ }
+ set(
+ current,
+ "expression",
+ lv_expression_4_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleProposalSpecification"
+
+
+ // $ANTLR start "entryRuleViewerContentProvider"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1285:1: entryRuleViewerContentProvider returns [EObject current=null] : iv_ruleViewerContentProvider= ruleViewerContentProvider EOF ;
+ public final EObject entryRuleViewerContentProvider() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleViewerContentProvider = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1286:2: (iv_ruleViewerContentProvider= ruleViewerContentProvider EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1287:2: iv_ruleViewerContentProvider= ruleViewerContentProvider EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getViewerContentProviderRule());
+ }
+ pushFollow(FOLLOW_ruleViewerContentProvider_in_entryRuleViewerContentProvider2895);
+ iv_ruleViewerContentProvider=ruleViewerContentProvider();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleViewerContentProvider;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleViewerContentProvider2905); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleViewerContentProvider"
+
+
+ // $ANTLR start "ruleViewerContentProvider"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1294:1: ruleViewerContentProvider returns [EObject current=null] : ( () otherlv_1= 'viewerContentProvider' otherlv_2= '{' (otherlv_3= 'children' otherlv_4= '{' ( (lv_childrenSpecifications_5_0= ruleLabelSpecification ) )* otherlv_6= '}' )? otherlv_7= '}' ) ;
+ public final EObject ruleViewerContentProvider() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_3=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ Token otherlv_7=null;
+ EObject lv_childrenSpecifications_5_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1297:28: ( ( () otherlv_1= 'viewerContentProvider' otherlv_2= '{' (otherlv_3= 'children' otherlv_4= '{' ( (lv_childrenSpecifications_5_0= ruleLabelSpecification ) )* otherlv_6= '}' )? otherlv_7= '}' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1298:1: ( () otherlv_1= 'viewerContentProvider' otherlv_2= '{' (otherlv_3= 'children' otherlv_4= '{' ( (lv_childrenSpecifications_5_0= ruleLabelSpecification ) )* otherlv_6= '}' )? otherlv_7= '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1298:1: ( () otherlv_1= 'viewerContentProvider' otherlv_2= '{' (otherlv_3= 'children' otherlv_4= '{' ( (lv_childrenSpecifications_5_0= ruleLabelSpecification ) )* otherlv_6= '}' )? otherlv_7= '}' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1298:2: () otherlv_1= 'viewerContentProvider' otherlv_2= '{' (otherlv_3= 'children' otherlv_4= '{' ( (lv_childrenSpecifications_5_0= ruleLabelSpecification ) )* otherlv_6= '}' )? otherlv_7= '}'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1298:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1299:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getViewerContentProviderAccess().getViewerContentProviderAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,31,FOLLOW_31_in_ruleViewerContentProvider2951); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getViewerContentProviderAccess().getViewerContentProviderKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleViewerContentProvider2963); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getViewerContentProviderAccess().getLeftCurlyBracketKeyword_2());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1312:1: (otherlv_3= 'children' otherlv_4= '{' ( (lv_childrenSpecifications_5_0= ruleLabelSpecification ) )* otherlv_6= '}' )?
+ int alt19=2;
+ int LA19_0 = input.LA(1);
+
+ if ( (LA19_0==32) ) {
+ alt19=1;
+ }
+ switch (alt19) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1312:3: otherlv_3= 'children' otherlv_4= '{' ( (lv_childrenSpecifications_5_0= ruleLabelSpecification ) )* otherlv_6= '}'
+ {
+ otherlv_3=(Token)match(input,32,FOLLOW_32_in_ruleViewerContentProvider2976); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getViewerContentProviderAccess().getChildrenKeyword_3_0());
+
+ }
+ otherlv_4=(Token)match(input,14,FOLLOW_14_in_ruleViewerContentProvider2988); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getViewerContentProviderAccess().getLeftCurlyBracketKeyword_3_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1320:1: ( (lv_childrenSpecifications_5_0= ruleLabelSpecification ) )*
+ loop18:
+ do {
+ int alt18=2;
+ int LA18_0 = input.LA(1);
+
+ if ( (LA18_0==RULE_ID||LA18_0==53||LA18_0==68) ) {
+ alt18=1;
+ }
+
+
+ switch (alt18) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1321:1: (lv_childrenSpecifications_5_0= ruleLabelSpecification )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1321:1: (lv_childrenSpecifications_5_0= ruleLabelSpecification )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1322:3: lv_childrenSpecifications_5_0= ruleLabelSpecification
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewerContentProviderAccess().getChildrenSpecificationsLabelSpecificationParserRuleCall_3_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleLabelSpecification_in_ruleViewerContentProvider3009);
+ lv_childrenSpecifications_5_0=ruleLabelSpecification();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getViewerContentProviderRule());
+ }
+ add(
+ current,
+ "childrenSpecifications",
+ lv_childrenSpecifications_5_0,
+ "LabelSpecification");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop18;
+ }
+ } while (true);
+
+ otherlv_6=(Token)match(input,16,FOLLOW_16_in_ruleViewerContentProvider3022); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getViewerContentProviderAccess().getRightCurlyBracketKeyword_3_3());
+
+ }
+
+ }
+ break;
+
+ }
+
+ otherlv_7=(Token)match(input,16,FOLLOW_16_in_ruleViewerContentProvider3036); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getViewerContentProviderAccess().getRightCurlyBracketKeyword_4());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleViewerContentProvider"
+
+
+ // $ANTLR start "entryRulePartSpecification"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1358:1: entryRulePartSpecification returns [EObject current=null] : iv_rulePartSpecification= rulePartSpecification EOF ;
+ public final EObject entryRulePartSpecification() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_rulePartSpecification = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1359:2: (iv_rulePartSpecification= rulePartSpecification EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1360:2: iv_rulePartSpecification= rulePartSpecification EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getPartSpecificationRule());
+ }
+ pushFollow(FOLLOW_rulePartSpecification_in_entryRulePartSpecification3076);
+ iv_rulePartSpecification=rulePartSpecification();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_rulePartSpecification;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRulePartSpecification3086); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRulePartSpecification"
+
+
+ // $ANTLR start "rulePartSpecification"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1367:1: rulePartSpecification returns [EObject current=null] : this_ViewSpecification_0= ruleViewSpecification ;
+ public final EObject rulePartSpecification() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_ViewSpecification_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1370:28: (this_ViewSpecification_0= ruleViewSpecification )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1372:5: this_ViewSpecification_0= ruleViewSpecification
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getPartSpecificationAccess().getViewSpecificationParserRuleCall());
+
+ }
+ pushFollow(FOLLOW_ruleViewSpecification_in_rulePartSpecification3132);
+ this_ViewSpecification_0=ruleViewSpecification();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_ViewSpecification_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "rulePartSpecification"
+
+
+ // $ANTLR start "entryRuleViewSpecification"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1388:1: entryRuleViewSpecification returns [EObject current=null] : iv_ruleViewSpecification= ruleViewSpecification EOF ;
+ public final EObject entryRuleViewSpecification() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleViewSpecification = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1389:2: (iv_ruleViewSpecification= ruleViewSpecification EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1390:2: iv_ruleViewSpecification= ruleViewSpecification EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getViewSpecificationRule());
+ }
+ pushFollow(FOLLOW_ruleViewSpecification_in_entryRuleViewSpecification3166);
+ iv_ruleViewSpecification=ruleViewSpecification();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleViewSpecification;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleViewSpecification3176); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleViewSpecification"
+
+
+ // $ANTLR start "ruleViewSpecification"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1397:1: ruleViewSpecification returns [EObject current=null] : ( () otherlv_1= 'viewpart' ( (lv_id_2_0= ruleQualifiedName ) ) otherlv_3= '{' otherlv_4= 'viewname' ( (lv_viewName_5_0= RULE_STRING ) ) otherlv_6= 'viewclass' ( (lv_type_7_0= ruleJvmTypeReference ) ) (otherlv_8= 'viewcategory' ( (lv_category_9_0= ruleQualifiedName ) ) )? otherlv_10= '}' ) ;
+ public final EObject ruleViewSpecification() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_4=null;
+ Token lv_viewName_5_0=null;
+ Token otherlv_6=null;
+ Token otherlv_8=null;
+ Token otherlv_10=null;
+ AntlrDatatypeRuleToken lv_id_2_0 = null;
+
+ EObject lv_type_7_0 = null;
+
+ AntlrDatatypeRuleToken lv_category_9_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1400:28: ( ( () otherlv_1= 'viewpart' ( (lv_id_2_0= ruleQualifiedName ) ) otherlv_3= '{' otherlv_4= 'viewname' ( (lv_viewName_5_0= RULE_STRING ) ) otherlv_6= 'viewclass' ( (lv_type_7_0= ruleJvmTypeReference ) ) (otherlv_8= 'viewcategory' ( (lv_category_9_0= ruleQualifiedName ) ) )? otherlv_10= '}' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1401:1: ( () otherlv_1= 'viewpart' ( (lv_id_2_0= ruleQualifiedName ) ) otherlv_3= '{' otherlv_4= 'viewname' ( (lv_viewName_5_0= RULE_STRING ) ) otherlv_6= 'viewclass' ( (lv_type_7_0= ruleJvmTypeReference ) ) (otherlv_8= 'viewcategory' ( (lv_category_9_0= ruleQualifiedName ) ) )? otherlv_10= '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1401:1: ( () otherlv_1= 'viewpart' ( (lv_id_2_0= ruleQualifiedName ) ) otherlv_3= '{' otherlv_4= 'viewname' ( (lv_viewName_5_0= RULE_STRING ) ) otherlv_6= 'viewclass' ( (lv_type_7_0= ruleJvmTypeReference ) ) (otherlv_8= 'viewcategory' ( (lv_category_9_0= ruleQualifiedName ) ) )? otherlv_10= '}' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1401:2: () otherlv_1= 'viewpart' ( (lv_id_2_0= ruleQualifiedName ) ) otherlv_3= '{' otherlv_4= 'viewname' ( (lv_viewName_5_0= RULE_STRING ) ) otherlv_6= 'viewclass' ( (lv_type_7_0= ruleJvmTypeReference ) ) (otherlv_8= 'viewcategory' ( (lv_category_9_0= ruleQualifiedName ) ) )? otherlv_10= '}'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1401:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1402:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getViewSpecificationAccess().getViewSpecificationAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,33,FOLLOW_33_in_ruleViewSpecification3222); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getViewSpecificationAccess().getViewpartKeyword_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1411:1: ( (lv_id_2_0= ruleQualifiedName ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1412:1: (lv_id_2_0= ruleQualifiedName )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1412:1: (lv_id_2_0= ruleQualifiedName )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1413:3: lv_id_2_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewSpecificationAccess().getIdQualifiedNameParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_ruleViewSpecification3243);
+ lv_id_2_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getViewSpecificationRule());
+ }
+ set(
+ current,
+ "id",
+ lv_id_2_0,
+ "QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleViewSpecification3255); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getViewSpecificationAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ otherlv_4=(Token)match(input,34,FOLLOW_34_in_ruleViewSpecification3267); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getViewSpecificationAccess().getViewnameKeyword_4());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1437:1: ( (lv_viewName_5_0= RULE_STRING ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1438:1: (lv_viewName_5_0= RULE_STRING )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1438:1: (lv_viewName_5_0= RULE_STRING )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1439:3: lv_viewName_5_0= RULE_STRING
+ {
+ lv_viewName_5_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleViewSpecification3284); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_viewName_5_0, grammarAccess.getViewSpecificationAccess().getViewNameSTRINGTerminalRuleCall_5_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getViewSpecificationRule());
+ }
+ setWithLastConsumed(
+ current,
+ "viewName",
+ lv_viewName_5_0,
+ "STRING");
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_6=(Token)match(input,35,FOLLOW_35_in_ruleViewSpecification3301); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getViewSpecificationAccess().getViewclassKeyword_6());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1459:1: ( (lv_type_7_0= ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1460:1: (lv_type_7_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1460:1: (lv_type_7_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1461:3: lv_type_7_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewSpecificationAccess().getTypeJvmTypeReferenceParserRuleCall_7_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleViewSpecification3322);
+ lv_type_7_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getViewSpecificationRule());
+ }
+ set(
+ current,
+ "type",
+ lv_type_7_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1477:2: (otherlv_8= 'viewcategory' ( (lv_category_9_0= ruleQualifiedName ) ) )?
+ int alt20=2;
+ int LA20_0 = input.LA(1);
+
+ if ( (LA20_0==36) ) {
+ alt20=1;
+ }
+ switch (alt20) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1477:4: otherlv_8= 'viewcategory' ( (lv_category_9_0= ruleQualifiedName ) )
+ {
+ otherlv_8=(Token)match(input,36,FOLLOW_36_in_ruleViewSpecification3335); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_8, grammarAccess.getViewSpecificationAccess().getViewcategoryKeyword_8_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1481:1: ( (lv_category_9_0= ruleQualifiedName ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1482:1: (lv_category_9_0= ruleQualifiedName )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1482:1: (lv_category_9_0= ruleQualifiedName )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1483:3: lv_category_9_0= ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getViewSpecificationAccess().getCategoryQualifiedNameParserRuleCall_8_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_ruleViewSpecification3356);
+ lv_category_9_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getViewSpecificationRule());
+ }
+ set(
+ current,
+ "category",
+ lv_category_9_0,
+ "QualifiedName");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_10=(Token)match(input,16,FOLLOW_16_in_ruleViewSpecification3370); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_10, grammarAccess.getViewSpecificationAccess().getRightCurlyBracketKeyword_9());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleViewSpecification"
+
+
+ // $ANTLR start "entryRuleXExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1511:1: entryRuleXExpression returns [EObject current=null] : iv_ruleXExpression= ruleXExpression EOF ;
+ public final EObject entryRuleXExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1512:2: (iv_ruleXExpression= ruleXExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1513:2: iv_ruleXExpression= ruleXExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_entryRuleXExpression3406);
+ iv_ruleXExpression=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXExpression3416); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXExpression"
+
+
+ // $ANTLR start "ruleXExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1520:1: ruleXExpression returns [EObject current=null] : this_XAssignment_0= ruleXAssignment ;
+ public final EObject ruleXExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_XAssignment_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1523:28: (this_XAssignment_0= ruleXAssignment )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1525:5: this_XAssignment_0= ruleXAssignment
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall());
+
+ }
+ pushFollow(FOLLOW_ruleXAssignment_in_ruleXExpression3462);
+ this_XAssignment_0=ruleXAssignment();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XAssignment_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXExpression"
+
+
+ // $ANTLR start "entryRuleXAssignment"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1541:1: entryRuleXAssignment returns [EObject current=null] : iv_ruleXAssignment= ruleXAssignment EOF ;
+ public final EObject entryRuleXAssignment() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXAssignment = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1542:2: (iv_ruleXAssignment= ruleXAssignment EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1543:2: iv_ruleXAssignment= ruleXAssignment EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXAssignmentRule());
+ }
+ pushFollow(FOLLOW_ruleXAssignment_in_entryRuleXAssignment3496);
+ iv_ruleXAssignment=ruleXAssignment();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXAssignment;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXAssignment3506); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXAssignment"
+
+
+ // $ANTLR start "ruleXAssignment"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1550:1: ruleXAssignment returns [EObject current=null] : ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) ;
+ public final EObject ruleXAssignment() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_value_3_0 = null;
+
+ EObject this_XOrExpression_4 = null;
+
+ EObject lv_rightOperand_7_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1553:28: ( ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1554:1: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1554:1: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+ int alt22=2;
+ switch ( input.LA(1) ) {
+ case RULE_ID:
+ {
+ int LA22_1 = input.LA(2);
+
+ if ( (LA22_1==37) ) {
+ alt22=1;
+ }
+ else if ( (LA22_1==EOF||(LA22_1>=RULE_ID && LA22_1<=RULE_DECIMAL)||LA22_1==14||(LA22_1>=16 && LA22_1<=17)||LA22_1==21||LA22_1==23||LA22_1==26||LA22_1==29||(LA22_1>=38 && LA22_1<=72)||(LA22_1>=74 && LA22_1<=98)) ) {
+ alt22=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 22, 1, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case 17:
+ {
+ int LA22_2 = input.LA(2);
+
+ if ( (LA22_2==EOF||(LA22_2>=RULE_ID && LA22_2<=RULE_DECIMAL)||LA22_2==14||(LA22_2>=16 && LA22_2<=17)||LA22_2==21||LA22_2==23||LA22_2==26||LA22_2==29||(LA22_2>=38 && LA22_2<=72)||(LA22_2>=74 && LA22_2<=98)) ) {
+ alt22=2;
+ }
+ else if ( (LA22_2==37) ) {
+ alt22=1;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 22, 2, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case 85:
+ {
+ int LA22_3 = input.LA(2);
+
+ if ( (LA22_3==37) ) {
+ alt22=1;
+ }
+ else if ( (LA22_3==EOF||(LA22_3>=RULE_ID && LA22_3<=RULE_DECIMAL)||LA22_3==14||(LA22_3>=16 && LA22_3<=17)||LA22_3==21||LA22_3==23||LA22_3==26||LA22_3==29||(LA22_3>=38 && LA22_3<=72)||(LA22_3>=74 && LA22_3<=98)) ) {
+ alt22=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 22, 3, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case 86:
+ {
+ int LA22_4 = input.LA(2);
+
+ if ( (LA22_4==EOF||(LA22_4>=RULE_ID && LA22_4<=RULE_DECIMAL)||LA22_4==14||(LA22_4>=16 && LA22_4<=17)||LA22_4==21||LA22_4==23||LA22_4==26||LA22_4==29||(LA22_4>=38 && LA22_4<=72)||(LA22_4>=74 && LA22_4<=98)) ) {
+ alt22=2;
+ }
+ else if ( (LA22_4==37) ) {
+ alt22=1;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 22, 4, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case 87:
+ {
+ int LA22_5 = input.LA(2);
+
+ if ( (LA22_5==37) ) {
+ alt22=1;
+ }
+ else if ( (LA22_5==EOF||(LA22_5>=RULE_ID && LA22_5<=RULE_DECIMAL)||LA22_5==14||(LA22_5>=16 && LA22_5<=17)||LA22_5==21||LA22_5==23||LA22_5==26||LA22_5==29||(LA22_5>=38 && LA22_5<=72)||(LA22_5>=74 && LA22_5<=98)) ) {
+ alt22=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 22, 5, input);
+
+ throw nvae;
+ }
+ }
+ break;
+ case RULE_STRING:
+ case RULE_HEX:
+ case RULE_INT:
+ case RULE_DECIMAL:
+ case 14:
+ case 50:
+ case 57:
+ case 58:
+ case 63:
+ case 68:
+ case 70:
+ case 71:
+ case 75:
+ case 77:
+ case 80:
+ case 81:
+ case 82:
+ case 88:
+ case 89:
+ case 90:
+ case 91:
+ case 92:
+ case 93:
+ case 94:
+ case 95:
+ case 96:
+ {
+ alt22=2;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 22, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt22) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1554:2: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1554:2: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1554:3: () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1554:3: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1555:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1560:2: ( ( ruleFeatureCallID ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1561:1: ( ruleFeatureCallID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1561:1: ( ruleFeatureCallID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1562:3: ruleFeatureCallID
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXAssignmentRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleFeatureCallID_in_ruleXAssignment3564);
+ ruleFeatureCallID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2());
+
+ }
+ pushFollow(FOLLOW_ruleOpSingleAssign_in_ruleXAssignment3580);
+ ruleOpSingleAssign();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1583:1: ( (lv_value_3_0= ruleXAssignment ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1584:1: (lv_value_3_0= ruleXAssignment )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1584:1: (lv_value_3_0= ruleXAssignment )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1585:3: lv_value_3_0= ruleXAssignment
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0());
+
+ }
+ pushFollow(FOLLOW_ruleXAssignment_in_ruleXAssignment3600);
+ lv_value_3_0=ruleXAssignment();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXAssignmentRule());
+ }
+ set(
+ current,
+ "value",
+ lv_value_3_0,
+ "XAssignment");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1602:6: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1602:6: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1603:5: this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXOrExpression_in_ruleXAssignment3630);
+ this_XOrExpression_4=ruleXOrExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XOrExpression_4;
+ afterParserOrEnumRuleCall();
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1611:1: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+ int alt21=2;
+ int LA21_0 = input.LA(1);
+
+ if ( (LA21_0==38) ) {
+ int LA21_1 = input.LA(2);
+
+ if ( (synpred1_InternalEmfParsleyDsl()) ) {
+ alt21=1;
+ }
+ }
+ else if ( (LA21_0==39) ) {
+ int LA21_2 = input.LA(2);
+
+ if ( (synpred1_InternalEmfParsleyDsl()) ) {
+ alt21=1;
+ }
+ }
+ switch (alt21) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1611:2: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1611:2: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1611:3: ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1616:6: ( () ( ( ruleOpMultiAssign ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1616:7: () ( ( ruleOpMultiAssign ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1616:7: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1617:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndSet(
+ grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1622:2: ( ( ruleOpMultiAssign ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1623:1: ( ruleOpMultiAssign )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1623:1: ( ruleOpMultiAssign )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1624:3: ruleOpMultiAssign
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXAssignmentRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleOpMultiAssign_in_ruleXAssignment3683);
+ ruleOpMultiAssign();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1637:4: ( (lv_rightOperand_7_0= ruleXAssignment ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1638:1: (lv_rightOperand_7_0= ruleXAssignment )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1638:1: (lv_rightOperand_7_0= ruleXAssignment )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1639:3: lv_rightOperand_7_0= ruleXAssignment
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXAssignment_in_ruleXAssignment3706);
+ lv_rightOperand_7_0=ruleXAssignment();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXAssignmentRule());
+ }
+ set(
+ current,
+ "rightOperand",
+ lv_rightOperand_7_0,
+ "XAssignment");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXAssignment"
+
+
+ // $ANTLR start "entryRuleOpSingleAssign"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1663:1: entryRuleOpSingleAssign returns [String current=null] : iv_ruleOpSingleAssign= ruleOpSingleAssign EOF ;
+ public final String entryRuleOpSingleAssign() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpSingleAssign = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1664:2: (iv_ruleOpSingleAssign= ruleOpSingleAssign EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1665:2: iv_ruleOpSingleAssign= ruleOpSingleAssign EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpSingleAssignRule());
+ }
+ pushFollow(FOLLOW_ruleOpSingleAssign_in_entryRuleOpSingleAssign3746);
+ iv_ruleOpSingleAssign=ruleOpSingleAssign();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpSingleAssign.getText();
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpSingleAssign3757); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpSingleAssign"
+
+
+ // $ANTLR start "ruleOpSingleAssign"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1672:1: ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '=' ;
+ public final AntlrDatatypeRuleToken ruleOpSingleAssign() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1675:28: (kw= '=' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1677:2: kw= '='
+ {
+ kw=(Token)match(input,37,FOLLOW_37_in_ruleOpSingleAssign3794); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpSingleAssign"
+
+
+ // $ANTLR start "entryRuleOpMultiAssign"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1690:1: entryRuleOpMultiAssign returns [String current=null] : iv_ruleOpMultiAssign= ruleOpMultiAssign EOF ;
+ public final String entryRuleOpMultiAssign() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpMultiAssign = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1691:2: (iv_ruleOpMultiAssign= ruleOpMultiAssign EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1692:2: iv_ruleOpMultiAssign= ruleOpMultiAssign EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpMultiAssignRule());
+ }
+ pushFollow(FOLLOW_ruleOpMultiAssign_in_entryRuleOpMultiAssign3834);
+ iv_ruleOpMultiAssign=ruleOpMultiAssign();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpMultiAssign.getText();
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpMultiAssign3845); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpMultiAssign"
+
+
+ // $ANTLR start "ruleOpMultiAssign"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1699:1: ruleOpMultiAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+=' | kw= '-=' ) ;
+ public final AntlrDatatypeRuleToken ruleOpMultiAssign() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1702:28: ( (kw= '+=' | kw= '-=' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1703:1: (kw= '+=' | kw= '-=' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1703:1: (kw= '+=' | kw= '-=' )
+ int alt23=2;
+ int LA23_0 = input.LA(1);
+
+ if ( (LA23_0==38) ) {
+ alt23=1;
+ }
+ else if ( (LA23_0==39) ) {
+ alt23=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 23, 0, input);
+
+ throw nvae;
+ }
+ switch (alt23) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1704:2: kw= '+='
+ {
+ kw=(Token)match(input,38,FOLLOW_38_in_ruleOpMultiAssign3883); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1711:2: kw= '-='
+ {
+ kw=(Token)match(input,39,FOLLOW_39_in_ruleOpMultiAssign3902); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpMultiAssign"
+
+
+ // $ANTLR start "entryRuleXOrExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1724:1: entryRuleXOrExpression returns [EObject current=null] : iv_ruleXOrExpression= ruleXOrExpression EOF ;
+ public final EObject entryRuleXOrExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXOrExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1725:2: (iv_ruleXOrExpression= ruleXOrExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1726:2: iv_ruleXOrExpression= ruleXOrExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXOrExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXOrExpression_in_entryRuleXOrExpression3942);
+ iv_ruleXOrExpression=ruleXOrExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXOrExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXOrExpression3952); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXOrExpression"
+
+
+ // $ANTLR start "ruleXOrExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1733:1: ruleXOrExpression returns [EObject current=null] : (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) ;
+ public final EObject ruleXOrExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_XAndExpression_0 = null;
+
+ EObject lv_rightOperand_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1736:28: ( (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1737:1: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1737:1: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1738:5: this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleXAndExpression_in_ruleXOrExpression3999);
+ this_XAndExpression_0=ruleXAndExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XAndExpression_0;
+ afterParserOrEnumRuleCall();
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1746:1: ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+ loop24:
+ do {
+ int alt24=2;
+ int LA24_0 = input.LA(1);
+
+ if ( (LA24_0==40) ) {
+ int LA24_2 = input.LA(2);
+
+ if ( (synpred2_InternalEmfParsleyDsl()) ) {
+ alt24=1;
+ }
+
+
+ }
+
+
+ switch (alt24) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1746:2: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1746:2: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1746:3: ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1751:6: ( () ( ( ruleOpOr ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1751:7: () ( ( ruleOpOr ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1751:7: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1752:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndSet(
+ grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1757:2: ( ( ruleOpOr ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1758:1: ( ruleOpOr )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1758:1: ( ruleOpOr )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1759:3: ruleOpOr
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXOrExpressionRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleOpOr_in_ruleXOrExpression4052);
+ ruleOpOr();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1772:4: ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1773:1: (lv_rightOperand_3_0= ruleXAndExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1773:1: (lv_rightOperand_3_0= ruleXAndExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1774:3: lv_rightOperand_3_0= ruleXAndExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXAndExpression_in_ruleXOrExpression4075);
+ lv_rightOperand_3_0=ruleXAndExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXOrExpressionRule());
+ }
+ set(
+ current,
+ "rightOperand",
+ lv_rightOperand_3_0,
+ "XAndExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop24;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXOrExpression"
+
+
+ // $ANTLR start "entryRuleOpOr"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1798:1: entryRuleOpOr returns [String current=null] : iv_ruleOpOr= ruleOpOr EOF ;
+ public final String entryRuleOpOr() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpOr = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1799:2: (iv_ruleOpOr= ruleOpOr EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1800:2: iv_ruleOpOr= ruleOpOr EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpOrRule());
+ }
+ pushFollow(FOLLOW_ruleOpOr_in_entryRuleOpOr4114);
+ iv_ruleOpOr=ruleOpOr();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpOr.getText();
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpOr4125); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpOr"
+
+
+ // $ANTLR start "ruleOpOr"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1807:1: ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '||' ;
+ public final AntlrDatatypeRuleToken ruleOpOr() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1810:28: (kw= '||' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1812:2: kw= '||'
+ {
+ kw=(Token)match(input,40,FOLLOW_40_in_ruleOpOr4162); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpOr"
+
+
+ // $ANTLR start "entryRuleXAndExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1825:1: entryRuleXAndExpression returns [EObject current=null] : iv_ruleXAndExpression= ruleXAndExpression EOF ;
+ public final EObject entryRuleXAndExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXAndExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1826:2: (iv_ruleXAndExpression= ruleXAndExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1827:2: iv_ruleXAndExpression= ruleXAndExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXAndExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXAndExpression_in_entryRuleXAndExpression4201);
+ iv_ruleXAndExpression=ruleXAndExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXAndExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXAndExpression4211); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXAndExpression"
+
+
+ // $ANTLR start "ruleXAndExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1834:1: ruleXAndExpression returns [EObject current=null] : (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) ;
+ public final EObject ruleXAndExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_XEqualityExpression_0 = null;
+
+ EObject lv_rightOperand_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1837:28: ( (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1838:1: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1838:1: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1839:5: this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleXEqualityExpression_in_ruleXAndExpression4258);
+ this_XEqualityExpression_0=ruleXEqualityExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XEqualityExpression_0;
+ afterParserOrEnumRuleCall();
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1847:1: ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
+ loop25:
+ do {
+ int alt25=2;
+ int LA25_0 = input.LA(1);
+
+ if ( (LA25_0==41) ) {
+ int LA25_2 = input.LA(2);
+
+ if ( (synpred3_InternalEmfParsleyDsl()) ) {
+ alt25=1;
+ }
+
+
+ }
+
+
+ switch (alt25) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1847:2: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1847:2: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1847:3: ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1852:6: ( () ( ( ruleOpAnd ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1852:7: () ( ( ruleOpAnd ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1852:7: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1853:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndSet(
+ grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1858:2: ( ( ruleOpAnd ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1859:1: ( ruleOpAnd )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1859:1: ( ruleOpAnd )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1860:3: ruleOpAnd
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXAndExpressionRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleOpAnd_in_ruleXAndExpression4311);
+ ruleOpAnd();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1873:4: ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1874:1: (lv_rightOperand_3_0= ruleXEqualityExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1874:1: (lv_rightOperand_3_0= ruleXEqualityExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1875:3: lv_rightOperand_3_0= ruleXEqualityExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXEqualityExpression_in_ruleXAndExpression4334);
+ lv_rightOperand_3_0=ruleXEqualityExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXAndExpressionRule());
+ }
+ set(
+ current,
+ "rightOperand",
+ lv_rightOperand_3_0,
+ "XEqualityExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop25;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXAndExpression"
+
+
+ // $ANTLR start "entryRuleOpAnd"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1899:1: entryRuleOpAnd returns [String current=null] : iv_ruleOpAnd= ruleOpAnd EOF ;
+ public final String entryRuleOpAnd() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpAnd = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1900:2: (iv_ruleOpAnd= ruleOpAnd EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1901:2: iv_ruleOpAnd= ruleOpAnd EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpAndRule());
+ }
+ pushFollow(FOLLOW_ruleOpAnd_in_entryRuleOpAnd4373);
+ iv_ruleOpAnd=ruleOpAnd();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpAnd.getText();
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpAnd4384); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpAnd"
+
+
+ // $ANTLR start "ruleOpAnd"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1908:1: ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '&&' ;
+ public final AntlrDatatypeRuleToken ruleOpAnd() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1911:28: (kw= '&&' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1913:2: kw= '&&'
+ {
+ kw=(Token)match(input,41,FOLLOW_41_in_ruleOpAnd4421); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpAnd"
+
+
+ // $ANTLR start "entryRuleXEqualityExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1926:1: entryRuleXEqualityExpression returns [EObject current=null] : iv_ruleXEqualityExpression= ruleXEqualityExpression EOF ;
+ public final EObject entryRuleXEqualityExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXEqualityExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1927:2: (iv_ruleXEqualityExpression= ruleXEqualityExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1928:2: iv_ruleXEqualityExpression= ruleXEqualityExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXEqualityExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXEqualityExpression_in_entryRuleXEqualityExpression4460);
+ iv_ruleXEqualityExpression=ruleXEqualityExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXEqualityExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXEqualityExpression4470); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXEqualityExpression"
+
+
+ // $ANTLR start "ruleXEqualityExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1935:1: ruleXEqualityExpression returns [EObject current=null] : (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) ;
+ public final EObject ruleXEqualityExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_XRelationalExpression_0 = null;
+
+ EObject lv_rightOperand_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1938:28: ( (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1939:1: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1939:1: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1940:5: this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleXRelationalExpression_in_ruleXEqualityExpression4517);
+ this_XRelationalExpression_0=ruleXRelationalExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XRelationalExpression_0;
+ afterParserOrEnumRuleCall();
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1948:1: ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+ loop26:
+ do {
+ int alt26=2;
+ switch ( input.LA(1) ) {
+ case 42:
+ {
+ int LA26_2 = input.LA(2);
+
+ if ( (synpred4_InternalEmfParsleyDsl()) ) {
+ alt26=1;
+ }
+
+
+ }
+ break;
+ case 43:
+ {
+ int LA26_3 = input.LA(2);
+
+ if ( (synpred4_InternalEmfParsleyDsl()) ) {
+ alt26=1;
+ }
+
+
+ }
+ break;
+ case 44:
+ {
+ int LA26_4 = input.LA(2);
+
+ if ( (synpred4_InternalEmfParsleyDsl()) ) {
+ alt26=1;
+ }
+
+
+ }
+ break;
+ case 45:
+ {
+ int LA26_5 = input.LA(2);
+
+ if ( (synpred4_InternalEmfParsleyDsl()) ) {
+ alt26=1;
+ }
+
+
+ }
+ break;
+
+ }
+
+ switch (alt26) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1948:2: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1948:2: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1948:3: ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1953:6: ( () ( ( ruleOpEquality ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1953:7: () ( ( ruleOpEquality ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1953:7: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1954:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndSet(
+ grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1959:2: ( ( ruleOpEquality ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1960:1: ( ruleOpEquality )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1960:1: ( ruleOpEquality )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1961:3: ruleOpEquality
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXEqualityExpressionRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleOpEquality_in_ruleXEqualityExpression4570);
+ ruleOpEquality();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1974:4: ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1975:1: (lv_rightOperand_3_0= ruleXRelationalExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1975:1: (lv_rightOperand_3_0= ruleXRelationalExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1976:3: lv_rightOperand_3_0= ruleXRelationalExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXRelationalExpression_in_ruleXEqualityExpression4593);
+ lv_rightOperand_3_0=ruleXRelationalExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXEqualityExpressionRule());
+ }
+ set(
+ current,
+ "rightOperand",
+ lv_rightOperand_3_0,
+ "XRelationalExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop26;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXEqualityExpression"
+
+
+ // $ANTLR start "entryRuleOpEquality"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2000:1: entryRuleOpEquality returns [String current=null] : iv_ruleOpEquality= ruleOpEquality EOF ;
+ public final String entryRuleOpEquality() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpEquality = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2001:2: (iv_ruleOpEquality= ruleOpEquality EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2002:2: iv_ruleOpEquality= ruleOpEquality EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpEqualityRule());
+ }
+ pushFollow(FOLLOW_ruleOpEquality_in_entryRuleOpEquality4632);
+ iv_ruleOpEquality=ruleOpEquality();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpEquality.getText();
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpEquality4643); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpEquality"
+
+
+ // $ANTLR start "ruleOpEquality"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2009:1: ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) ;
+ public final AntlrDatatypeRuleToken ruleOpEquality() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2012:28: ( (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2013:1: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2013:1: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+ int alt27=4;
+ switch ( input.LA(1) ) {
+ case 42:
+ {
+ alt27=1;
+ }
+ break;
+ case 43:
+ {
+ alt27=2;
+ }
+ break;
+ case 44:
+ {
+ alt27=3;
+ }
+ break;
+ case 45:
+ {
+ alt27=4;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 27, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt27) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2014:2: kw= '=='
+ {
+ kw=(Token)match(input,42,FOLLOW_42_in_ruleOpEquality4681); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2021:2: kw= '!='
+ {
+ kw=(Token)match(input,43,FOLLOW_43_in_ruleOpEquality4700); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1());
+
+ }
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2028:2: kw= '==='
+ {
+ kw=(Token)match(input,44,FOLLOW_44_in_ruleOpEquality4719); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2());
+
+ }
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2035:2: kw= '!=='
+ {
+ kw=(Token)match(input,45,FOLLOW_45_in_ruleOpEquality4738); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpEquality"
+
+
+ // $ANTLR start "entryRuleXRelationalExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2048:1: entryRuleXRelationalExpression returns [EObject current=null] : iv_ruleXRelationalExpression= ruleXRelationalExpression EOF ;
+ public final EObject entryRuleXRelationalExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXRelationalExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2049:2: (iv_ruleXRelationalExpression= ruleXRelationalExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2050:2: iv_ruleXRelationalExpression= ruleXRelationalExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXRelationalExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXRelationalExpression_in_entryRuleXRelationalExpression4778);
+ iv_ruleXRelationalExpression=ruleXRelationalExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXRelationalExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXRelationalExpression4788); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXRelationalExpression"
+
+
+ // $ANTLR start "ruleXRelationalExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2057:1: ruleXRelationalExpression returns [EObject current=null] : (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) ;
+ public final EObject ruleXRelationalExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_2=null;
+ EObject this_XOtherOperatorExpression_0 = null;
+
+ EObject lv_type_3_0 = null;
+
+ EObject lv_rightOperand_6_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2060:28: ( (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2061:1: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2061:1: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2062:5: this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleXOtherOperatorExpression_in_ruleXRelationalExpression4835);
+ this_XOtherOperatorExpression_0=ruleXOtherOperatorExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XOtherOperatorExpression_0;
+ afterParserOrEnumRuleCall();
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2070:1: ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+ loop28:
+ do {
+ int alt28=3;
+ switch ( input.LA(1) ) {
+ case 49:
+ {
+ int LA28_2 = input.LA(2);
+
+ if ( (synpred6_InternalEmfParsleyDsl()) ) {
+ alt28=2;
+ }
+
+
+ }
+ break;
+ case 50:
+ {
+ int LA28_3 = input.LA(2);
+
+ if ( (synpred6_InternalEmfParsleyDsl()) ) {
+ alt28=2;
+ }
+
+
+ }
+ break;
+ case 46:
+ {
+ int LA28_4 = input.LA(2);
+
+ if ( (synpred5_InternalEmfParsleyDsl()) ) {
+ alt28=1;
+ }
+
+
+ }
+ break;
+ case 47:
+ {
+ int LA28_5 = input.LA(2);
+
+ if ( (synpred6_InternalEmfParsleyDsl()) ) {
+ alt28=2;
+ }
+
+
+ }
+ break;
+ case 48:
+ {
+ int LA28_6 = input.LA(2);
+
+ if ( (synpred6_InternalEmfParsleyDsl()) ) {
+ alt28=2;
+ }
+
+
+ }
+ break;
+
+ }
+
+ switch (alt28) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2070:2: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2070:2: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2070:3: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2070:3: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2070:4: ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2072:5: ( () otherlv_2= 'instanceof' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2072:6: () otherlv_2= 'instanceof'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2072:6: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2073:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndSet(
+ grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_2=(Token)match(input,46,FOLLOW_46_in_ruleXRelationalExpression4871); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2082:3: ( (lv_type_3_0= ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2083:1: (lv_type_3_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2083:1: (lv_type_3_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2084:3: lv_type_3_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleXRelationalExpression4894);
+ lv_type_3_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+ }
+ set(
+ current,
+ "type",
+ lv_type_3_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2101:6: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2101:6: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2101:7: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2101:7: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2101:8: ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2106:6: ( () ( ( ruleOpCompare ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2106:7: () ( ( ruleOpCompare ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2106:7: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2107:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndSet(
+ grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2112:2: ( ( ruleOpCompare ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2113:1: ( ruleOpCompare )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2113:1: ( ruleOpCompare )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2114:3: ruleOpCompare
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXRelationalExpressionRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleOpCompare_in_ruleXRelationalExpression4955);
+ ruleOpCompare();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2127:4: ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2128:1: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2128:1: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2129:3: lv_rightOperand_6_0= ruleXOtherOperatorExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXOtherOperatorExpression_in_ruleXRelationalExpression4978);
+ lv_rightOperand_6_0=ruleXOtherOperatorExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+ }
+ set(
+ current,
+ "rightOperand",
+ lv_rightOperand_6_0,
+ "XOtherOperatorExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop28;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXRelationalExpression"
+
+
+ // $ANTLR start "entryRuleOpCompare"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2153:1: entryRuleOpCompare returns [String current=null] : iv_ruleOpCompare= ruleOpCompare EOF ;
+ public final String entryRuleOpCompare() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpCompare = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2154:2: (iv_ruleOpCompare= ruleOpCompare EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2155:2: iv_ruleOpCompare= ruleOpCompare EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpCompareRule());
+ }
+ pushFollow(FOLLOW_ruleOpCompare_in_entryRuleOpCompare5018);
+ iv_ruleOpCompare=ruleOpCompare();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpCompare.getText();
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpCompare5029); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpCompare"
+
+
+ // $ANTLR start "ruleOpCompare"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2162:1: ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '>=' | kw= '<=' | kw= '>' | kw= '<' ) ;
+ public final AntlrDatatypeRuleToken ruleOpCompare() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2165:28: ( (kw= '>=' | kw= '<=' | kw= '>' | kw= '<' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2166:1: (kw= '>=' | kw= '<=' | kw= '>' | kw= '<' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2166:1: (kw= '>=' | kw= '<=' | kw= '>' | kw= '<' )
+ int alt29=4;
+ switch ( input.LA(1) ) {
+ case 47:
+ {
+ alt29=1;
+ }
+ break;
+ case 48:
+ {
+ alt29=2;
+ }
+ break;
+ case 49:
+ {
+ alt29=3;
+ }
+ break;
+ case 50:
+ {
+ alt29=4;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 29, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt29) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2167:2: kw= '>='
+ {
+ kw=(Token)match(input,47,FOLLOW_47_in_ruleOpCompare5067); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2174:2: kw= '<='
+ {
+ kw=(Token)match(input,48,FOLLOW_48_in_ruleOpCompare5086); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignEqualsSignKeyword_1());
+
+ }
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2181:2: kw= '>'
+ {
+ kw=(Token)match(input,49,FOLLOW_49_in_ruleOpCompare5105); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2());
+
+ }
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2188:2: kw= '<'
+ {
+ kw=(Token)match(input,50,FOLLOW_50_in_ruleOpCompare5124); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpCompare"
+
+
+ // $ANTLR start "entryRuleXOtherOperatorExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2201:1: entryRuleXOtherOperatorExpression returns [EObject current=null] : iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF ;
+ public final EObject entryRuleXOtherOperatorExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXOtherOperatorExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2202:2: (iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2203:2: iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXOtherOperatorExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXOtherOperatorExpression_in_entryRuleXOtherOperatorExpression5164);
+ iv_ruleXOtherOperatorExpression=ruleXOtherOperatorExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXOtherOperatorExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXOtherOperatorExpression5174); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXOtherOperatorExpression"
+
+
+ // $ANTLR start "ruleXOtherOperatorExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2210:1: ruleXOtherOperatorExpression returns [EObject current=null] : (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) ;
+ public final EObject ruleXOtherOperatorExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_XAdditiveExpression_0 = null;
+
+ EObject lv_rightOperand_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2213:28: ( (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2214:1: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2214:1: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2215:5: this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleXAdditiveExpression_in_ruleXOtherOperatorExpression5221);
+ this_XAdditiveExpression_0=ruleXAdditiveExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XAdditiveExpression_0;
+ afterParserOrEnumRuleCall();
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2223:1: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+ loop30:
+ do {
+ int alt30=2;
+ alt30 = dfa30.predict(input);
+ switch (alt30) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2223:2: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2223:2: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2223:3: ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2228:6: ( () ( ( ruleOpOther ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2228:7: () ( ( ruleOpOther ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2228:7: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2229:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndSet(
+ grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2234:2: ( ( ruleOpOther ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2235:1: ( ruleOpOther )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2235:1: ( ruleOpOther )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2236:3: ruleOpOther
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXOtherOperatorExpressionRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleOpOther_in_ruleXOtherOperatorExpression5274);
+ ruleOpOther();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2249:4: ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2250:1: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2250:1: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2251:3: lv_rightOperand_3_0= ruleXAdditiveExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXAdditiveExpression_in_ruleXOtherOperatorExpression5297);
+ lv_rightOperand_3_0=ruleXAdditiveExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXOtherOperatorExpressionRule());
+ }
+ set(
+ current,
+ "rightOperand",
+ lv_rightOperand_3_0,
+ "XAdditiveExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop30;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXOtherOperatorExpression"
+
+
+ // $ANTLR start "entryRuleOpOther"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2275:1: entryRuleOpOther returns [String current=null] : iv_ruleOpOther= ruleOpOther EOF ;
+ public final String entryRuleOpOther() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpOther = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2276:2: (iv_ruleOpOther= ruleOpOther EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2277:2: iv_ruleOpOther= ruleOpOther EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpOtherRule());
+ }
+ pushFollow(FOLLOW_ruleOpOther_in_entryRuleOpOther5336);
+ iv_ruleOpOther=ruleOpOther();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpOther.getText();
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpOther5347); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpOther"
+
+
+ // $ANTLR start "ruleOpOther"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2284:1: ruleOpOther returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' ) ) | kw= '<>' | kw= '?:' | kw= '<=>' ) ;
+ public final AntlrDatatypeRuleToken ruleOpOther() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2287:28: ( (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' ) ) | kw= '<>' | kw= '?:' | kw= '<=>' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2288:1: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' ) ) | kw= '<>' | kw= '?:' | kw= '<=>' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2288:1: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' ) ) | kw= '<>' | kw= '?:' | kw= '<=>' )
+ int alt33=10;
+ alt33 = dfa33.predict(input);
+ switch (alt33) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2289:2: kw= '->'
+ {
+ kw=(Token)match(input,21,FOLLOW_21_in_ruleOpOther5385); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2296:2: kw= '..<'
+ {
+ kw=(Token)match(input,51,FOLLOW_51_in_ruleOpOther5404); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1());
+
+ }
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2302:6: (kw= '>' kw= '..' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2302:6: (kw= '>' kw= '..' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2303:2: kw= '>' kw= '..'
+ {
+ kw=(Token)match(input,49,FOLLOW_49_in_ruleOpOther5424); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0());
+
+ }
+ kw=(Token)match(input,52,FOLLOW_52_in_ruleOpOther5437); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2316:2: kw= '..'
+ {
+ kw=(Token)match(input,52,FOLLOW_52_in_ruleOpOther5457); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3());
+
+ }
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2323:2: kw= '=>'
+ {
+ kw=(Token)match(input,53,FOLLOW_53_in_ruleOpOther5476); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4());
+
+ }
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2329:6: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2329:6: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2330:2: kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+ {
+ kw=(Token)match(input,49,FOLLOW_49_in_ruleOpOther5496); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2335:1: ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+ int alt31=2;
+ int LA31_0 = input.LA(1);
+
+ if ( (LA31_0==49) ) {
+ int LA31_1 = input.LA(2);
+
+ if ( (LA31_1==49) && (synpred8_InternalEmfParsleyDsl())) {
+ alt31=1;
+ }
+ else if ( (LA31_1==EOF||(LA31_1>=RULE_ID && LA31_1<=RULE_DECIMAL)||LA31_1==14||LA31_1==17||LA31_1==50||(LA31_1>=57 && LA31_1<=58)||LA31_1==63||LA31_1==68||(LA31_1>=70 && LA31_1<=71)||LA31_1==75||LA31_1==77||(LA31_1>=80 && LA31_1<=82)||(LA31_1>=85 && LA31_1<=96)) ) {
+ alt31=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 31, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 31, 0, input);
+
+ throw nvae;
+ }
+ switch (alt31) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2335:2: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2335:2: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2335:3: ( ( '>' '>' ) )=> (kw= '>' kw= '>' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2339:5: (kw= '>' kw= '>' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2340:2: kw= '>' kw= '>'
+ {
+ kw=(Token)match(input,49,FOLLOW_49_in_ruleOpOther5527); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0());
+
+ }
+ kw=(Token)match(input,49,FOLLOW_49_in_ruleOpOther5540); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1());
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2353:2: kw= '>'
+ {
+ kw=(Token)match(input,49,FOLLOW_49_in_ruleOpOther5561); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2359:6: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2359:6: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2360:2: kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' )
+ {
+ kw=(Token)match(input,50,FOLLOW_50_in_ruleOpOther5583); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2365:1: ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' )
+ int alt32=2;
+ int LA32_0 = input.LA(1);
+
+ if ( (LA32_0==50) ) {
+ int LA32_1 = input.LA(2);
+
+ if ( (synpred9_InternalEmfParsleyDsl()) ) {
+ alt32=1;
+ }
+ else if ( (true) ) {
+ alt32=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 32, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 32, 0, input);
+
+ throw nvae;
+ }
+ switch (alt32) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2365:2: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2365:2: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2365:3: ( ( '<' '<' ) )=> (kw= '<' kw= '<' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2369:5: (kw= '<' kw= '<' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2370:2: kw= '<' kw= '<'
+ {
+ kw=(Token)match(input,50,FOLLOW_50_in_ruleOpOther5614); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0());
+
+ }
+ kw=(Token)match(input,50,FOLLOW_50_in_ruleOpOther5627); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1());
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2383:2: kw= '<'
+ {
+ kw=(Token)match(input,50,FOLLOW_50_in_ruleOpOther5648); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2390:2: kw= '<>'
+ {
+ kw=(Token)match(input,54,FOLLOW_54_in_ruleOpOther5669); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7());
+
+ }
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2397:2: kw= '?:'
+ {
+ kw=(Token)match(input,55,FOLLOW_55_in_ruleOpOther5688); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8());
+
+ }
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2404:2: kw= '<=>'
+ {
+ kw=(Token)match(input,56,FOLLOW_56_in_ruleOpOther5707); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignEqualsSignGreaterThanSignKeyword_9());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpOther"
+
+
+ // $ANTLR start "entryRuleXAdditiveExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2417:1: entryRuleXAdditiveExpression returns [EObject current=null] : iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF ;
+ public final EObject entryRuleXAdditiveExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXAdditiveExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2418:2: (iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2419:2: iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXAdditiveExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXAdditiveExpression_in_entryRuleXAdditiveExpression5747);
+ iv_ruleXAdditiveExpression=ruleXAdditiveExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXAdditiveExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXAdditiveExpression5757); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXAdditiveExpression"
+
+
+ // $ANTLR start "ruleXAdditiveExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2426:1: ruleXAdditiveExpression returns [EObject current=null] : (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) ;
+ public final EObject ruleXAdditiveExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_XMultiplicativeExpression_0 = null;
+
+ EObject lv_rightOperand_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2429:28: ( (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2430:1: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2430:1: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2431:5: this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleXMultiplicativeExpression_in_ruleXAdditiveExpression5804);
+ this_XMultiplicativeExpression_0=ruleXMultiplicativeExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XMultiplicativeExpression_0;
+ afterParserOrEnumRuleCall();
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2439:1: ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
+ loop34:
+ do {
+ int alt34=2;
+ int LA34_0 = input.LA(1);
+
+ if ( (LA34_0==57) ) {
+ int LA34_2 = input.LA(2);
+
+ if ( (synpred10_InternalEmfParsleyDsl()) ) {
+ alt34=1;
+ }
+
+
+ }
+ else if ( (LA34_0==58) ) {
+ int LA34_3 = input.LA(2);
+
+ if ( (synpred10_InternalEmfParsleyDsl()) ) {
+ alt34=1;
+ }
+
+
+ }
+
+
+ switch (alt34) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2439:2: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2439:2: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2439:3: ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2444:6: ( () ( ( ruleOpAdd ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2444:7: () ( ( ruleOpAdd ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2444:7: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2445:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndSet(
+ grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2450:2: ( ( ruleOpAdd ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2451:1: ( ruleOpAdd )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2451:1: ( ruleOpAdd )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2452:3: ruleOpAdd
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXAdditiveExpressionRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleOpAdd_in_ruleXAdditiveExpression5857);
+ ruleOpAdd();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2465:4: ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2466:1: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2466:1: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2467:3: lv_rightOperand_3_0= ruleXMultiplicativeExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXMultiplicativeExpression_in_ruleXAdditiveExpression5880);
+ lv_rightOperand_3_0=ruleXMultiplicativeExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXAdditiveExpressionRule());
+ }
+ set(
+ current,
+ "rightOperand",
+ lv_rightOperand_3_0,
+ "XMultiplicativeExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop34;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXAdditiveExpression"
+
+
+ // $ANTLR start "entryRuleOpAdd"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2491:1: entryRuleOpAdd returns [String current=null] : iv_ruleOpAdd= ruleOpAdd EOF ;
+ public final String entryRuleOpAdd() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpAdd = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2492:2: (iv_ruleOpAdd= ruleOpAdd EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2493:2: iv_ruleOpAdd= ruleOpAdd EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpAddRule());
+ }
+ pushFollow(FOLLOW_ruleOpAdd_in_entryRuleOpAdd5919);
+ iv_ruleOpAdd=ruleOpAdd();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpAdd.getText();
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpAdd5930); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpAdd"
+
+
+ // $ANTLR start "ruleOpAdd"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2500:1: ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+' | kw= '-' ) ;
+ public final AntlrDatatypeRuleToken ruleOpAdd() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2503:28: ( (kw= '+' | kw= '-' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2504:1: (kw= '+' | kw= '-' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2504:1: (kw= '+' | kw= '-' )
+ int alt35=2;
+ int LA35_0 = input.LA(1);
+
+ if ( (LA35_0==57) ) {
+ alt35=1;
+ }
+ else if ( (LA35_0==58) ) {
+ alt35=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 35, 0, input);
+
+ throw nvae;
+ }
+ switch (alt35) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2505:2: kw= '+'
+ {
+ kw=(Token)match(input,57,FOLLOW_57_in_ruleOpAdd5968); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpAddAccess().getPlusSignKeyword_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2512:2: kw= '-'
+ {
+ kw=(Token)match(input,58,FOLLOW_58_in_ruleOpAdd5987); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpAdd"
+
+
+ // $ANTLR start "entryRuleXMultiplicativeExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2525:1: entryRuleXMultiplicativeExpression returns [EObject current=null] : iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF ;
+ public final EObject entryRuleXMultiplicativeExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXMultiplicativeExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2526:2: (iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2527:2: iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXMultiplicativeExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXMultiplicativeExpression_in_entryRuleXMultiplicativeExpression6027);
+ iv_ruleXMultiplicativeExpression=ruleXMultiplicativeExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXMultiplicativeExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXMultiplicativeExpression6037); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXMultiplicativeExpression"
+
+
+ // $ANTLR start "ruleXMultiplicativeExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2534:1: ruleXMultiplicativeExpression returns [EObject current=null] : (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) ;
+ public final EObject ruleXMultiplicativeExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_XUnaryOperation_0 = null;
+
+ EObject lv_rightOperand_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2537:28: ( (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2538:1: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2538:1: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2539:5: this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleXUnaryOperation_in_ruleXMultiplicativeExpression6084);
+ this_XUnaryOperation_0=ruleXUnaryOperation();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XUnaryOperation_0;
+ afterParserOrEnumRuleCall();
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2547:1: ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
+ loop36:
+ do {
+ int alt36=2;
+ switch ( input.LA(1) ) {
+ case 59:
+ {
+ int LA36_2 = input.LA(2);
+
+ if ( (synpred11_InternalEmfParsleyDsl()) ) {
+ alt36=1;
+ }
+
+
+ }
+ break;
+ case 60:
+ {
+ int LA36_3 = input.LA(2);
+
+ if ( (synpred11_InternalEmfParsleyDsl()) ) {
+ alt36=1;
+ }
+
+
+ }
+ break;
+ case 61:
+ {
+ int LA36_4 = input.LA(2);
+
+ if ( (synpred11_InternalEmfParsleyDsl()) ) {
+ alt36=1;
+ }
+
+
+ }
+ break;
+ case 62:
+ {
+ int LA36_5 = input.LA(2);
+
+ if ( (synpred11_InternalEmfParsleyDsl()) ) {
+ alt36=1;
+ }
+
+
+ }
+ break;
+
+ }
+
+ switch (alt36) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2547:2: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2547:2: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2547:3: ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2552:6: ( () ( ( ruleOpMulti ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2552:7: () ( ( ruleOpMulti ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2552:7: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2553:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndSet(
+ grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2558:2: ( ( ruleOpMulti ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2559:1: ( ruleOpMulti )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2559:1: ( ruleOpMulti )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2560:3: ruleOpMulti
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXMultiplicativeExpressionRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleOpMulti_in_ruleXMultiplicativeExpression6137);
+ ruleOpMulti();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2573:4: ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2574:1: (lv_rightOperand_3_0= ruleXUnaryOperation )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2574:1: (lv_rightOperand_3_0= ruleXUnaryOperation )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2575:3: lv_rightOperand_3_0= ruleXUnaryOperation
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXUnaryOperation_in_ruleXMultiplicativeExpression6160);
+ lv_rightOperand_3_0=ruleXUnaryOperation();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXMultiplicativeExpressionRule());
+ }
+ set(
+ current,
+ "rightOperand",
+ lv_rightOperand_3_0,
+ "XUnaryOperation");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop36;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXMultiplicativeExpression"
+
+
+ // $ANTLR start "entryRuleOpMulti"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2599:1: entryRuleOpMulti returns [String current=null] : iv_ruleOpMulti= ruleOpMulti EOF ;
+ public final String entryRuleOpMulti() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpMulti = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2600:2: (iv_ruleOpMulti= ruleOpMulti EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2601:2: iv_ruleOpMulti= ruleOpMulti EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpMultiRule());
+ }
+ pushFollow(FOLLOW_ruleOpMulti_in_entryRuleOpMulti6199);
+ iv_ruleOpMulti=ruleOpMulti();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpMulti.getText();
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpMulti6210); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpMulti"
+
+
+ // $ANTLR start "ruleOpMulti"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2608:1: ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) ;
+ public final AntlrDatatypeRuleToken ruleOpMulti() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2611:28: ( (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2612:1: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2612:1: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
+ int alt37=4;
+ switch ( input.LA(1) ) {
+ case 59:
+ {
+ alt37=1;
+ }
+ break;
+ case 60:
+ {
+ alt37=2;
+ }
+ break;
+ case 61:
+ {
+ alt37=3;
+ }
+ break;
+ case 62:
+ {
+ alt37=4;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 37, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt37) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2613:2: kw= '*'
+ {
+ kw=(Token)match(input,59,FOLLOW_59_in_ruleOpMulti6248); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpMultiAccess().getAsteriskKeyword_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2620:2: kw= '**'
+ {
+ kw=(Token)match(input,60,FOLLOW_60_in_ruleOpMulti6267); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1());
+
+ }
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2627:2: kw= '/'
+ {
+ kw=(Token)match(input,61,FOLLOW_61_in_ruleOpMulti6286); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpMultiAccess().getSolidusKeyword_2());
+
+ }
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2634:2: kw= '%'
+ {
+ kw=(Token)match(input,62,FOLLOW_62_in_ruleOpMulti6305); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpMultiAccess().getPercentSignKeyword_3());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpMulti"
+
+
+ // $ANTLR start "entryRuleXUnaryOperation"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2647:1: entryRuleXUnaryOperation returns [EObject current=null] : iv_ruleXUnaryOperation= ruleXUnaryOperation EOF ;
+ public final EObject entryRuleXUnaryOperation() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXUnaryOperation = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2648:2: (iv_ruleXUnaryOperation= ruleXUnaryOperation EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2649:2: iv_ruleXUnaryOperation= ruleXUnaryOperation EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXUnaryOperationRule());
+ }
+ pushFollow(FOLLOW_ruleXUnaryOperation_in_entryRuleXUnaryOperation6345);
+ iv_ruleXUnaryOperation=ruleXUnaryOperation();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXUnaryOperation;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXUnaryOperation6355); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXUnaryOperation"
+
+
+ // $ANTLR start "ruleXUnaryOperation"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2656:1: ruleXUnaryOperation returns [EObject current=null] : ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) ;
+ public final EObject ruleXUnaryOperation() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_operand_2_0 = null;
+
+ EObject this_XCastedExpression_3 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2659:28: ( ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2660:1: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2660:1: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
+ int alt38=2;
+ int LA38_0 = input.LA(1);
+
+ if ( ((LA38_0>=57 && LA38_0<=58)||LA38_0==63) ) {
+ alt38=1;
+ }
+ else if ( ((LA38_0>=RULE_ID && LA38_0<=RULE_DECIMAL)||LA38_0==14||LA38_0==17||LA38_0==50||LA38_0==68||(LA38_0>=70 && LA38_0<=71)||LA38_0==75||LA38_0==77||(LA38_0>=80 && LA38_0<=82)||(LA38_0>=85 && LA38_0<=96)) ) {
+ alt38=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 38, 0, input);
+
+ throw nvae;
+ }
+ switch (alt38) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2660:2: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2660:2: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2660:3: () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2660:3: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2661:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2666:2: ( ( ruleOpUnary ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2667:1: ( ruleOpUnary )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2667:1: ( ruleOpUnary )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2668:3: ruleOpUnary
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXUnaryOperationRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleOpUnary_in_ruleXUnaryOperation6413);
+ ruleOpUnary();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2681:2: ( (lv_operand_2_0= ruleXUnaryOperation ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2682:1: (lv_operand_2_0= ruleXUnaryOperation )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2682:1: (lv_operand_2_0= ruleXUnaryOperation )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2683:3: lv_operand_2_0= ruleXUnaryOperation
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleXUnaryOperation_in_ruleXUnaryOperation6434);
+ lv_operand_2_0=ruleXUnaryOperation();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXUnaryOperationRule());
+ }
+ set(
+ current,
+ "operand",
+ lv_operand_2_0,
+ "XUnaryOperation");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2701:5: this_XCastedExpression_3= ruleXCastedExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_ruleXCastedExpression_in_ruleXUnaryOperation6463);
+ this_XCastedExpression_3=ruleXCastedExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XCastedExpression_3;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXUnaryOperation"
+
+
+ // $ANTLR start "entryRuleOpUnary"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2717:1: entryRuleOpUnary returns [String current=null] : iv_ruleOpUnary= ruleOpUnary EOF ;
+ public final String entryRuleOpUnary() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleOpUnary = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2718:2: (iv_ruleOpUnary= ruleOpUnary EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2719:2: iv_ruleOpUnary= ruleOpUnary EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getOpUnaryRule());
+ }
+ pushFollow(FOLLOW_ruleOpUnary_in_entryRuleOpUnary6499);
+ iv_ruleOpUnary=ruleOpUnary();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleOpUnary.getText();
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleOpUnary6510); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleOpUnary"
+
+
+ // $ANTLR start "ruleOpUnary"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2726:1: ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '!' | kw= '-' | kw= '+' ) ;
+ public final AntlrDatatypeRuleToken ruleOpUnary() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2729:28: ( (kw= '!' | kw= '-' | kw= '+' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2730:1: (kw= '!' | kw= '-' | kw= '+' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2730:1: (kw= '!' | kw= '-' | kw= '+' )
+ int alt39=3;
+ switch ( input.LA(1) ) {
+ case 63:
+ {
+ alt39=1;
+ }
+ break;
+ case 58:
+ {
+ alt39=2;
+ }
+ break;
+ case 57:
+ {
+ alt39=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 39, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt39) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2731:2: kw= '!'
+ {
+ kw=(Token)match(input,63,FOLLOW_63_in_ruleOpUnary6548); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2738:2: kw= '-'
+ {
+ kw=(Token)match(input,58,FOLLOW_58_in_ruleOpUnary6567); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1());
+
+ }
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2745:2: kw= '+'
+ {
+ kw=(Token)match(input,57,FOLLOW_57_in_ruleOpUnary6586); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleOpUnary"
+
+
+ // $ANTLR start "entryRuleXCastedExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2758:1: entryRuleXCastedExpression returns [EObject current=null] : iv_ruleXCastedExpression= ruleXCastedExpression EOF ;
+ public final EObject entryRuleXCastedExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXCastedExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2759:2: (iv_ruleXCastedExpression= ruleXCastedExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2760:2: iv_ruleXCastedExpression= ruleXCastedExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXCastedExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXCastedExpression_in_entryRuleXCastedExpression6626);
+ iv_ruleXCastedExpression=ruleXCastedExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXCastedExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXCastedExpression6636); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXCastedExpression"
+
+
+ // $ANTLR start "ruleXCastedExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2767:1: ruleXCastedExpression returns [EObject current=null] : (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) ;
+ public final EObject ruleXCastedExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_2=null;
+ EObject this_XMemberFeatureCall_0 = null;
+
+ EObject lv_type_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2770:28: ( (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2771:1: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2771:1: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2772:5: this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXCastedExpressionAccess().getXMemberFeatureCallParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleXMemberFeatureCall_in_ruleXCastedExpression6683);
+ this_XMemberFeatureCall_0=ruleXMemberFeatureCall();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XMemberFeatureCall_0;
+ afterParserOrEnumRuleCall();
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2780:1: ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
+ loop40:
+ do {
+ int alt40=2;
+ int LA40_0 = input.LA(1);
+
+ if ( (LA40_0==64) ) {
+ int LA40_2 = input.LA(2);
+
+ if ( (synpred12_InternalEmfParsleyDsl()) ) {
+ alt40=1;
+ }
+
+
+ }
+
+
+ switch (alt40) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2780:2: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2780:2: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2780:3: ( ( () 'as' ) )=> ( () otherlv_2= 'as' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2782:5: ( () otherlv_2= 'as' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2782:6: () otherlv_2= 'as'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2782:6: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2783:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndSet(
+ grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_2=(Token)match(input,64,FOLLOW_64_in_ruleXCastedExpression6718); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1());
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2792:3: ( (lv_type_3_0= ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2793:1: (lv_type_3_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2793:1: (lv_type_3_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2794:3: lv_type_3_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleXCastedExpression6741);
+ lv_type_3_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXCastedExpressionRule());
+ }
+ set(
+ current,
+ "type",
+ lv_type_3_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop40;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXCastedExpression"
+
+
+ // $ANTLR start "entryRuleXMemberFeatureCall"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2818:1: entryRuleXMemberFeatureCall returns [EObject current=null] : iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF ;
+ public final EObject entryRuleXMemberFeatureCall() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXMemberFeatureCall = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2819:2: (iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2820:2: iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXMemberFeatureCallRule());
+ }
+ pushFollow(FOLLOW_ruleXMemberFeatureCall_in_entryRuleXMemberFeatureCall6779);
+ iv_ruleXMemberFeatureCall=ruleXMemberFeatureCall();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXMemberFeatureCall;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXMemberFeatureCall6789); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXMemberFeatureCall"
+
+
+ // $ANTLR start "ruleXMemberFeatureCall"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2827:1: ruleXMemberFeatureCall returns [EObject current=null] : (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleFeatureCallID ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) ;
+ public final EObject ruleXMemberFeatureCall() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_2=null;
+ Token lv_explicitStatic_3_0=null;
+ Token otherlv_8=null;
+ Token lv_nullSafe_9_0=null;
+ Token lv_explicitStatic_10_0=null;
+ Token otherlv_11=null;
+ Token otherlv_13=null;
+ Token otherlv_15=null;
+ Token lv_explicitOperationCall_17_0=null;
+ Token otherlv_20=null;
+ Token otherlv_22=null;
+ EObject this_XPrimaryExpression_0 = null;
+
+ EObject lv_value_6_0 = null;
+
+ EObject lv_typeArguments_12_0 = null;
+
+ EObject lv_typeArguments_14_0 = null;
+
+ EObject lv_memberCallArguments_18_0 = null;
+
+ EObject lv_memberCallArguments_19_0 = null;
+
+ EObject lv_memberCallArguments_21_0 = null;
+
+ EObject lv_memberCallArguments_23_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2830:28: ( (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleFeatureCallID ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2831:1: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleFeatureCallID ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2831:1: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleFeatureCallID ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2832:5: this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleFeatureCallID ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleXPrimaryExpression_in_ruleXMemberFeatureCall6836);
+ this_XPrimaryExpression_0=ruleXPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XPrimaryExpression_0;
+ afterParserOrEnumRuleCall();
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2840:1: ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleFeatureCallID ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
+ loop49:
+ do {
+ int alt49=3;
+ switch ( input.LA(1) ) {
+ case 65:
+ {
+ int LA49_2 = input.LA(2);
+
+ if ( (synpred13_InternalEmfParsleyDsl()) ) {
+ alt49=1;
+ }
+ else if ( (synpred14_InternalEmfParsleyDsl()) ) {
+ alt49=2;
+ }
+
+
+ }
+ break;
+ case 66:
+ {
+ int LA49_3 = input.LA(2);
+
+ if ( (synpred13_InternalEmfParsleyDsl()) ) {
+ alt49=1;
+ }
+ else if ( (synpred14_InternalEmfParsleyDsl()) ) {
+ alt49=2;
+ }
+
+
+ }
+ break;
+ case 67:
+ {
+ int LA49_4 = input.LA(2);
+
+ if ( (synpred14_InternalEmfParsleyDsl()) ) {
+ alt49=2;
+ }
+
+
+ }
+ break;
+
+ }
+
+ switch (alt49) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2840:2: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2840:2: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2840:3: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2840:3: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2840:4: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2853:25: ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2853:26: () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2853:26: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2854:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndSet(
+ grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2859:2: (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) )
+ int alt41=2;
+ int LA41_0 = input.LA(1);
+
+ if ( (LA41_0==65) ) {
+ alt41=1;
+ }
+ else if ( (LA41_0==66) ) {
+ alt41=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 41, 0, input);
+
+ throw nvae;
+ }
+ switch (alt41) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2859:4: otherlv_2= '.'
+ {
+ otherlv_2=(Token)match(input,65,FOLLOW_65_in_ruleXMemberFeatureCall6908); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2864:6: ( (lv_explicitStatic_3_0= '::' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2864:6: ( (lv_explicitStatic_3_0= '::' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2865:1: (lv_explicitStatic_3_0= '::' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2865:1: (lv_explicitStatic_3_0= '::' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2866:3: lv_explicitStatic_3_0= '::'
+ {
+ lv_explicitStatic_3_0=(Token)match(input,66,FOLLOW_66_in_ruleXMemberFeatureCall6932); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_explicitStatic_3_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+ }
+ setWithLastConsumed(current, "explicitStatic", true, "::");
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2879:3: ( ( ruleFeatureCallID ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2880:1: ( ruleFeatureCallID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2880:1: ( ruleFeatureCallID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2881:3: ruleFeatureCallID
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleFeatureCallID_in_ruleXMemberFeatureCall6969);
+ ruleFeatureCallID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3());
+
+ }
+ pushFollow(FOLLOW_ruleOpSingleAssign_in_ruleXMemberFeatureCall6985);
+ ruleOpSingleAssign();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2902:3: ( (lv_value_6_0= ruleXAssignment ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2903:1: (lv_value_6_0= ruleXAssignment )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2903:1: (lv_value_6_0= ruleXAssignment )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2904:3: lv_value_6_0= ruleXAssignment
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXAssignment_in_ruleXMemberFeatureCall7007);
+ lv_value_6_0=ruleXAssignment();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+ }
+ set(
+ current,
+ "value",
+ lv_value_6_0,
+ "XAssignment");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2921:6: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleFeatureCallID ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2921:6: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleFeatureCallID ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2921:7: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleFeatureCallID ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2921:7: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2921:8: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2937:7: ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2937:8: () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2937:8: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2938:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndSet(
+ grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2943:2: (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
+ int alt42=3;
+ switch ( input.LA(1) ) {
+ case 65:
+ {
+ alt42=1;
+ }
+ break;
+ case 67:
+ {
+ alt42=2;
+ }
+ break;
+ case 66:
+ {
+ alt42=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 42, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt42) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2943:4: otherlv_8= '.'
+ {
+ otherlv_8=(Token)match(input,65,FOLLOW_65_in_ruleXMemberFeatureCall7093); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_8, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2948:6: ( (lv_nullSafe_9_0= '?.' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2948:6: ( (lv_nullSafe_9_0= '?.' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2949:1: (lv_nullSafe_9_0= '?.' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2949:1: (lv_nullSafe_9_0= '?.' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2950:3: lv_nullSafe_9_0= '?.'
+ {
+ lv_nullSafe_9_0=(Token)match(input,67,FOLLOW_67_in_ruleXMemberFeatureCall7117); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_nullSafe_9_0, grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+ }
+ setWithLastConsumed(current, "nullSafe", true, "?.");
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2964:6: ( (lv_explicitStatic_10_0= '::' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2964:6: ( (lv_explicitStatic_10_0= '::' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2965:1: (lv_explicitStatic_10_0= '::' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2965:1: (lv_explicitStatic_10_0= '::' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2966:3: lv_explicitStatic_10_0= '::'
+ {
+ lv_explicitStatic_10_0=(Token)match(input,66,FOLLOW_66_in_ruleXMemberFeatureCall7154); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_explicitStatic_10_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+ }
+ setWithLastConsumed(current, "explicitStatic", true, "::");
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2979:5: (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )?
+ int alt44=2;
+ int LA44_0 = input.LA(1);
+
+ if ( (LA44_0==50) ) {
+ alt44=1;
+ }
+ switch (alt44) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2979:7: otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>'
+ {
+ otherlv_11=(Token)match(input,50,FOLLOW_50_in_ruleXMemberFeatureCall7183); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_11, grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2983:1: ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2984:1: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2984:1: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2985:3: lv_typeArguments_12_0= ruleJvmArgumentTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_ruleXMemberFeatureCall7204);
+ lv_typeArguments_12_0=ruleJvmArgumentTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+ }
+ add(
+ current,
+ "typeArguments",
+ lv_typeArguments_12_0,
+ "JvmArgumentTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3001:2: (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )*
+ loop43:
+ do {
+ int alt43=2;
+ int LA43_0 = input.LA(1);
+
+ if ( (LA43_0==26) ) {
+ alt43=1;
+ }
+
+
+ switch (alt43) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3001:4: otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
+ {
+ otherlv_13=(Token)match(input,26,FOLLOW_26_in_ruleXMemberFeatureCall7217); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_13, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3005:1: ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3006:1: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3006:1: (lv_typeArguments_14_0= ruleJvmArgumentTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3007:3: lv_typeArguments_14_0= ruleJvmArgumentTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_ruleXMemberFeatureCall7238);
+ lv_typeArguments_14_0=ruleJvmArgumentTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+ }
+ add(
+ current,
+ "typeArguments",
+ lv_typeArguments_14_0,
+ "JvmArgumentTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop43;
+ }
+ } while (true);
+
+ otherlv_15=(Token)match(input,49,FOLLOW_49_in_ruleXMemberFeatureCall7252); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_15, grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3());
+
+ }
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3027:3: ( ( ruleFeatureCallID ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3028:1: ( ruleFeatureCallID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3028:1: ( ruleFeatureCallID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3029:3: ruleFeatureCallID
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleFeatureCallID_in_ruleXMemberFeatureCall7277);
+ ruleFeatureCallID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3042:2: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?
+ int alt47=2;
+ alt47 = dfa47.predict(input);
+ switch (alt47) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3042:3: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3042:3: ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3042:4: ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3049:1: (lv_explicitOperationCall_17_0= '(' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3050:3: lv_explicitOperationCall_17_0= '('
+ {
+ lv_explicitOperationCall_17_0=(Token)match(input,68,FOLLOW_68_in_ruleXMemberFeatureCall7311); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_explicitOperationCall_17_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+ }
+ setWithLastConsumed(current, "explicitOperationCall", true, "(");
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3063:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?
+ int alt46=3;
+ alt46 = dfa46.predict(input);
+ switch (alt46) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3063:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3063:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3063:4: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3080:1: (lv_memberCallArguments_18_0= ruleXShortClosure )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3081:3: lv_memberCallArguments_18_0= ruleXShortClosure
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleXShortClosure_in_ruleXMemberFeatureCall7396);
+ lv_memberCallArguments_18_0=ruleXShortClosure();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+ }
+ add(
+ current,
+ "memberCallArguments",
+ lv_memberCallArguments_18_0,
+ "XShortClosure");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3098:6: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3098:6: ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3098:7: ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3098:7: ( (lv_memberCallArguments_19_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3099:1: (lv_memberCallArguments_19_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3099:1: (lv_memberCallArguments_19_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3100:3: lv_memberCallArguments_19_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXMemberFeatureCall7424);
+ lv_memberCallArguments_19_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+ }
+ add(
+ current,
+ "memberCallArguments",
+ lv_memberCallArguments_19_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3116:2: (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )*
+ loop45:
+ do {
+ int alt45=2;
+ int LA45_0 = input.LA(1);
+
+ if ( (LA45_0==26) ) {
+ alt45=1;
+ }
+
+
+ switch (alt45) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3116:4: otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) )
+ {
+ otherlv_20=(Token)match(input,26,FOLLOW_26_in_ruleXMemberFeatureCall7437); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_20, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3120:1: ( (lv_memberCallArguments_21_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3121:1: (lv_memberCallArguments_21_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3121:1: (lv_memberCallArguments_21_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3122:3: lv_memberCallArguments_21_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXMemberFeatureCall7458);
+ lv_memberCallArguments_21_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+ }
+ add(
+ current,
+ "memberCallArguments",
+ lv_memberCallArguments_21_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop45;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_22=(Token)match(input,69,FOLLOW_69_in_ruleXMemberFeatureCall7475); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_22, grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2());
+
+ }
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3142:3: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
+ int alt48=2;
+ alt48 = dfa48.predict(input);
+ switch (alt48) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3142:4: ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3145:1: (lv_memberCallArguments_23_0= ruleXClosure )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3146:3: lv_memberCallArguments_23_0= ruleXClosure
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0());
+
+ }
+ pushFollow(FOLLOW_ruleXClosure_in_ruleXMemberFeatureCall7510);
+ lv_memberCallArguments_23_0=ruleXClosure();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+ }
+ add(
+ current,
+ "memberCallArguments",
+ lv_memberCallArguments_23_0,
+ "XClosure");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop49;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXMemberFeatureCall"
+
+
+ // $ANTLR start "entryRuleXPrimaryExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3170:1: entryRuleXPrimaryExpression returns [EObject current=null] : iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF ;
+ public final EObject entryRuleXPrimaryExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXPrimaryExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3171:2: (iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3172:2: iv_ruleXPrimaryExpression= ruleXPrimaryExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXPrimaryExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXPrimaryExpression_in_entryRuleXPrimaryExpression7550);
+ iv_ruleXPrimaryExpression=ruleXPrimaryExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXPrimaryExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXPrimaryExpression7560); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXPrimaryExpression"
+
+
+ // $ANTLR start "ruleXPrimaryExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3179:1: ruleXPrimaryExpression returns [EObject current=null] : (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | this_XFeatureCall_3= ruleXFeatureCall | this_XLiteral_4= ruleXLiteral | this_XIfExpression_5= ruleXIfExpression | this_XForLoopExpression_6= ruleXForLoopExpression | this_XWhileExpression_7= ruleXWhileExpression | this_XDoWhileExpression_8= ruleXDoWhileExpression | this_XThrowExpression_9= ruleXThrowExpression | this_XReturnExpression_10= ruleXReturnExpression | this_XTryCatchFinallyExpression_11= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_12= ruleXParenthesizedExpression ) ;
+ public final EObject ruleXPrimaryExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_XConstructorCall_0 = null;
+
+ EObject this_XBlockExpression_1 = null;
+
+ EObject this_XSwitchExpression_2 = null;
+
+ EObject this_XFeatureCall_3 = null;
+
+ EObject this_XLiteral_4 = null;
+
+ EObject this_XIfExpression_5 = null;
+
+ EObject this_XForLoopExpression_6 = null;
+
+ EObject this_XWhileExpression_7 = null;
+
+ EObject this_XDoWhileExpression_8 = null;
+
+ EObject this_XThrowExpression_9 = null;
+
+ EObject this_XReturnExpression_10 = null;
+
+ EObject this_XTryCatchFinallyExpression_11 = null;
+
+ EObject this_XParenthesizedExpression_12 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3182:28: ( (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | this_XFeatureCall_3= ruleXFeatureCall | this_XLiteral_4= ruleXLiteral | this_XIfExpression_5= ruleXIfExpression | this_XForLoopExpression_6= ruleXForLoopExpression | this_XWhileExpression_7= ruleXWhileExpression | this_XDoWhileExpression_8= ruleXDoWhileExpression | this_XThrowExpression_9= ruleXThrowExpression | this_XReturnExpression_10= ruleXReturnExpression | this_XTryCatchFinallyExpression_11= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_12= ruleXParenthesizedExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3183:1: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | this_XFeatureCall_3= ruleXFeatureCall | this_XLiteral_4= ruleXLiteral | this_XIfExpression_5= ruleXIfExpression | this_XForLoopExpression_6= ruleXForLoopExpression | this_XWhileExpression_7= ruleXWhileExpression | this_XDoWhileExpression_8= ruleXDoWhileExpression | this_XThrowExpression_9= ruleXThrowExpression | this_XReturnExpression_10= ruleXReturnExpression | this_XTryCatchFinallyExpression_11= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_12= ruleXParenthesizedExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3183:1: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | this_XFeatureCall_3= ruleXFeatureCall | this_XLiteral_4= ruleXLiteral | this_XIfExpression_5= ruleXIfExpression | this_XForLoopExpression_6= ruleXForLoopExpression | this_XWhileExpression_7= ruleXWhileExpression | this_XDoWhileExpression_8= ruleXDoWhileExpression | this_XThrowExpression_9= ruleXThrowExpression | this_XReturnExpression_10= ruleXReturnExpression | this_XTryCatchFinallyExpression_11= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_12= ruleXParenthesizedExpression )
+ int alt50=13;
+ alt50 = dfa50.predict(input);
+ switch (alt50) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3184:5: this_XConstructorCall_0= ruleXConstructorCall
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleXConstructorCall_in_ruleXPrimaryExpression7607);
+ this_XConstructorCall_0=ruleXConstructorCall();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XConstructorCall_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3194:5: this_XBlockExpression_1= ruleXBlockExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_ruleXBlockExpression_in_ruleXPrimaryExpression7634);
+ this_XBlockExpression_1=ruleXBlockExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XBlockExpression_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3204:5: this_XSwitchExpression_2= ruleXSwitchExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2());
+
+ }
+ pushFollow(FOLLOW_ruleXSwitchExpression_in_ruleXPrimaryExpression7661);
+ this_XSwitchExpression_2=ruleXSwitchExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XSwitchExpression_2;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3214:5: this_XFeatureCall_3= ruleXFeatureCall
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_3());
+
+ }
+ pushFollow(FOLLOW_ruleXFeatureCall_in_ruleXPrimaryExpression7688);
+ this_XFeatureCall_3=ruleXFeatureCall();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XFeatureCall_3;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3224:5: this_XLiteral_4= ruleXLiteral
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_4());
+
+ }
+ pushFollow(FOLLOW_ruleXLiteral_in_ruleXPrimaryExpression7715);
+ this_XLiteral_4=ruleXLiteral();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XLiteral_4;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3234:5: this_XIfExpression_5= ruleXIfExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_5());
+
+ }
+ pushFollow(FOLLOW_ruleXIfExpression_in_ruleXPrimaryExpression7742);
+ this_XIfExpression_5=ruleXIfExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XIfExpression_5;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3244:5: this_XForLoopExpression_6= ruleXForLoopExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_6());
+
+ }
+ pushFollow(FOLLOW_ruleXForLoopExpression_in_ruleXPrimaryExpression7769);
+ this_XForLoopExpression_6=ruleXForLoopExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XForLoopExpression_6;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3254:5: this_XWhileExpression_7= ruleXWhileExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_7());
+
+ }
+ pushFollow(FOLLOW_ruleXWhileExpression_in_ruleXPrimaryExpression7796);
+ this_XWhileExpression_7=ruleXWhileExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XWhileExpression_7;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3264:5: this_XDoWhileExpression_8= ruleXDoWhileExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_8());
+
+ }
+ pushFollow(FOLLOW_ruleXDoWhileExpression_in_ruleXPrimaryExpression7823);
+ this_XDoWhileExpression_8=ruleXDoWhileExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XDoWhileExpression_8;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3274:5: this_XThrowExpression_9= ruleXThrowExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_9());
+
+ }
+ pushFollow(FOLLOW_ruleXThrowExpression_in_ruleXPrimaryExpression7850);
+ this_XThrowExpression_9=ruleXThrowExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XThrowExpression_9;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3284:5: this_XReturnExpression_10= ruleXReturnExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_10());
+
+ }
+ pushFollow(FOLLOW_ruleXReturnExpression_in_ruleXPrimaryExpression7877);
+ this_XReturnExpression_10=ruleXReturnExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XReturnExpression_10;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 12 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3294:5: this_XTryCatchFinallyExpression_11= ruleXTryCatchFinallyExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_11());
+
+ }
+ pushFollow(FOLLOW_ruleXTryCatchFinallyExpression_in_ruleXPrimaryExpression7904);
+ this_XTryCatchFinallyExpression_11=ruleXTryCatchFinallyExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XTryCatchFinallyExpression_11;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 13 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3304:5: this_XParenthesizedExpression_12= ruleXParenthesizedExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_12());
+
+ }
+ pushFollow(FOLLOW_ruleXParenthesizedExpression_in_ruleXPrimaryExpression7931);
+ this_XParenthesizedExpression_12=ruleXParenthesizedExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XParenthesizedExpression_12;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXPrimaryExpression"
+
+
+ // $ANTLR start "entryRuleXLiteral"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3320:1: entryRuleXLiteral returns [EObject current=null] : iv_ruleXLiteral= ruleXLiteral EOF ;
+ public final EObject entryRuleXLiteral() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXLiteral = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3321:2: (iv_ruleXLiteral= ruleXLiteral EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3322:2: iv_ruleXLiteral= ruleXLiteral EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXLiteralRule());
+ }
+ pushFollow(FOLLOW_ruleXLiteral_in_entryRuleXLiteral7966);
+ iv_ruleXLiteral=ruleXLiteral();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXLiteral;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXLiteral7976); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXLiteral"
+
+
+ // $ANTLR start "ruleXLiteral"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3329:1: ruleXLiteral returns [EObject current=null] : (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) ;
+ public final EObject ruleXLiteral() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_XCollectionLiteral_0 = null;
+
+ EObject this_XClosure_1 = null;
+
+ EObject this_XBooleanLiteral_2 = null;
+
+ EObject this_XNumberLiteral_3 = null;
+
+ EObject this_XNullLiteral_4 = null;
+
+ EObject this_XStringLiteral_5 = null;
+
+ EObject this_XTypeLiteral_6 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3332:28: ( (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3333:1: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3333:1: (this_XCollectionLiteral_0= ruleXCollectionLiteral | ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure ) | this_XBooleanLiteral_2= ruleXBooleanLiteral | this_XNumberLiteral_3= ruleXNumberLiteral | this_XNullLiteral_4= ruleXNullLiteral | this_XStringLiteral_5= ruleXStringLiteral | this_XTypeLiteral_6= ruleXTypeLiteral )
+ int alt51=7;
+ int LA51_0 = input.LA(1);
+
+ if ( (LA51_0==70) ) {
+ alt51=1;
+ }
+ else if ( (LA51_0==71) && (synpred18_InternalEmfParsleyDsl())) {
+ alt51=2;
+ }
+ else if ( ((LA51_0>=90 && LA51_0<=91)) ) {
+ alt51=3;
+ }
+ else if ( ((LA51_0>=RULE_HEX && LA51_0<=RULE_DECIMAL)) ) {
+ alt51=4;
+ }
+ else if ( (LA51_0==92) ) {
+ alt51=5;
+ }
+ else if ( (LA51_0==RULE_STRING) ) {
+ alt51=6;
+ }
+ else if ( (LA51_0==93) ) {
+ alt51=7;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 51, 0, input);
+
+ throw nvae;
+ }
+ switch (alt51) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3334:5: this_XCollectionLiteral_0= ruleXCollectionLiteral
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleXCollectionLiteral_in_ruleXLiteral8023);
+ this_XCollectionLiteral_0=ruleXCollectionLiteral();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XCollectionLiteral_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3343:6: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3343:6: ( ( ( () '[' ) )=>this_XClosure_1= ruleXClosure )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3343:7: ( ( () '[' ) )=>this_XClosure_1= ruleXClosure
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_ruleXClosure_in_ruleXLiteral8063);
+ this_XClosure_1=ruleXClosure();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XClosure_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3356:5: this_XBooleanLiteral_2= ruleXBooleanLiteral
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2());
+
+ }
+ pushFollow(FOLLOW_ruleXBooleanLiteral_in_ruleXLiteral8091);
+ this_XBooleanLiteral_2=ruleXBooleanLiteral();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XBooleanLiteral_2;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3366:5: this_XNumberLiteral_3= ruleXNumberLiteral
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3());
+
+ }
+ pushFollow(FOLLOW_ruleXNumberLiteral_in_ruleXLiteral8118);
+ this_XNumberLiteral_3=ruleXNumberLiteral();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XNumberLiteral_3;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3376:5: this_XNullLiteral_4= ruleXNullLiteral
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4());
+
+ }
+ pushFollow(FOLLOW_ruleXNullLiteral_in_ruleXLiteral8145);
+ this_XNullLiteral_4=ruleXNullLiteral();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XNullLiteral_4;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3386:5: this_XStringLiteral_5= ruleXStringLiteral
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5());
+
+ }
+ pushFollow(FOLLOW_ruleXStringLiteral_in_ruleXLiteral8172);
+ this_XStringLiteral_5=ruleXStringLiteral();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XStringLiteral_5;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3396:5: this_XTypeLiteral_6= ruleXTypeLiteral
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6());
+
+ }
+ pushFollow(FOLLOW_ruleXTypeLiteral_in_ruleXLiteral8199);
+ this_XTypeLiteral_6=ruleXTypeLiteral();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XTypeLiteral_6;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXLiteral"
+
+
+ // $ANTLR start "entryRuleXCollectionLiteral"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3412:1: entryRuleXCollectionLiteral returns [EObject current=null] : iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF ;
+ public final EObject entryRuleXCollectionLiteral() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXCollectionLiteral = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3413:2: (iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3414:2: iv_ruleXCollectionLiteral= ruleXCollectionLiteral EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXCollectionLiteralRule());
+ }
+ pushFollow(FOLLOW_ruleXCollectionLiteral_in_entryRuleXCollectionLiteral8234);
+ iv_ruleXCollectionLiteral=ruleXCollectionLiteral();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXCollectionLiteral;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXCollectionLiteral8244); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXCollectionLiteral"
+
+
+ // $ANTLR start "ruleXCollectionLiteral"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3421:1: ruleXCollectionLiteral returns [EObject current=null] : (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) ;
+ public final EObject ruleXCollectionLiteral() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_XSetLiteral_0 = null;
+
+ EObject this_XListLiteral_1 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3424:28: ( (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3425:1: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3425:1: (this_XSetLiteral_0= ruleXSetLiteral | this_XListLiteral_1= ruleXListLiteral )
+ int alt52=2;
+ int LA52_0 = input.LA(1);
+
+ if ( (LA52_0==70) ) {
+ int LA52_1 = input.LA(2);
+
+ if ( (LA52_1==71) ) {
+ alt52=2;
+ }
+ else if ( (LA52_1==14) ) {
+ alt52=1;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 52, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 52, 0, input);
+
+ throw nvae;
+ }
+ switch (alt52) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3426:5: this_XSetLiteral_0= ruleXSetLiteral
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleXSetLiteral_in_ruleXCollectionLiteral8291);
+ this_XSetLiteral_0=ruleXSetLiteral();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XSetLiteral_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3436:5: this_XListLiteral_1= ruleXListLiteral
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_ruleXListLiteral_in_ruleXCollectionLiteral8318);
+ this_XListLiteral_1=ruleXListLiteral();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XListLiteral_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXCollectionLiteral"
+
+
+ // $ANTLR start "entryRuleXSetLiteral"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3452:1: entryRuleXSetLiteral returns [EObject current=null] : iv_ruleXSetLiteral= ruleXSetLiteral EOF ;
+ public final EObject entryRuleXSetLiteral() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXSetLiteral = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3453:2: (iv_ruleXSetLiteral= ruleXSetLiteral EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3454:2: iv_ruleXSetLiteral= ruleXSetLiteral EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXSetLiteralRule());
+ }
+ pushFollow(FOLLOW_ruleXSetLiteral_in_entryRuleXSetLiteral8353);
+ iv_ruleXSetLiteral=ruleXSetLiteral();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXSetLiteral;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXSetLiteral8363); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXSetLiteral"
+
+
+ // $ANTLR start "ruleXSetLiteral"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3461:1: ruleXSetLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) ;
+ public final EObject ruleXSetLiteral() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ EObject lv_elements_3_0 = null;
+
+ EObject lv_elements_5_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3464:28: ( ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3465:1: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3465:1: ( () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3465:2: () otherlv_1= '#' otherlv_2= '{' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= '}'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3465:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3466:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,70,FOLLOW_70_in_ruleXSetLiteral8409); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleXSetLiteral8421); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3479:1: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
+ int alt54=2;
+ int LA54_0 = input.LA(1);
+
+ if ( ((LA54_0>=RULE_ID && LA54_0<=RULE_DECIMAL)||LA54_0==14||LA54_0==17||LA54_0==50||(LA54_0>=57 && LA54_0<=58)||LA54_0==63||LA54_0==68||(LA54_0>=70 && LA54_0<=71)||LA54_0==75||LA54_0==77||(LA54_0>=80 && LA54_0<=82)||(LA54_0>=85 && LA54_0<=96)) ) {
+ alt54=1;
+ }
+ switch (alt54) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3479:2: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3479:2: ( (lv_elements_3_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3480:1: (lv_elements_3_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3480:1: (lv_elements_3_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3481:3: lv_elements_3_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXSetLiteral8443);
+ lv_elements_3_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXSetLiteralRule());
+ }
+ add(
+ current,
+ "elements",
+ lv_elements_3_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3497:2: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+ loop53:
+ do {
+ int alt53=2;
+ int LA53_0 = input.LA(1);
+
+ if ( (LA53_0==26) ) {
+ alt53=1;
+ }
+
+
+ switch (alt53) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3497:4: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
+ {
+ otherlv_4=(Token)match(input,26,FOLLOW_26_in_ruleXSetLiteral8456); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3501:1: ( (lv_elements_5_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3502:1: (lv_elements_5_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3502:1: (lv_elements_5_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3503:3: lv_elements_5_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXSetLiteral8477);
+ lv_elements_5_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXSetLiteralRule());
+ }
+ add(
+ current,
+ "elements",
+ lv_elements_5_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop53;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ otherlv_6=(Token)match(input,16,FOLLOW_16_in_ruleXSetLiteral8493); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXSetLiteral"
+
+
+ // $ANTLR start "entryRuleXListLiteral"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3531:1: entryRuleXListLiteral returns [EObject current=null] : iv_ruleXListLiteral= ruleXListLiteral EOF ;
+ public final EObject entryRuleXListLiteral() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXListLiteral = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3532:2: (iv_ruleXListLiteral= ruleXListLiteral EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3533:2: iv_ruleXListLiteral= ruleXListLiteral EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXListLiteralRule());
+ }
+ pushFollow(FOLLOW_ruleXListLiteral_in_entryRuleXListLiteral8529);
+ iv_ruleXListLiteral=ruleXListLiteral();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXListLiteral;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXListLiteral8539); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXListLiteral"
+
+
+ // $ANTLR start "ruleXListLiteral"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3540:1: ruleXListLiteral returns [EObject current=null] : ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) ;
+ public final EObject ruleXListLiteral() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ EObject lv_elements_3_0 = null;
+
+ EObject lv_elements_5_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3543:28: ( ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3544:1: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3544:1: ( () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3544:2: () otherlv_1= '#' otherlv_2= '[' ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )? otherlv_6= ']'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3544:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3545:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXListLiteralAccess().getXListLiteralAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,70,FOLLOW_70_in_ruleXListLiteral8585); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,71,FOLLOW_71_in_ruleXListLiteral8597); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3558:1: ( ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )* )?
+ int alt56=2;
+ int LA56_0 = input.LA(1);
+
+ if ( ((LA56_0>=RULE_ID && LA56_0<=RULE_DECIMAL)||LA56_0==14||LA56_0==17||LA56_0==50||(LA56_0>=57 && LA56_0<=58)||LA56_0==63||LA56_0==68||(LA56_0>=70 && LA56_0<=71)||LA56_0==75||LA56_0==77||(LA56_0>=80 && LA56_0<=82)||(LA56_0>=85 && LA56_0<=96)) ) {
+ alt56=1;
+ }
+ switch (alt56) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3558:2: ( (lv_elements_3_0= ruleXExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3558:2: ( (lv_elements_3_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3559:1: (lv_elements_3_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3559:1: (lv_elements_3_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3560:3: lv_elements_3_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXListLiteral8619);
+ lv_elements_3_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXListLiteralRule());
+ }
+ add(
+ current,
+ "elements",
+ lv_elements_3_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3576:2: (otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) ) )*
+ loop55:
+ do {
+ int alt55=2;
+ int LA55_0 = input.LA(1);
+
+ if ( (LA55_0==26) ) {
+ alt55=1;
+ }
+
+
+ switch (alt55) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3576:4: otherlv_4= ',' ( (lv_elements_5_0= ruleXExpression ) )
+ {
+ otherlv_4=(Token)match(input,26,FOLLOW_26_in_ruleXListLiteral8632); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3580:1: ( (lv_elements_5_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3581:1: (lv_elements_5_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3581:1: (lv_elements_5_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3582:3: lv_elements_5_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXListLiteral8653);
+ lv_elements_5_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXListLiteralRule());
+ }
+ add(
+ current,
+ "elements",
+ lv_elements_5_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop55;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ otherlv_6=(Token)match(input,72,FOLLOW_72_in_ruleXListLiteral8669); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXListLiteral"
+
+
+ // $ANTLR start "entryRuleXClosure"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3610:1: entryRuleXClosure returns [EObject current=null] : iv_ruleXClosure= ruleXClosure EOF ;
+ public final EObject entryRuleXClosure() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXClosure = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3611:2: (iv_ruleXClosure= ruleXClosure EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3612:2: iv_ruleXClosure= ruleXClosure EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXClosureRule());
+ }
+ pushFollow(FOLLOW_ruleXClosure_in_entryRuleXClosure8705);
+ iv_ruleXClosure=ruleXClosure();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXClosure;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXClosure8715); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXClosure"
+
+
+ // $ANTLR start "ruleXClosure"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3619:1: ruleXClosure returns [EObject current=null] : ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) ;
+ public final EObject ruleXClosure() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token lv_explicitSyntax_5_0=null;
+ Token otherlv_7=null;
+ EObject lv_declaredFormalParameters_2_0 = null;
+
+ EObject lv_declaredFormalParameters_4_0 = null;
+
+ EObject lv_expression_6_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3622:28: ( ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3623:1: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3623:1: ( ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3623:2: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) ) ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )? ( (lv_expression_6_0= ruleXExpressionInClosure ) ) otherlv_7= ']'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3623:2: ( ( ( () '[' ) )=> ( () otherlv_1= '[' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3623:3: ( ( () '[' ) )=> ( () otherlv_1= '[' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3625:5: ( () otherlv_1= '[' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3625:6: () otherlv_1= '['
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3625:6: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3626:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXClosureAccess().getXClosureAction_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,71,FOLLOW_71_in_ruleXClosure8775); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1());
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3635:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?
+ int alt59=2;
+ alt59 = dfa59.predict(input);
+ switch (alt59) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3635:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3650:6: ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3650:7: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3650:7: ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )?
+ int alt58=2;
+ int LA58_0 = input.LA(1);
+
+ if ( (LA58_0==RULE_ID||LA58_0==53||LA58_0==68) ) {
+ alt58=1;
+ }
+ switch (alt58) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3650:8: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3650:8: ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3651:1: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3651:1: (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3652:3: lv_declaredFormalParameters_2_0= ruleJvmFormalParameter
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_ruleXClosure8848);
+ lv_declaredFormalParameters_2_0=ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXClosureRule());
+ }
+ add(
+ current,
+ "declaredFormalParameters",
+ lv_declaredFormalParameters_2_0,
+ "JvmFormalParameter");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3668:2: (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )*
+ loop57:
+ do {
+ int alt57=2;
+ int LA57_0 = input.LA(1);
+
+ if ( (LA57_0==26) ) {
+ alt57=1;
+ }
+
+
+ switch (alt57) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3668:4: otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
+ {
+ otherlv_3=(Token)match(input,26,FOLLOW_26_in_ruleXClosure8861); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3672:1: ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3673:1: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3673:1: (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3674:3: lv_declaredFormalParameters_4_0= ruleJvmFormalParameter
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_ruleXClosure8882);
+ lv_declaredFormalParameters_4_0=ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXClosureRule());
+ }
+ add(
+ current,
+ "declaredFormalParameters",
+ lv_declaredFormalParameters_4_0,
+ "JvmFormalParameter");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop57;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3690:6: ( (lv_explicitSyntax_5_0= '|' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3691:1: (lv_explicitSyntax_5_0= '|' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3691:1: (lv_explicitSyntax_5_0= '|' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3692:3: lv_explicitSyntax_5_0= '|'
+ {
+ lv_explicitSyntax_5_0=(Token)match(input,73,FOLLOW_73_in_ruleXClosure8904); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_explicitSyntax_5_0, grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXClosureRule());
+ }
+ setWithLastConsumed(current, "explicitSyntax", true, "|");
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3705:5: ( (lv_expression_6_0= ruleXExpressionInClosure ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3706:1: (lv_expression_6_0= ruleXExpressionInClosure )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3706:1: (lv_expression_6_0= ruleXExpressionInClosure )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3707:3: lv_expression_6_0= ruleXExpressionInClosure
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpressionInClosure_in_ruleXClosure8941);
+ lv_expression_6_0=ruleXExpressionInClosure();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXClosureRule());
+ }
+ set(
+ current,
+ "expression",
+ lv_expression_6_0,
+ "XExpressionInClosure");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_7=(Token)match(input,72,FOLLOW_72_in_ruleXClosure8953); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXClosure"
+
+
+ // $ANTLR start "entryRuleXExpressionInClosure"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3735:1: entryRuleXExpressionInClosure returns [EObject current=null] : iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF ;
+ public final EObject entryRuleXExpressionInClosure() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXExpressionInClosure = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3736:2: (iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3737:2: iv_ruleXExpressionInClosure= ruleXExpressionInClosure EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXExpressionInClosureRule());
+ }
+ pushFollow(FOLLOW_ruleXExpressionInClosure_in_entryRuleXExpressionInClosure8989);
+ iv_ruleXExpressionInClosure=ruleXExpressionInClosure();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXExpressionInClosure;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXExpressionInClosure8999); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXExpressionInClosure"
+
+
+ // $ANTLR start "ruleXExpressionInClosure"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3744:1: ruleXExpressionInClosure returns [EObject current=null] : ( () ( ( (lv_expressions_1_0= ruleXExpressionInsideBlock ) ) (otherlv_2= ';' )? )* ) ;
+ public final EObject ruleXExpressionInClosure() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_2=null;
+ EObject lv_expressions_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3747:28: ( ( () ( ( (lv_expressions_1_0= ruleXExpressionInsideBlock ) ) (otherlv_2= ';' )? )* ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3748:1: ( () ( ( (lv_expressions_1_0= ruleXExpressionInsideBlock ) ) (otherlv_2= ';' )? )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3748:1: ( () ( ( (lv_expressions_1_0= ruleXExpressionInsideBlock ) ) (otherlv_2= ';' )? )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3748:2: () ( ( (lv_expressions_1_0= ruleXExpressionInsideBlock ) ) (otherlv_2= ';' )? )*
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3748:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3749:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3754:2: ( ( (lv_expressions_1_0= ruleXExpressionInsideBlock ) ) (otherlv_2= ';' )? )*
+ loop61:
+ do {
+ int alt61=2;
+ int LA61_0 = input.LA(1);
+
+ if ( ((LA61_0>=RULE_ID && LA61_0<=RULE_DECIMAL)||LA61_0==14||LA61_0==17||LA61_0==50||(LA61_0>=57 && LA61_0<=58)||LA61_0==63||LA61_0==68||(LA61_0>=70 && LA61_0<=71)||LA61_0==75||LA61_0==77||(LA61_0>=80 && LA61_0<=96)) ) {
+ alt61=1;
+ }
+
+
+ switch (alt61) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3754:3: ( (lv_expressions_1_0= ruleXExpressionInsideBlock ) ) (otherlv_2= ';' )?
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3754:3: ( (lv_expressions_1_0= ruleXExpressionInsideBlock ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3755:1: (lv_expressions_1_0= ruleXExpressionInsideBlock )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3755:1: (lv_expressions_1_0= ruleXExpressionInsideBlock )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3756:3: lv_expressions_1_0= ruleXExpressionInsideBlock
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionInsideBlockParserRuleCall_1_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpressionInsideBlock_in_ruleXExpressionInClosure9055);
+ lv_expressions_1_0=ruleXExpressionInsideBlock();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXExpressionInClosureRule());
+ }
+ add(
+ current,
+ "expressions",
+ lv_expressions_1_0,
+ "XExpressionInsideBlock");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3772:2: (otherlv_2= ';' )?
+ int alt60=2;
+ int LA60_0 = input.LA(1);
+
+ if ( (LA60_0==74) ) {
+ alt60=1;
+ }
+ switch (alt60) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3772:4: otherlv_2= ';'
+ {
+ otherlv_2=(Token)match(input,74,FOLLOW_74_in_ruleXExpressionInClosure9068); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop61;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXExpressionInClosure"
+
+
+ // $ANTLR start "entryRuleXShortClosure"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3784:1: entryRuleXShortClosure returns [EObject current=null] : iv_ruleXShortClosure= ruleXShortClosure EOF ;
+ public final EObject entryRuleXShortClosure() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXShortClosure = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3785:2: (iv_ruleXShortClosure= ruleXShortClosure EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3786:2: iv_ruleXShortClosure= ruleXShortClosure EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXShortClosureRule());
+ }
+ pushFollow(FOLLOW_ruleXShortClosure_in_entryRuleXShortClosure9108);
+ iv_ruleXShortClosure=ruleXShortClosure();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXShortClosure;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXShortClosure9118); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXShortClosure"
+
+
+ // $ANTLR start "ruleXShortClosure"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3793:1: ruleXShortClosure returns [EObject current=null] : ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) ;
+ public final EObject ruleXShortClosure() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_2=null;
+ Token lv_explicitSyntax_4_0=null;
+ EObject lv_declaredFormalParameters_1_0 = null;
+
+ EObject lv_declaredFormalParameters_3_0 = null;
+
+ EObject lv_expression_5_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3796:28: ( ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3797:1: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3797:1: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3797:2: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) ) ( (lv_expression_5_0= ruleXExpression ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3797:2: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3797:3: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3813:6: ( () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3813:7: () ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_4_0= '|' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3813:7: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3814:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3819:2: ( ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )* )?
+ int alt63=2;
+ int LA63_0 = input.LA(1);
+
+ if ( (LA63_0==RULE_ID||LA63_0==53||LA63_0==68) ) {
+ alt63=1;
+ }
+ switch (alt63) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3819:3: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) ) (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3819:3: ( (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3820:1: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3820:1: (lv_declaredFormalParameters_1_0= ruleJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3821:3: lv_declaredFormalParameters_1_0= ruleJvmFormalParameter
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_ruleXShortClosure9226);
+ lv_declaredFormalParameters_1_0=ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXShortClosureRule());
+ }
+ add(
+ current,
+ "declaredFormalParameters",
+ lv_declaredFormalParameters_1_0,
+ "JvmFormalParameter");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3837:2: (otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) ) )*
+ loop62:
+ do {
+ int alt62=2;
+ int LA62_0 = input.LA(1);
+
+ if ( (LA62_0==26) ) {
+ alt62=1;
+ }
+
+
+ switch (alt62) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3837:4: otherlv_2= ',' ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
+ {
+ otherlv_2=(Token)match(input,26,FOLLOW_26_in_ruleXShortClosure9239); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3841:1: ( (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3842:1: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3842:1: (lv_declaredFormalParameters_3_0= ruleJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3843:3: lv_declaredFormalParameters_3_0= ruleJvmFormalParameter
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_ruleXShortClosure9260);
+ lv_declaredFormalParameters_3_0=ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXShortClosureRule());
+ }
+ add(
+ current,
+ "declaredFormalParameters",
+ lv_declaredFormalParameters_3_0,
+ "JvmFormalParameter");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop62;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3859:6: ( (lv_explicitSyntax_4_0= '|' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3860:1: (lv_explicitSyntax_4_0= '|' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3860:1: (lv_explicitSyntax_4_0= '|' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3861:3: lv_explicitSyntax_4_0= '|'
+ {
+ lv_explicitSyntax_4_0=(Token)match(input,73,FOLLOW_73_in_ruleXShortClosure9282); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_explicitSyntax_4_0, grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXShortClosureRule());
+ }
+ setWithLastConsumed(current, "explicitSyntax", true, "|");
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3874:4: ( (lv_expression_5_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3875:1: (lv_expression_5_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3875:1: (lv_expression_5_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3876:3: lv_expression_5_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXShortClosure9318);
+ lv_expression_5_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXShortClosureRule());
+ }
+ set(
+ current,
+ "expression",
+ lv_expression_5_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXShortClosure"
+
+
+ // $ANTLR start "entryRuleXParenthesizedExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3900:1: entryRuleXParenthesizedExpression returns [EObject current=null] : iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF ;
+ public final EObject entryRuleXParenthesizedExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXParenthesizedExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3901:2: (iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3902:2: iv_ruleXParenthesizedExpression= ruleXParenthesizedExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXParenthesizedExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXParenthesizedExpression_in_entryRuleXParenthesizedExpression9354);
+ iv_ruleXParenthesizedExpression=ruleXParenthesizedExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXParenthesizedExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXParenthesizedExpression9364); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXParenthesizedExpression"
+
+
+ // $ANTLR start "ruleXParenthesizedExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3909:1: ruleXParenthesizedExpression returns [EObject current=null] : (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) ;
+ public final EObject ruleXParenthesizedExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_2=null;
+ EObject this_XExpression_1 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3912:28: ( (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3913:1: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3913:1: (otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3913:3: otherlv_0= '(' this_XExpression_1= ruleXExpression otherlv_2= ')'
+ {
+ otherlv_0=(Token)match(input,68,FOLLOW_68_in_ruleXParenthesizedExpression9401); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_0, grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXParenthesizedExpression9423);
+ this_XExpression_1=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XExpression_1;
+ afterParserOrEnumRuleCall();
+
+ }
+ otherlv_2=(Token)match(input,69,FOLLOW_69_in_ruleXParenthesizedExpression9434); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXParenthesizedExpression"
+
+
+ // $ANTLR start "entryRuleXIfExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3938:1: entryRuleXIfExpression returns [EObject current=null] : iv_ruleXIfExpression= ruleXIfExpression EOF ;
+ public final EObject entryRuleXIfExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXIfExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3939:2: (iv_ruleXIfExpression= ruleXIfExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3940:2: iv_ruleXIfExpression= ruleXIfExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXIfExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXIfExpression_in_entryRuleXIfExpression9470);
+ iv_ruleXIfExpression=ruleXIfExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXIfExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXIfExpression9480); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXIfExpression"
+
+
+ // $ANTLR start "ruleXIfExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3947:1: ruleXIfExpression returns [EObject current=null] : ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) ;
+ public final EObject ruleXIfExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ EObject lv_if_3_0 = null;
+
+ EObject lv_then_5_0 = null;
+
+ EObject lv_else_7_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3950:28: ( ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3951:1: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3951:1: ( () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )? )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3951:2: () otherlv_1= 'if' otherlv_2= '(' ( (lv_if_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_then_5_0= ruleXExpression ) ) ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3951:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3952:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,75,FOLLOW_75_in_ruleXIfExpression9526); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXIfExpressionAccess().getIfKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,68,FOLLOW_68_in_ruleXIfExpression9538); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3965:1: ( (lv_if_3_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3966:1: (lv_if_3_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3966:1: (lv_if_3_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3967:3: lv_if_3_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXIfExpression9559);
+ lv_if_3_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
+ }
+ set(
+ current,
+ "if",
+ lv_if_3_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_4=(Token)match(input,69,FOLLOW_69_in_ruleXIfExpression9571); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3987:1: ( (lv_then_5_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3988:1: (lv_then_5_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3988:1: (lv_then_5_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3989:3: lv_then_5_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXIfExpression9592);
+ lv_then_5_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
+ }
+ set(
+ current,
+ "then",
+ lv_then_5_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4005:2: ( ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) ) )?
+ int alt64=2;
+ int LA64_0 = input.LA(1);
+
+ if ( (LA64_0==76) ) {
+ int LA64_1 = input.LA(2);
+
+ if ( (synpred22_InternalEmfParsleyDsl()) ) {
+ alt64=1;
+ }
+ }
+ switch (alt64) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4005:3: ( ( 'else' )=>otherlv_6= 'else' ) ( (lv_else_7_0= ruleXExpression ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4005:3: ( ( 'else' )=>otherlv_6= 'else' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4005:4: ( 'else' )=>otherlv_6= 'else'
+ {
+ otherlv_6=(Token)match(input,76,FOLLOW_76_in_ruleXIfExpression9613); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0());
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4010:2: ( (lv_else_7_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4011:1: (lv_else_7_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4011:1: (lv_else_7_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4012:3: lv_else_7_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXIfExpression9635);
+ lv_else_7_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
+ }
+ set(
+ current,
+ "else",
+ lv_else_7_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXIfExpression"
+
+
+ // $ANTLR start "entryRuleXSwitchExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4036:1: entryRuleXSwitchExpression returns [EObject current=null] : iv_ruleXSwitchExpression= ruleXSwitchExpression EOF ;
+ public final EObject entryRuleXSwitchExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXSwitchExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4037:2: (iv_ruleXSwitchExpression= ruleXSwitchExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4038:2: iv_ruleXSwitchExpression= ruleXSwitchExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXSwitchExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXSwitchExpression_in_entryRuleXSwitchExpression9673);
+ iv_ruleXSwitchExpression=ruleXSwitchExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXSwitchExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXSwitchExpression9683); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXSwitchExpression"
+
+
+ // $ANTLR start "ruleXSwitchExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4045:1: ruleXSwitchExpression returns [EObject current=null] : ( () otherlv_1= 'switch' ( ( ( ( ( ( ( ruleValidID ) ) ':' ) )=> ( ( (lv_localVarName_2_0= ruleValidID ) ) otherlv_3= ':' ) )? ( (lv_switch_4_0= ruleXExpression ) ) ) | ( ( ( ( '(' ( ( ruleValidID ) ) ':' ) )=> (otherlv_5= '(' ( (lv_localVarName_6_0= ruleValidID ) ) otherlv_7= ':' ) ) ( (lv_switch_8_0= ruleXExpression ) ) otherlv_9= ')' ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )+ (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) ;
+ public final EObject ruleXSwitchExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_9=null;
+ Token otherlv_10=null;
+ Token otherlv_12=null;
+ Token otherlv_13=null;
+ Token otherlv_15=null;
+ AntlrDatatypeRuleToken lv_localVarName_2_0 = null;
+
+ EObject lv_switch_4_0 = null;
+
+ AntlrDatatypeRuleToken lv_localVarName_6_0 = null;
+
+ EObject lv_switch_8_0 = null;
+
+ EObject lv_cases_11_0 = null;
+
+ EObject lv_default_14_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4048:28: ( ( () otherlv_1= 'switch' ( ( ( ( ( ( ( ruleValidID ) ) ':' ) )=> ( ( (lv_localVarName_2_0= ruleValidID ) ) otherlv_3= ':' ) )? ( (lv_switch_4_0= ruleXExpression ) ) ) | ( ( ( ( '(' ( ( ruleValidID ) ) ':' ) )=> (otherlv_5= '(' ( (lv_localVarName_6_0= ruleValidID ) ) otherlv_7= ':' ) ) ( (lv_switch_8_0= ruleXExpression ) ) otherlv_9= ')' ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )+ (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4049:1: ( () otherlv_1= 'switch' ( ( ( ( ( ( ( ruleValidID ) ) ':' ) )=> ( ( (lv_localVarName_2_0= ruleValidID ) ) otherlv_3= ':' ) )? ( (lv_switch_4_0= ruleXExpression ) ) ) | ( ( ( ( '(' ( ( ruleValidID ) ) ':' ) )=> (otherlv_5= '(' ( (lv_localVarName_6_0= ruleValidID ) ) otherlv_7= ':' ) ) ( (lv_switch_8_0= ruleXExpression ) ) otherlv_9= ')' ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )+ (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4049:1: ( () otherlv_1= 'switch' ( ( ( ( ( ( ( ruleValidID ) ) ':' ) )=> ( ( (lv_localVarName_2_0= ruleValidID ) ) otherlv_3= ':' ) )? ( (lv_switch_4_0= ruleXExpression ) ) ) | ( ( ( ( '(' ( ( ruleValidID ) ) ':' ) )=> (otherlv_5= '(' ( (lv_localVarName_6_0= ruleValidID ) ) otherlv_7= ':' ) ) ( (lv_switch_8_0= ruleXExpression ) ) otherlv_9= ')' ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )+ (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4049:2: () otherlv_1= 'switch' ( ( ( ( ( ( ( ruleValidID ) ) ':' ) )=> ( ( (lv_localVarName_2_0= ruleValidID ) ) otherlv_3= ':' ) )? ( (lv_switch_4_0= ruleXExpression ) ) ) | ( ( ( ( '(' ( ( ruleValidID ) ) ':' ) )=> (otherlv_5= '(' ( (lv_localVarName_6_0= ruleValidID ) ) otherlv_7= ':' ) ) ( (lv_switch_8_0= ruleXExpression ) ) otherlv_9= ')' ) ) otherlv_10= '{' ( (lv_cases_11_0= ruleXCasePart ) )+ (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )? otherlv_15= '}'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4049:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4050:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,77,FOLLOW_77_in_ruleXSwitchExpression9729); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4059:1: ( ( ( ( ( ( ( ruleValidID ) ) ':' ) )=> ( ( (lv_localVarName_2_0= ruleValidID ) ) otherlv_3= ':' ) )? ( (lv_switch_4_0= ruleXExpression ) ) ) | ( ( ( ( '(' ( ( ruleValidID ) ) ':' ) )=> (otherlv_5= '(' ( (lv_localVarName_6_0= ruleValidID ) ) otherlv_7= ':' ) ) ( (lv_switch_8_0= ruleXExpression ) ) otherlv_9= ')' ) )
+ int alt66=2;
+ int LA66_0 = input.LA(1);
+
+ if ( ((LA66_0>=RULE_ID && LA66_0<=RULE_DECIMAL)||LA66_0==14||LA66_0==17||LA66_0==50||(LA66_0>=57 && LA66_0<=58)||LA66_0==63||(LA66_0>=70 && LA66_0<=71)||LA66_0==75||LA66_0==77||(LA66_0>=80 && LA66_0<=82)||(LA66_0>=85 && LA66_0<=96)) ) {
+ alt66=1;
+ }
+ else if ( (LA66_0==68) ) {
+ int LA66_2 = input.LA(2);
+
+ if ( (LA66_2==RULE_ID) ) {
+ int LA66_3 = input.LA(3);
+
+ if ( (LA66_3==21||(LA66_3>=37 && LA66_3<=62)||(LA66_3>=64 && LA66_3<=69)||LA66_3==71) ) {
+ alt66=1;
+ }
+ else if ( (LA66_3==23) && (synpred24_InternalEmfParsleyDsl())) {
+ alt66=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 66, 3, input);
+
+ throw nvae;
+ }
+ }
+ else if ( ((LA66_2>=RULE_STRING && LA66_2<=RULE_DECIMAL)||LA66_2==14||LA66_2==17||LA66_2==50||(LA66_2>=57 && LA66_2<=58)||LA66_2==63||LA66_2==68||(LA66_2>=70 && LA66_2<=71)||LA66_2==75||LA66_2==77||(LA66_2>=80 && LA66_2<=82)||(LA66_2>=85 && LA66_2<=96)) ) {
+ alt66=1;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 66, 2, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 66, 0, input);
+
+ throw nvae;
+ }
+ switch (alt66) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4059:2: ( ( ( ( ( ( ruleValidID ) ) ':' ) )=> ( ( (lv_localVarName_2_0= ruleValidID ) ) otherlv_3= ':' ) )? ( (lv_switch_4_0= ruleXExpression ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4059:2: ( ( ( ( ( ( ruleValidID ) ) ':' ) )=> ( ( (lv_localVarName_2_0= ruleValidID ) ) otherlv_3= ':' ) )? ( (lv_switch_4_0= ruleXExpression ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4059:3: ( ( ( ( ( ruleValidID ) ) ':' ) )=> ( ( (lv_localVarName_2_0= ruleValidID ) ) otherlv_3= ':' ) )? ( (lv_switch_4_0= ruleXExpression ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4059:3: ( ( ( ( ( ruleValidID ) ) ':' ) )=> ( ( (lv_localVarName_2_0= ruleValidID ) ) otherlv_3= ':' ) )?
+ int alt65=2;
+ int LA65_0 = input.LA(1);
+
+ if ( (LA65_0==RULE_ID) ) {
+ int LA65_1 = input.LA(2);
+
+ if ( (LA65_1==23) && (synpred23_InternalEmfParsleyDsl())) {
+ alt65=1;
+ }
+ }
+ switch (alt65) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4059:4: ( ( ( ( ruleValidID ) ) ':' ) )=> ( ( (lv_localVarName_2_0= ruleValidID ) ) otherlv_3= ':' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4064:5: ( ( (lv_localVarName_2_0= ruleValidID ) ) otherlv_3= ':' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4064:6: ( (lv_localVarName_2_0= ruleValidID ) ) otherlv_3= ':'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4064:6: ( (lv_localVarName_2_0= ruleValidID ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4065:1: (lv_localVarName_2_0= ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4065:1: (lv_localVarName_2_0= ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4066:3: lv_localVarName_2_0= ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameValidIDParserRuleCall_2_0_0_0_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleValidID_in_ruleXSwitchExpression9772);
+ lv_localVarName_2_0=ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+ }
+ set(
+ current,
+ "localVarName",
+ lv_localVarName_2_0,
+ "ValidID");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,23,FOLLOW_23_in_ruleXSwitchExpression9784); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_1());
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4086:4: ( (lv_switch_4_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4087:1: (lv_switch_4_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4087:1: (lv_switch_4_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4088:3: lv_switch_4_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXSwitchExpression9808);
+ lv_switch_4_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+ }
+ set(
+ current,
+ "switch",
+ lv_switch_4_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4105:6: ( ( ( ( '(' ( ( ruleValidID ) ) ':' ) )=> (otherlv_5= '(' ( (lv_localVarName_6_0= ruleValidID ) ) otherlv_7= ':' ) ) ( (lv_switch_8_0= ruleXExpression ) ) otherlv_9= ')' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4105:6: ( ( ( ( '(' ( ( ruleValidID ) ) ':' ) )=> (otherlv_5= '(' ( (lv_localVarName_6_0= ruleValidID ) ) otherlv_7= ':' ) ) ( (lv_switch_8_0= ruleXExpression ) ) otherlv_9= ')' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4105:7: ( ( ( '(' ( ( ruleValidID ) ) ':' ) )=> (otherlv_5= '(' ( (lv_localVarName_6_0= ruleValidID ) ) otherlv_7= ':' ) ) ( (lv_switch_8_0= ruleXExpression ) ) otherlv_9= ')'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4105:7: ( ( ( '(' ( ( ruleValidID ) ) ':' ) )=> (otherlv_5= '(' ( (lv_localVarName_6_0= ruleValidID ) ) otherlv_7= ':' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4105:8: ( ( '(' ( ( ruleValidID ) ) ':' ) )=> (otherlv_5= '(' ( (lv_localVarName_6_0= ruleValidID ) ) otherlv_7= ':' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4111:5: (otherlv_5= '(' ( (lv_localVarName_6_0= ruleValidID ) ) otherlv_7= ':' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4111:7: otherlv_5= '(' ( (lv_localVarName_6_0= ruleValidID ) ) otherlv_7= ':'
+ {
+ otherlv_5=(Token)match(input,68,FOLLOW_68_in_ruleXSwitchExpression9852); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_1_0_0_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4115:1: ( (lv_localVarName_6_0= ruleValidID ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4116:1: (lv_localVarName_6_0= ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4116:1: (lv_localVarName_6_0= ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4117:3: lv_localVarName_6_0= ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getLocalVarNameValidIDParserRuleCall_2_1_0_0_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleValidID_in_ruleXSwitchExpression9873);
+ lv_localVarName_6_0=ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+ }
+ set(
+ current,
+ "localVarName",
+ lv_localVarName_6_0,
+ "ValidID");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_7=(Token)match(input,23,FOLLOW_23_in_ruleXSwitchExpression9885); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_2());
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4137:3: ( (lv_switch_8_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4138:1: (lv_switch_8_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4138:1: (lv_switch_8_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4139:3: lv_switch_8_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXSwitchExpression9908);
+ lv_switch_8_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+ }
+ set(
+ current,
+ "switch",
+ lv_switch_8_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_9=(Token)match(input,69,FOLLOW_69_in_ruleXSwitchExpression9920); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_9, grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_1_2());
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_10=(Token)match(input,14,FOLLOW_14_in_ruleXSwitchExpression9934); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_10, grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4163:1: ( (lv_cases_11_0= ruleXCasePart ) )+
+ int cnt67=0;
+ loop67:
+ do {
+ int alt67=2;
+ int LA67_0 = input.LA(1);
+
+ if ( (LA67_0==RULE_ID||LA67_0==23||LA67_0==53||LA67_0==68||LA67_0==79) ) {
+ alt67=1;
+ }
+
+
+ switch (alt67) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4164:1: (lv_cases_11_0= ruleXCasePart )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4164:1: (lv_cases_11_0= ruleXCasePart )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4165:3: lv_cases_11_0= ruleXCasePart
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0());
+
+ }
+ pushFollow(FOLLOW_ruleXCasePart_in_ruleXSwitchExpression9955);
+ lv_cases_11_0=ruleXCasePart();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+ }
+ add(
+ current,
+ "cases",
+ lv_cases_11_0,
+ "XCasePart");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt67 >= 1 ) break loop67;
+ if (state.backtracking>0) {state.failed=true; return current;}
+ EarlyExitException eee =
+ new EarlyExitException(67, input);
+ throw eee;
+ }
+ cnt67++;
+ } while (true);
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4181:3: (otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) ) )?
+ int alt68=2;
+ int LA68_0 = input.LA(1);
+
+ if ( (LA68_0==78) ) {
+ alt68=1;
+ }
+ switch (alt68) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4181:5: otherlv_12= 'default' otherlv_13= ':' ( (lv_default_14_0= ruleXExpression ) )
+ {
+ otherlv_12=(Token)match(input,78,FOLLOW_78_in_ruleXSwitchExpression9969); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_12, grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0());
+
+ }
+ otherlv_13=(Token)match(input,23,FOLLOW_23_in_ruleXSwitchExpression9981); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_13, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4189:1: ( (lv_default_14_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4190:1: (lv_default_14_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4190:1: (lv_default_14_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4191:3: lv_default_14_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXSwitchExpression10002);
+ lv_default_14_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+ }
+ set(
+ current,
+ "default",
+ lv_default_14_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_15=(Token)match(input,16,FOLLOW_16_in_ruleXSwitchExpression10016); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_15, grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXSwitchExpression"
+
+
+ // $ANTLR start "entryRuleXCasePart"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4219:1: entryRuleXCasePart returns [EObject current=null] : iv_ruleXCasePart= ruleXCasePart EOF ;
+ public final EObject entryRuleXCasePart() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXCasePart = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4220:2: (iv_ruleXCasePart= ruleXCasePart EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4221:2: iv_ruleXCasePart= ruleXCasePart EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXCasePartRule());
+ }
+ pushFollow(FOLLOW_ruleXCasePart_in_entryRuleXCasePart10052);
+ iv_ruleXCasePart=ruleXCasePart();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXCasePart;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXCasePart10062); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXCasePart"
+
+
+ // $ANTLR start "ruleXCasePart"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4228:1: ruleXCasePart returns [EObject current=null] : ( ( (lv_typeGuard_0_0= ruleJvmTypeReference ) )? (otherlv_1= 'case' ( (lv_case_2_0= ruleXExpression ) ) )? otherlv_3= ':' ( (lv_then_4_0= ruleXExpression ) ) ) ;
+ public final EObject ruleXCasePart() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ EObject lv_typeGuard_0_0 = null;
+
+ EObject lv_case_2_0 = null;
+
+ EObject lv_then_4_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4231:28: ( ( ( (lv_typeGuard_0_0= ruleJvmTypeReference ) )? (otherlv_1= 'case' ( (lv_case_2_0= ruleXExpression ) ) )? otherlv_3= ':' ( (lv_then_4_0= ruleXExpression ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4232:1: ( ( (lv_typeGuard_0_0= ruleJvmTypeReference ) )? (otherlv_1= 'case' ( (lv_case_2_0= ruleXExpression ) ) )? otherlv_3= ':' ( (lv_then_4_0= ruleXExpression ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4232:1: ( ( (lv_typeGuard_0_0= ruleJvmTypeReference ) )? (otherlv_1= 'case' ( (lv_case_2_0= ruleXExpression ) ) )? otherlv_3= ':' ( (lv_then_4_0= ruleXExpression ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4232:2: ( (lv_typeGuard_0_0= ruleJvmTypeReference ) )? (otherlv_1= 'case' ( (lv_case_2_0= ruleXExpression ) ) )? otherlv_3= ':' ( (lv_then_4_0= ruleXExpression ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4232:2: ( (lv_typeGuard_0_0= ruleJvmTypeReference ) )?
+ int alt69=2;
+ int LA69_0 = input.LA(1);
+
+ if ( (LA69_0==RULE_ID||LA69_0==53||LA69_0==68) ) {
+ alt69=1;
+ }
+ switch (alt69) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4233:1: (lv_typeGuard_0_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4233:1: (lv_typeGuard_0_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4234:3: lv_typeGuard_0_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleXCasePart10108);
+ lv_typeGuard_0_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXCasePartRule());
+ }
+ set(
+ current,
+ "typeGuard",
+ lv_typeGuard_0_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4250:3: (otherlv_1= 'case' ( (lv_case_2_0= ruleXExpression ) ) )?
+ int alt70=2;
+ int LA70_0 = input.LA(1);
+
+ if ( (LA70_0==79) ) {
+ alt70=1;
+ }
+ switch (alt70) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4250:5: otherlv_1= 'case' ( (lv_case_2_0= ruleXExpression ) )
+ {
+ otherlv_1=(Token)match(input,79,FOLLOW_79_in_ruleXCasePart10122); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXCasePartAccess().getCaseKeyword_1_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4254:1: ( (lv_case_2_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4255:1: (lv_case_2_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4255:1: (lv_case_2_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4256:3: lv_case_2_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXCasePart10143);
+ lv_case_2_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXCasePartRule());
+ }
+ set(
+ current,
+ "case",
+ lv_case_2_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_3=(Token)match(input,23,FOLLOW_23_in_ruleXCasePart10157); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getXCasePartAccess().getColonKeyword_2());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4276:1: ( (lv_then_4_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4277:1: (lv_then_4_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4277:1: (lv_then_4_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4278:3: lv_then_4_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXCasePart10178);
+ lv_then_4_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXCasePartRule());
+ }
+ set(
+ current,
+ "then",
+ lv_then_4_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXCasePart"
+
+
+ // $ANTLR start "entryRuleXForLoopExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4302:1: entryRuleXForLoopExpression returns [EObject current=null] : iv_ruleXForLoopExpression= ruleXForLoopExpression EOF ;
+ public final EObject entryRuleXForLoopExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXForLoopExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4303:2: (iv_ruleXForLoopExpression= ruleXForLoopExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4304:2: iv_ruleXForLoopExpression= ruleXForLoopExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXForLoopExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXForLoopExpression_in_entryRuleXForLoopExpression10214);
+ iv_ruleXForLoopExpression=ruleXForLoopExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXForLoopExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXForLoopExpression10224); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXForLoopExpression"
+
+
+ // $ANTLR start "ruleXForLoopExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4311:1: ruleXForLoopExpression returns [EObject current=null] : ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) ;
+ public final EObject ruleXForLoopExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ EObject lv_declaredParam_3_0 = null;
+
+ EObject lv_forExpression_5_0 = null;
+
+ EObject lv_eachExpression_7_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4314:28: ( ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4315:1: ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4315:1: ( () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4315:2: () otherlv_1= 'for' otherlv_2= '(' ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) ) otherlv_4= ':' ( (lv_forExpression_5_0= ruleXExpression ) ) otherlv_6= ')' ( (lv_eachExpression_7_0= ruleXExpression ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4315:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4316:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,80,FOLLOW_80_in_ruleXForLoopExpression10270); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXForLoopExpressionAccess().getForKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,68,FOLLOW_68_in_ruleXForLoopExpression10282); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_2());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4329:1: ( (lv_declaredParam_3_0= ruleJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4330:1: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4330:1: (lv_declaredParam_3_0= ruleJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4331:3: lv_declaredParam_3_0= ruleJvmFormalParameter
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_3_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_ruleXForLoopExpression10303);
+ lv_declaredParam_3_0=ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
+ }
+ set(
+ current,
+ "declaredParam",
+ lv_declaredParam_3_0,
+ "JvmFormalParameter");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_4=(Token)match(input,23,FOLLOW_23_in_ruleXForLoopExpression10315); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getXForLoopExpressionAccess().getColonKeyword_4());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4351:1: ( (lv_forExpression_5_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4352:1: (lv_forExpression_5_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4352:1: (lv_forExpression_5_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4353:3: lv_forExpression_5_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_5_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXForLoopExpression10336);
+ lv_forExpression_5_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
+ }
+ set(
+ current,
+ "forExpression",
+ lv_forExpression_5_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_6=(Token)match(input,69,FOLLOW_69_in_ruleXForLoopExpression10348); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_6());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4373:1: ( (lv_eachExpression_7_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4374:1: (lv_eachExpression_7_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4374:1: (lv_eachExpression_7_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4375:3: lv_eachExpression_7_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_7_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXForLoopExpression10369);
+ lv_eachExpression_7_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
+ }
+ set(
+ current,
+ "eachExpression",
+ lv_eachExpression_7_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXForLoopExpression"
+
+
+ // $ANTLR start "entryRuleXWhileExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4399:1: entryRuleXWhileExpression returns [EObject current=null] : iv_ruleXWhileExpression= ruleXWhileExpression EOF ;
+ public final EObject entryRuleXWhileExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXWhileExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4400:2: (iv_ruleXWhileExpression= ruleXWhileExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4401:2: iv_ruleXWhileExpression= ruleXWhileExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXWhileExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXWhileExpression_in_entryRuleXWhileExpression10405);
+ iv_ruleXWhileExpression=ruleXWhileExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXWhileExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXWhileExpression10415); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXWhileExpression"
+
+
+ // $ANTLR start "ruleXWhileExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4408:1: ruleXWhileExpression returns [EObject current=null] : ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) ;
+ public final EObject ruleXWhileExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ EObject lv_predicate_3_0 = null;
+
+ EObject lv_body_5_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4411:28: ( ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4412:1: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4412:1: ( () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4412:2: () otherlv_1= 'while' otherlv_2= '(' ( (lv_predicate_3_0= ruleXExpression ) ) otherlv_4= ')' ( (lv_body_5_0= ruleXExpression ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4412:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4413:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,81,FOLLOW_81_in_ruleXWhileExpression10461); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,68,FOLLOW_68_in_ruleXWhileExpression10473); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4426:1: ( (lv_predicate_3_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4427:1: (lv_predicate_3_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4427:1: (lv_predicate_3_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4428:3: lv_predicate_3_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXWhileExpression10494);
+ lv_predicate_3_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXWhileExpressionRule());
+ }
+ set(
+ current,
+ "predicate",
+ lv_predicate_3_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_4=(Token)match(input,69,FOLLOW_69_in_ruleXWhileExpression10506); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4448:1: ( (lv_body_5_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4449:1: (lv_body_5_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4449:1: (lv_body_5_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4450:3: lv_body_5_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXWhileExpression10527);
+ lv_body_5_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXWhileExpressionRule());
+ }
+ set(
+ current,
+ "body",
+ lv_body_5_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXWhileExpression"
+
+
+ // $ANTLR start "entryRuleXDoWhileExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4474:1: entryRuleXDoWhileExpression returns [EObject current=null] : iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF ;
+ public final EObject entryRuleXDoWhileExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXDoWhileExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4475:2: (iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4476:2: iv_ruleXDoWhileExpression= ruleXDoWhileExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXDoWhileExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXDoWhileExpression_in_entryRuleXDoWhileExpression10563);
+ iv_ruleXDoWhileExpression=ruleXDoWhileExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXDoWhileExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXDoWhileExpression10573); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXDoWhileExpression"
+
+
+ // $ANTLR start "ruleXDoWhileExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4483:1: ruleXDoWhileExpression returns [EObject current=null] : ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) ;
+ public final EObject ruleXDoWhileExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ EObject lv_body_2_0 = null;
+
+ EObject lv_predicate_5_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4486:28: ( ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4487:1: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4487:1: ( () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4487:2: () otherlv_1= 'do' ( (lv_body_2_0= ruleXExpression ) ) otherlv_3= 'while' otherlv_4= '(' ( (lv_predicate_5_0= ruleXExpression ) ) otherlv_6= ')'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4487:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4488:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,82,FOLLOW_82_in_ruleXDoWhileExpression10619); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4497:1: ( (lv_body_2_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4498:1: (lv_body_2_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4498:1: (lv_body_2_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4499:3: lv_body_2_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXDoWhileExpression10640);
+ lv_body_2_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXDoWhileExpressionRule());
+ }
+ set(
+ current,
+ "body",
+ lv_body_2_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,81,FOLLOW_81_in_ruleXDoWhileExpression10652); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3());
+
+ }
+ otherlv_4=(Token)match(input,68,FOLLOW_68_in_ruleXDoWhileExpression10664); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4523:1: ( (lv_predicate_5_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4524:1: (lv_predicate_5_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4524:1: (lv_predicate_5_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4525:3: lv_predicate_5_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXDoWhileExpression10685);
+ lv_predicate_5_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXDoWhileExpressionRule());
+ }
+ set(
+ current,
+ "predicate",
+ lv_predicate_5_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_6=(Token)match(input,69,FOLLOW_69_in_ruleXDoWhileExpression10697); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXDoWhileExpression"
+
+
+ // $ANTLR start "entryRuleXBlockExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4553:1: entryRuleXBlockExpression returns [EObject current=null] : iv_ruleXBlockExpression= ruleXBlockExpression EOF ;
+ public final EObject entryRuleXBlockExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXBlockExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4554:2: (iv_ruleXBlockExpression= ruleXBlockExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4555:2: iv_ruleXBlockExpression= ruleXBlockExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXBlockExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXBlockExpression_in_entryRuleXBlockExpression10733);
+ iv_ruleXBlockExpression=ruleXBlockExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXBlockExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXBlockExpression10743); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXBlockExpression"
+
+
+ // $ANTLR start "ruleXBlockExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4562:1: ruleXBlockExpression returns [EObject current=null] : ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionInsideBlock ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) ;
+ public final EObject ruleXBlockExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_4=null;
+ EObject lv_expressions_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4565:28: ( ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionInsideBlock ) ) (otherlv_3= ';' )? )* otherlv_4= '}' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4566:1: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionInsideBlock ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4566:1: ( () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionInsideBlock ) ) (otherlv_3= ';' )? )* otherlv_4= '}' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4566:2: () otherlv_1= '{' ( ( (lv_expressions_2_0= ruleXExpressionInsideBlock ) ) (otherlv_3= ';' )? )* otherlv_4= '}'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4566:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4567:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,14,FOLLOW_14_in_ruleXBlockExpression10789); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4576:1: ( ( (lv_expressions_2_0= ruleXExpressionInsideBlock ) ) (otherlv_3= ';' )? )*
+ loop72:
+ do {
+ int alt72=2;
+ int LA72_0 = input.LA(1);
+
+ if ( ((LA72_0>=RULE_ID && LA72_0<=RULE_DECIMAL)||LA72_0==14||LA72_0==17||LA72_0==50||(LA72_0>=57 && LA72_0<=58)||LA72_0==63||LA72_0==68||(LA72_0>=70 && LA72_0<=71)||LA72_0==75||LA72_0==77||(LA72_0>=80 && LA72_0<=96)) ) {
+ alt72=1;
+ }
+
+
+ switch (alt72) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4576:2: ( (lv_expressions_2_0= ruleXExpressionInsideBlock ) ) (otherlv_3= ';' )?
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4576:2: ( (lv_expressions_2_0= ruleXExpressionInsideBlock ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4577:1: (lv_expressions_2_0= ruleXExpressionInsideBlock )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4577:1: (lv_expressions_2_0= ruleXExpressionInsideBlock )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4578:3: lv_expressions_2_0= ruleXExpressionInsideBlock
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionInsideBlockParserRuleCall_2_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpressionInsideBlock_in_ruleXBlockExpression10811);
+ lv_expressions_2_0=ruleXExpressionInsideBlock();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXBlockExpressionRule());
+ }
+ add(
+ current,
+ "expressions",
+ lv_expressions_2_0,
+ "XExpressionInsideBlock");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4594:2: (otherlv_3= ';' )?
+ int alt71=2;
+ int LA71_0 = input.LA(1);
+
+ if ( (LA71_0==74) ) {
+ alt71=1;
+ }
+ switch (alt71) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4594:4: otherlv_3= ';'
+ {
+ otherlv_3=(Token)match(input,74,FOLLOW_74_in_ruleXBlockExpression10824); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop72;
+ }
+ } while (true);
+
+ otherlv_4=(Token)match(input,16,FOLLOW_16_in_ruleXBlockExpression10840); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXBlockExpression"
+
+
+ // $ANTLR start "entryRuleXExpressionInsideBlock"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4610:1: entryRuleXExpressionInsideBlock returns [EObject current=null] : iv_ruleXExpressionInsideBlock= ruleXExpressionInsideBlock EOF ;
+ public final EObject entryRuleXExpressionInsideBlock() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXExpressionInsideBlock = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4611:2: (iv_ruleXExpressionInsideBlock= ruleXExpressionInsideBlock EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4612:2: iv_ruleXExpressionInsideBlock= ruleXExpressionInsideBlock EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXExpressionInsideBlockRule());
+ }
+ pushFollow(FOLLOW_ruleXExpressionInsideBlock_in_entryRuleXExpressionInsideBlock10876);
+ iv_ruleXExpressionInsideBlock=ruleXExpressionInsideBlock();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXExpressionInsideBlock;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXExpressionInsideBlock10886); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXExpressionInsideBlock"
+
+
+ // $ANTLR start "ruleXExpressionInsideBlock"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4619:1: ruleXExpressionInsideBlock returns [EObject current=null] : (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) ;
+ public final EObject ruleXExpressionInsideBlock() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_XVariableDeclaration_0 = null;
+
+ EObject this_XExpression_1 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4622:28: ( (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4623:1: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4623:1: (this_XVariableDeclaration_0= ruleXVariableDeclaration | this_XExpression_1= ruleXExpression )
+ int alt73=2;
+ int LA73_0 = input.LA(1);
+
+ if ( ((LA73_0>=83 && LA73_0<=84)) ) {
+ alt73=1;
+ }
+ else if ( ((LA73_0>=RULE_ID && LA73_0<=RULE_DECIMAL)||LA73_0==14||LA73_0==17||LA73_0==50||(LA73_0>=57 && LA73_0<=58)||LA73_0==63||LA73_0==68||(LA73_0>=70 && LA73_0<=71)||LA73_0==75||LA73_0==77||(LA73_0>=80 && LA73_0<=82)||(LA73_0>=85 && LA73_0<=96)) ) {
+ alt73=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 73, 0, input);
+
+ throw nvae;
+ }
+ switch (alt73) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4624:5: this_XVariableDeclaration_0= ruleXVariableDeclaration
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXExpressionInsideBlockAccess().getXVariableDeclarationParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleXVariableDeclaration_in_ruleXExpressionInsideBlock10933);
+ this_XVariableDeclaration_0=ruleXVariableDeclaration();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XVariableDeclaration_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4634:5: this_XExpression_1= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXExpressionInsideBlockAccess().getXExpressionParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXExpressionInsideBlock10960);
+ this_XExpression_1=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XExpression_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXExpressionInsideBlock"
+
+
+ // $ANTLR start "entryRuleXVariableDeclaration"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4650:1: entryRuleXVariableDeclaration returns [EObject current=null] : iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF ;
+ public final EObject entryRuleXVariableDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXVariableDeclaration = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4651:2: (iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4652:2: iv_ruleXVariableDeclaration= ruleXVariableDeclaration EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXVariableDeclarationRule());
+ }
+ pushFollow(FOLLOW_ruleXVariableDeclaration_in_entryRuleXVariableDeclaration10995);
+ iv_ruleXVariableDeclaration=ruleXVariableDeclaration();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXVariableDeclaration;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXVariableDeclaration11005); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXVariableDeclaration"
+
+
+ // $ANTLR start "ruleXVariableDeclaration"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4659:1: ruleXVariableDeclaration returns [EObject current=null] : ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) ;
+ public final EObject ruleXVariableDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_writeable_1_0=null;
+ Token otherlv_2=null;
+ Token otherlv_6=null;
+ EObject lv_type_3_0 = null;
+
+ AntlrDatatypeRuleToken lv_name_4_0 = null;
+
+ AntlrDatatypeRuleToken lv_name_5_0 = null;
+
+ EObject lv_right_7_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4662:28: ( ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4663:1: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4663:1: ( () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )? )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4663:2: () ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' ) ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) ) (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4663:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4664:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4669:2: ( ( (lv_writeable_1_0= 'var' ) ) | otherlv_2= 'val' )
+ int alt74=2;
+ int LA74_0 = input.LA(1);
+
+ if ( (LA74_0==83) ) {
+ alt74=1;
+ }
+ else if ( (LA74_0==84) ) {
+ alt74=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 74, 0, input);
+
+ throw nvae;
+ }
+ switch (alt74) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4669:3: ( (lv_writeable_1_0= 'var' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4669:3: ( (lv_writeable_1_0= 'var' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4670:1: (lv_writeable_1_0= 'var' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4670:1: (lv_writeable_1_0= 'var' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4671:3: lv_writeable_1_0= 'var'
+ {
+ lv_writeable_1_0=(Token)match(input,83,FOLLOW_83_in_ruleXVariableDeclaration11058); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_writeable_1_0, grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXVariableDeclarationRule());
+ }
+ setWithLastConsumed(current, "writeable", true, "var");
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4685:7: otherlv_2= 'val'
+ {
+ otherlv_2=(Token)match(input,84,FOLLOW_84_in_ruleXVariableDeclaration11089); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4689:2: ( ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) ) | ( (lv_name_5_0= ruleValidID ) ) )
+ int alt75=2;
+ int LA75_0 = input.LA(1);
+
+ if ( (LA75_0==RULE_ID) ) {
+ int LA75_1 = input.LA(2);
+
+ if ( (synpred25_InternalEmfParsleyDsl()) ) {
+ alt75=1;
+ }
+ else if ( (true) ) {
+ alt75=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 75, 1, input);
+
+ throw nvae;
+ }
+ }
+ else if ( (LA75_0==68) && (synpred25_InternalEmfParsleyDsl())) {
+ alt75=1;
+ }
+ else if ( (LA75_0==53) && (synpred25_InternalEmfParsleyDsl())) {
+ alt75=1;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 75, 0, input);
+
+ throw nvae;
+ }
+ switch (alt75) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4689:3: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4689:3: ( ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4689:4: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )=> ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4697:6: ( ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4697:7: ( (lv_type_3_0= ruleJvmTypeReference ) ) ( (lv_name_4_0= ruleValidID ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4697:7: ( (lv_type_3_0= ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4698:1: (lv_type_3_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4698:1: (lv_type_3_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4699:3: lv_type_3_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleXVariableDeclaration11137);
+ lv_type_3_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+ }
+ set(
+ current,
+ "type",
+ lv_type_3_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4715:2: ( (lv_name_4_0= ruleValidID ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4716:1: (lv_name_4_0= ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4716:1: (lv_name_4_0= ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4717:3: lv_name_4_0= ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleValidID_in_ruleXVariableDeclaration11158);
+ lv_name_4_0=ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_4_0,
+ "ValidID");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4734:6: ( (lv_name_5_0= ruleValidID ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4734:6: ( (lv_name_5_0= ruleValidID ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4735:1: (lv_name_5_0= ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4735:1: (lv_name_5_0= ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4736:3: lv_name_5_0= ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleValidID_in_ruleXVariableDeclaration11187);
+ lv_name_5_0=ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_5_0,
+ "ValidID");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4752:3: (otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) ) )?
+ int alt76=2;
+ int LA76_0 = input.LA(1);
+
+ if ( (LA76_0==37) ) {
+ alt76=1;
+ }
+ switch (alt76) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4752:5: otherlv_6= '=' ( (lv_right_7_0= ruleXExpression ) )
+ {
+ otherlv_6=(Token)match(input,37,FOLLOW_37_in_ruleXVariableDeclaration11201); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4756:1: ( (lv_right_7_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4757:1: (lv_right_7_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4757:1: (lv_right_7_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4758:3: lv_right_7_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXVariableDeclaration11222);
+ lv_right_7_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+ }
+ set(
+ current,
+ "right",
+ lv_right_7_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXVariableDeclaration"
+
+
+ // $ANTLR start "entryRuleJvmFormalParameter"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4782:1: entryRuleJvmFormalParameter returns [EObject current=null] : iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF ;
+ public final EObject entryRuleJvmFormalParameter() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleJvmFormalParameter = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4783:2: (iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4784:2: iv_ruleJvmFormalParameter= ruleJvmFormalParameter EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getJvmFormalParameterRule());
+ }
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_entryRuleJvmFormalParameter11260);
+ iv_ruleJvmFormalParameter=ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleJvmFormalParameter;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleJvmFormalParameter11270); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleJvmFormalParameter"
+
+
+ // $ANTLR start "ruleJvmFormalParameter"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4791:1: ruleJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) ;
+ public final EObject ruleJvmFormalParameter() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_parameterType_0_0 = null;
+
+ AntlrDatatypeRuleToken lv_name_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4794:28: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4795:1: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4795:1: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4795:2: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )? ( (lv_name_1_0= ruleValidID ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4795:2: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )?
+ int alt77=2;
+ int LA77_0 = input.LA(1);
+
+ if ( (LA77_0==RULE_ID) ) {
+ int LA77_1 = input.LA(2);
+
+ if ( (LA77_1==RULE_ID||LA77_1==50||LA77_1==65||LA77_1==71) ) {
+ alt77=1;
+ }
+ }
+ else if ( (LA77_0==53||LA77_0==68) ) {
+ alt77=1;
+ }
+ switch (alt77) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4796:1: (lv_parameterType_0_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4796:1: (lv_parameterType_0_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4797:3: lv_parameterType_0_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleJvmFormalParameter11316);
+ lv_parameterType_0_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getJvmFormalParameterRule());
+ }
+ set(
+ current,
+ "parameterType",
+ lv_parameterType_0_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4813:3: ( (lv_name_1_0= ruleValidID ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4814:1: (lv_name_1_0= ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4814:1: (lv_name_1_0= ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4815:3: lv_name_1_0= ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleValidID_in_ruleJvmFormalParameter11338);
+ lv_name_1_0=ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getJvmFormalParameterRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_1_0,
+ "ValidID");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleJvmFormalParameter"
+
+
+ // $ANTLR start "entryRuleFullJvmFormalParameter"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4839:1: entryRuleFullJvmFormalParameter returns [EObject current=null] : iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF ;
+ public final EObject entryRuleFullJvmFormalParameter() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleFullJvmFormalParameter = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4840:2: (iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4841:2: iv_ruleFullJvmFormalParameter= ruleFullJvmFormalParameter EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getFullJvmFormalParameterRule());
+ }
+ pushFollow(FOLLOW_ruleFullJvmFormalParameter_in_entryRuleFullJvmFormalParameter11374);
+ iv_ruleFullJvmFormalParameter=ruleFullJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleFullJvmFormalParameter;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleFullJvmFormalParameter11384); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleFullJvmFormalParameter"
+
+
+ // $ANTLR start "ruleFullJvmFormalParameter"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4848:1: ruleFullJvmFormalParameter returns [EObject current=null] : ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) ;
+ public final EObject ruleFullJvmFormalParameter() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_parameterType_0_0 = null;
+
+ AntlrDatatypeRuleToken lv_name_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4851:28: ( ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4852:1: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4852:1: ( ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4852:2: ( (lv_parameterType_0_0= ruleJvmTypeReference ) ) ( (lv_name_1_0= ruleValidID ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4852:2: ( (lv_parameterType_0_0= ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4853:1: (lv_parameterType_0_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4853:1: (lv_parameterType_0_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4854:3: lv_parameterType_0_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleFullJvmFormalParameter11430);
+ lv_parameterType_0_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getFullJvmFormalParameterRule());
+ }
+ set(
+ current,
+ "parameterType",
+ lv_parameterType_0_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4870:2: ( (lv_name_1_0= ruleValidID ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4871:1: (lv_name_1_0= ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4871:1: (lv_name_1_0= ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4872:3: lv_name_1_0= ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleValidID_in_ruleFullJvmFormalParameter11451);
+ lv_name_1_0=ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getFullJvmFormalParameterRule());
+ }
+ set(
+ current,
+ "name",
+ lv_name_1_0,
+ "ValidID");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleFullJvmFormalParameter"
+
+
+ // $ANTLR start "entryRuleXFeatureCall"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4896:1: entryRuleXFeatureCall returns [EObject current=null] : iv_ruleXFeatureCall= ruleXFeatureCall EOF ;
+ public final EObject entryRuleXFeatureCall() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXFeatureCall = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4897:2: (iv_ruleXFeatureCall= ruleXFeatureCall EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4898:2: iv_ruleXFeatureCall= ruleXFeatureCall EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXFeatureCallRule());
+ }
+ pushFollow(FOLLOW_ruleXFeatureCall_in_entryRuleXFeatureCall11487);
+ iv_ruleXFeatureCall=ruleXFeatureCall();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXFeatureCall;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXFeatureCall11497); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXFeatureCall"
+
+
+ // $ANTLR start "ruleXFeatureCall"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4905:1: ruleXFeatureCall returns [EObject current=null] : ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) ;
+ public final EObject ruleXFeatureCall() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token lv_explicitOperationCall_7_0=null;
+ Token otherlv_10=null;
+ Token otherlv_12=null;
+ EObject lv_typeArguments_2_0 = null;
+
+ EObject lv_typeArguments_4_0 = null;
+
+ EObject lv_featureCallArguments_8_0 = null;
+
+ EObject lv_featureCallArguments_9_0 = null;
+
+ EObject lv_featureCallArguments_11_0 = null;
+
+ EObject lv_featureCallArguments_13_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4908:28: ( ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4909:1: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4909:1: ( () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )? )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4909:2: () (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )? ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4909:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4910:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4915:2: (otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )?
+ int alt79=2;
+ int LA79_0 = input.LA(1);
+
+ if ( (LA79_0==50) ) {
+ alt79=1;
+ }
+ switch (alt79) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4915:4: otherlv_1= '<' ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>'
+ {
+ otherlv_1=(Token)match(input,50,FOLLOW_50_in_ruleXFeatureCall11544); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4919:1: ( (lv_typeArguments_2_0= ruleJvmArgumentTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4920:1: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4920:1: (lv_typeArguments_2_0= ruleJvmArgumentTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4921:3: lv_typeArguments_2_0= ruleJvmArgumentTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_ruleXFeatureCall11565);
+ lv_typeArguments_2_0=ruleJvmArgumentTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+ }
+ add(
+ current,
+ "typeArguments",
+ lv_typeArguments_2_0,
+ "JvmArgumentTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4937:2: (otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) )*
+ loop78:
+ do {
+ int alt78=2;
+ int LA78_0 = input.LA(1);
+
+ if ( (LA78_0==26) ) {
+ alt78=1;
+ }
+
+
+ switch (alt78) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4937:4: otherlv_3= ',' ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+ {
+ otherlv_3=(Token)match(input,26,FOLLOW_26_in_ruleXFeatureCall11578); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4941:1: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4942:1: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4942:1: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4943:3: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_ruleXFeatureCall11599);
+ lv_typeArguments_4_0=ruleJvmArgumentTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+ }
+ add(
+ current,
+ "typeArguments",
+ lv_typeArguments_4_0,
+ "JvmArgumentTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop78;
+ }
+ } while (true);
+
+ otherlv_5=(Token)match(input,49,FOLLOW_49_in_ruleXFeatureCall11613); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3());
+
+ }
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4963:3: ( ( ruleIdOrSuper ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4964:1: ( ruleIdOrSuper )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4964:1: ( ruleIdOrSuper )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4965:3: ruleIdOrSuper
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXFeatureCallRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleIdOrSuper_in_ruleXFeatureCall11638);
+ ruleIdOrSuper();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4978:2: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?
+ int alt82=2;
+ alt82 = dfa82.predict(input);
+ switch (alt82) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4978:3: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4978:3: ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4978:4: ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4985:1: (lv_explicitOperationCall_7_0= '(' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4986:3: lv_explicitOperationCall_7_0= '('
+ {
+ lv_explicitOperationCall_7_0=(Token)match(input,68,FOLLOW_68_in_ruleXFeatureCall11672); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_explicitOperationCall_7_0, grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXFeatureCallRule());
+ }
+ setWithLastConsumed(current, "explicitOperationCall", true, "(");
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4999:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?
+ int alt81=3;
+ alt81 = dfa81.predict(input);
+ switch (alt81) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4999:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4999:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4999:4: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5016:1: (lv_featureCallArguments_8_0= ruleXShortClosure )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5017:3: lv_featureCallArguments_8_0= ruleXShortClosure
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleXShortClosure_in_ruleXFeatureCall11757);
+ lv_featureCallArguments_8_0=ruleXShortClosure();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+ }
+ add(
+ current,
+ "featureCallArguments",
+ lv_featureCallArguments_8_0,
+ "XShortClosure");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5034:6: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5034:6: ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5034:7: ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5034:7: ( (lv_featureCallArguments_9_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5035:1: (lv_featureCallArguments_9_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5035:1: (lv_featureCallArguments_9_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5036:3: lv_featureCallArguments_9_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXFeatureCall11785);
+ lv_featureCallArguments_9_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+ }
+ add(
+ current,
+ "featureCallArguments",
+ lv_featureCallArguments_9_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5052:2: (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )*
+ loop80:
+ do {
+ int alt80=2;
+ int LA80_0 = input.LA(1);
+
+ if ( (LA80_0==26) ) {
+ alt80=1;
+ }
+
+
+ switch (alt80) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5052:4: otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) )
+ {
+ otherlv_10=(Token)match(input,26,FOLLOW_26_in_ruleXFeatureCall11798); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_10, grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5056:1: ( (lv_featureCallArguments_11_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5057:1: (lv_featureCallArguments_11_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5057:1: (lv_featureCallArguments_11_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5058:3: lv_featureCallArguments_11_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXFeatureCall11819);
+ lv_featureCallArguments_11_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+ }
+ add(
+ current,
+ "featureCallArguments",
+ lv_featureCallArguments_11_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop80;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_12=(Token)match(input,69,FOLLOW_69_in_ruleXFeatureCall11836); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_12, grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2());
+
+ }
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5078:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?
+ int alt83=2;
+ alt83 = dfa83.predict(input);
+ switch (alt83) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5078:4: ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5081:1: (lv_featureCallArguments_13_0= ruleXClosure )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5082:3: lv_featureCallArguments_13_0= ruleXClosure
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0());
+
+ }
+ pushFollow(FOLLOW_ruleXClosure_in_ruleXFeatureCall11871);
+ lv_featureCallArguments_13_0=ruleXClosure();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+ }
+ add(
+ current,
+ "featureCallArguments",
+ lv_featureCallArguments_13_0,
+ "XClosure");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXFeatureCall"
+
+
+ // $ANTLR start "entryRuleFeatureCallID"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5106:1: entryRuleFeatureCallID returns [String current=null] : iv_ruleFeatureCallID= ruleFeatureCallID EOF ;
+ public final String entryRuleFeatureCallID() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleFeatureCallID = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5107:2: (iv_ruleFeatureCallID= ruleFeatureCallID EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5108:2: iv_ruleFeatureCallID= ruleFeatureCallID EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getFeatureCallIDRule());
+ }
+ pushFollow(FOLLOW_ruleFeatureCallID_in_entryRuleFeatureCallID11909);
+ iv_ruleFeatureCallID=ruleFeatureCallID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleFeatureCallID.getText();
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleFeatureCallID11920); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleFeatureCallID"
+
+
+ // $ANTLR start "ruleFeatureCallID"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5115:1: ruleFeatureCallID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) ;
+ public final AntlrDatatypeRuleToken ruleFeatureCallID() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+ AntlrDatatypeRuleToken this_ValidID_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5118:28: ( (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5119:1: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5119:1: (this_ValidID_0= ruleValidID | kw= 'extends' | kw= 'static' | kw= 'import' | kw= 'extension' )
+ int alt84=5;
+ switch ( input.LA(1) ) {
+ case RULE_ID:
+ {
+ alt84=1;
+ }
+ break;
+ case 17:
+ {
+ alt84=2;
+ }
+ break;
+ case 85:
+ {
+ alt84=3;
+ }
+ break;
+ case 86:
+ {
+ alt84=4;
+ }
+ break;
+ case 87:
+ {
+ alt84=5;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 84, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt84) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5120:5: this_ValidID_0= ruleValidID
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleValidID_in_ruleFeatureCallID11967);
+ this_ValidID_0=ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_ValidID_0);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5132:2: kw= 'extends'
+ {
+ kw=(Token)match(input,17,FOLLOW_17_in_ruleFeatureCallID11991); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1());
+
+ }
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5139:2: kw= 'static'
+ {
+ kw=(Token)match(input,85,FOLLOW_85_in_ruleFeatureCallID12010); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2());
+
+ }
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5146:2: kw= 'import'
+ {
+ kw=(Token)match(input,86,FOLLOW_86_in_ruleFeatureCallID12029); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getImportKeyword_3());
+
+ }
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5153:2: kw= 'extension'
+ {
+ kw=(Token)match(input,87,FOLLOW_87_in_ruleFeatureCallID12048); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleFeatureCallID"
+
+
+ // $ANTLR start "entryRuleIdOrSuper"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5166:1: entryRuleIdOrSuper returns [String current=null] : iv_ruleIdOrSuper= ruleIdOrSuper EOF ;
+ public final String entryRuleIdOrSuper() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleIdOrSuper = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5167:2: (iv_ruleIdOrSuper= ruleIdOrSuper EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5168:2: iv_ruleIdOrSuper= ruleIdOrSuper EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getIdOrSuperRule());
+ }
+ pushFollow(FOLLOW_ruleIdOrSuper_in_entryRuleIdOrSuper12089);
+ iv_ruleIdOrSuper=ruleIdOrSuper();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleIdOrSuper.getText();
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleIdOrSuper12100); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleIdOrSuper"
+
+
+ // $ANTLR start "ruleIdOrSuper"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5175:1: ruleIdOrSuper returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) ;
+ public final AntlrDatatypeRuleToken ruleIdOrSuper() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+ AntlrDatatypeRuleToken this_FeatureCallID_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5178:28: ( (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5179:1: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5179:1: (this_FeatureCallID_0= ruleFeatureCallID | kw= 'super' )
+ int alt85=2;
+ int LA85_0 = input.LA(1);
+
+ if ( (LA85_0==RULE_ID||LA85_0==17||(LA85_0>=85 && LA85_0<=87)) ) {
+ alt85=1;
+ }
+ else if ( (LA85_0==88) ) {
+ alt85=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 85, 0, input);
+
+ throw nvae;
+ }
+ switch (alt85) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5180:5: this_FeatureCallID_0= ruleFeatureCallID
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleFeatureCallID_in_ruleIdOrSuper12147);
+ this_FeatureCallID_0=ruleFeatureCallID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_FeatureCallID_0);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5192:2: kw= 'super'
+ {
+ kw=(Token)match(input,88,FOLLOW_88_in_ruleIdOrSuper12171); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getIdOrSuperAccess().getSuperKeyword_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleIdOrSuper"
+
+
+ // $ANTLR start "entryRuleXConstructorCall"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5205:1: entryRuleXConstructorCall returns [EObject current=null] : iv_ruleXConstructorCall= ruleXConstructorCall EOF ;
+ public final EObject entryRuleXConstructorCall() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXConstructorCall = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5206:2: (iv_ruleXConstructorCall= ruleXConstructorCall EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5207:2: iv_ruleXConstructorCall= ruleXConstructorCall EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXConstructorCallRule());
+ }
+ pushFollow(FOLLOW_ruleXConstructorCall_in_entryRuleXConstructorCall12211);
+ iv_ruleXConstructorCall=ruleXConstructorCall();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXConstructorCall;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXConstructorCall12221); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXConstructorCall"
+
+
+ // $ANTLR start "ruleXConstructorCall"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5214:1: ruleXConstructorCall returns [EObject current=null] : ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( '(' )=>otherlv_8= '(' ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) ;
+ public final EObject ruleXConstructorCall() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ Token otherlv_8=null;
+ Token otherlv_11=null;
+ Token otherlv_13=null;
+ EObject lv_typeArguments_4_0 = null;
+
+ EObject lv_typeArguments_6_0 = null;
+
+ EObject lv_arguments_9_0 = null;
+
+ EObject lv_arguments_10_0 = null;
+
+ EObject lv_arguments_12_0 = null;
+
+ EObject lv_arguments_14_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5217:28: ( ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( '(' )=>otherlv_8= '(' ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5218:1: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( '(' )=>otherlv_8= '(' ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5218:1: ( () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( '(' )=>otherlv_8= '(' ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )? )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5218:2: () otherlv_1= 'new' ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )? ( ( ( '(' )=>otherlv_8= '(' ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )? ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5218:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5219:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,89,FOLLOW_89_in_ruleXConstructorCall12267); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXConstructorCallAccess().getNewKeyword_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5228:1: ( ( ruleQualifiedName ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5229:1: ( ruleQualifiedName )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5229:1: ( ruleQualifiedName )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5230:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXConstructorCallRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_ruleXConstructorCall12290);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5243:2: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?
+ int alt87=2;
+ alt87 = dfa87.predict(input);
+ switch (alt87) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5243:3: ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5243:3: ( ( '<' )=>otherlv_3= '<' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5243:4: ( '<' )=>otherlv_3= '<'
+ {
+ otherlv_3=(Token)match(input,50,FOLLOW_50_in_ruleXConstructorCall12311); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0());
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5248:2: ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5249:1: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5249:1: (lv_typeArguments_4_0= ruleJvmArgumentTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5250:3: lv_typeArguments_4_0= ruleJvmArgumentTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_ruleXConstructorCall12333);
+ lv_typeArguments_4_0=ruleJvmArgumentTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+ }
+ add(
+ current,
+ "typeArguments",
+ lv_typeArguments_4_0,
+ "JvmArgumentTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5266:2: (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )*
+ loop86:
+ do {
+ int alt86=2;
+ int LA86_0 = input.LA(1);
+
+ if ( (LA86_0==26) ) {
+ alt86=1;
+ }
+
+
+ switch (alt86) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5266:4: otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
+ {
+ otherlv_5=(Token)match(input,26,FOLLOW_26_in_ruleXConstructorCall12346); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5270:1: ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5271:1: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5271:1: (lv_typeArguments_6_0= ruleJvmArgumentTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5272:3: lv_typeArguments_6_0= ruleJvmArgumentTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_ruleXConstructorCall12367);
+ lv_typeArguments_6_0=ruleJvmArgumentTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+ }
+ add(
+ current,
+ "typeArguments",
+ lv_typeArguments_6_0,
+ "JvmArgumentTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop86;
+ }
+ } while (true);
+
+ otherlv_7=(Token)match(input,49,FOLLOW_49_in_ruleXConstructorCall12381); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_7, grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3());
+
+ }
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5292:3: ( ( ( '(' )=>otherlv_8= '(' ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?
+ int alt90=2;
+ alt90 = dfa90.predict(input);
+ switch (alt90) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5292:4: ( ( '(' )=>otherlv_8= '(' ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5292:4: ( ( '(' )=>otherlv_8= '(' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5292:5: ( '(' )=>otherlv_8= '('
+ {
+ otherlv_8=(Token)match(input,68,FOLLOW_68_in_ruleXConstructorCall12404); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_8, grammarAccess.getXConstructorCallAccess().getLeftParenthesisKeyword_4_0());
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5297:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?
+ int alt89=3;
+ alt89 = dfa89.predict(input);
+ switch (alt89) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5297:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5297:3: ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5297:4: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5314:1: (lv_arguments_9_0= ruleXShortClosure )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5315:3: lv_arguments_9_0= ruleXShortClosure
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleXShortClosure_in_ruleXConstructorCall12477);
+ lv_arguments_9_0=ruleXShortClosure();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+ }
+ add(
+ current,
+ "arguments",
+ lv_arguments_9_0,
+ "XShortClosure");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5332:6: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5332:6: ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5332:7: ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5332:7: ( (lv_arguments_10_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5333:1: (lv_arguments_10_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5333:1: (lv_arguments_10_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5334:3: lv_arguments_10_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXConstructorCall12505);
+ lv_arguments_10_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+ }
+ add(
+ current,
+ "arguments",
+ lv_arguments_10_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5350:2: (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )*
+ loop88:
+ do {
+ int alt88=2;
+ int LA88_0 = input.LA(1);
+
+ if ( (LA88_0==26) ) {
+ alt88=1;
+ }
+
+
+ switch (alt88) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5350:4: otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) )
+ {
+ otherlv_11=(Token)match(input,26,FOLLOW_26_in_ruleXConstructorCall12518); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_11, grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5354:1: ( (lv_arguments_12_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5355:1: (lv_arguments_12_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5355:1: (lv_arguments_12_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5356:3: lv_arguments_12_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXConstructorCall12539);
+ lv_arguments_12_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+ }
+ add(
+ current,
+ "arguments",
+ lv_arguments_12_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop88;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ otherlv_13=(Token)match(input,69,FOLLOW_69_in_ruleXConstructorCall12556); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_13, grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2());
+
+ }
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5376:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?
+ int alt91=2;
+ alt91 = dfa91.predict(input);
+ switch (alt91) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5376:4: ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5379:1: (lv_arguments_14_0= ruleXClosure )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5380:3: lv_arguments_14_0= ruleXClosure
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0());
+
+ }
+ pushFollow(FOLLOW_ruleXClosure_in_ruleXConstructorCall12591);
+ lv_arguments_14_0=ruleXClosure();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+ }
+ add(
+ current,
+ "arguments",
+ lv_arguments_14_0,
+ "XClosure");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXConstructorCall"
+
+
+ // $ANTLR start "entryRuleXBooleanLiteral"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5404:1: entryRuleXBooleanLiteral returns [EObject current=null] : iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF ;
+ public final EObject entryRuleXBooleanLiteral() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXBooleanLiteral = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5405:2: (iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5406:2: iv_ruleXBooleanLiteral= ruleXBooleanLiteral EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXBooleanLiteralRule());
+ }
+ pushFollow(FOLLOW_ruleXBooleanLiteral_in_entryRuleXBooleanLiteral12628);
+ iv_ruleXBooleanLiteral=ruleXBooleanLiteral();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXBooleanLiteral;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXBooleanLiteral12638); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXBooleanLiteral"
+
+
+ // $ANTLR start "ruleXBooleanLiteral"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5413:1: ruleXBooleanLiteral returns [EObject current=null] : ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) ;
+ public final EObject ruleXBooleanLiteral() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token lv_isTrue_2_0=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5416:28: ( ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5417:1: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5417:1: ( () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5417:2: () (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5417:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5418:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5423:2: (otherlv_1= 'false' | ( (lv_isTrue_2_0= 'true' ) ) )
+ int alt92=2;
+ int LA92_0 = input.LA(1);
+
+ if ( (LA92_0==90) ) {
+ alt92=1;
+ }
+ else if ( (LA92_0==91) ) {
+ alt92=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 92, 0, input);
+
+ throw nvae;
+ }
+ switch (alt92) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5423:4: otherlv_1= 'false'
+ {
+ otherlv_1=(Token)match(input,90,FOLLOW_90_in_ruleXBooleanLiteral12685); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5428:6: ( (lv_isTrue_2_0= 'true' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5428:6: ( (lv_isTrue_2_0= 'true' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5429:1: (lv_isTrue_2_0= 'true' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5429:1: (lv_isTrue_2_0= 'true' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5430:3: lv_isTrue_2_0= 'true'
+ {
+ lv_isTrue_2_0=(Token)match(input,91,FOLLOW_91_in_ruleXBooleanLiteral12709); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_isTrue_2_0, grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXBooleanLiteralRule());
+ }
+ setWithLastConsumed(current, "isTrue", true, "true");
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXBooleanLiteral"
+
+
+ // $ANTLR start "entryRuleXNullLiteral"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5451:1: entryRuleXNullLiteral returns [EObject current=null] : iv_ruleXNullLiteral= ruleXNullLiteral EOF ;
+ public final EObject entryRuleXNullLiteral() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXNullLiteral = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5452:2: (iv_ruleXNullLiteral= ruleXNullLiteral EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5453:2: iv_ruleXNullLiteral= ruleXNullLiteral EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXNullLiteralRule());
+ }
+ pushFollow(FOLLOW_ruleXNullLiteral_in_entryRuleXNullLiteral12759);
+ iv_ruleXNullLiteral=ruleXNullLiteral();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXNullLiteral;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXNullLiteral12769); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXNullLiteral"
+
+
+ // $ANTLR start "ruleXNullLiteral"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5460:1: ruleXNullLiteral returns [EObject current=null] : ( () otherlv_1= 'null' ) ;
+ public final EObject ruleXNullLiteral() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5463:28: ( ( () otherlv_1= 'null' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5464:1: ( () otherlv_1= 'null' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5464:1: ( () otherlv_1= 'null' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5464:2: () otherlv_1= 'null'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5464:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5465:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,92,FOLLOW_92_in_ruleXNullLiteral12815); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXNullLiteralAccess().getNullKeyword_1());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXNullLiteral"
+
+
+ // $ANTLR start "entryRuleXNumberLiteral"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5482:1: entryRuleXNumberLiteral returns [EObject current=null] : iv_ruleXNumberLiteral= ruleXNumberLiteral EOF ;
+ public final EObject entryRuleXNumberLiteral() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXNumberLiteral = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5483:2: (iv_ruleXNumberLiteral= ruleXNumberLiteral EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5484:2: iv_ruleXNumberLiteral= ruleXNumberLiteral EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXNumberLiteralRule());
+ }
+ pushFollow(FOLLOW_ruleXNumberLiteral_in_entryRuleXNumberLiteral12851);
+ iv_ruleXNumberLiteral=ruleXNumberLiteral();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXNumberLiteral;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXNumberLiteral12861); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXNumberLiteral"
+
+
+ // $ANTLR start "ruleXNumberLiteral"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5491:1: ruleXNumberLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= ruleNumber ) ) ) ;
+ public final EObject ruleXNumberLiteral() throws RecognitionException {
+ EObject current = null;
+
+ AntlrDatatypeRuleToken lv_value_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5494:28: ( ( () ( (lv_value_1_0= ruleNumber ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5495:1: ( () ( (lv_value_1_0= ruleNumber ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5495:1: ( () ( (lv_value_1_0= ruleNumber ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5495:2: () ( (lv_value_1_0= ruleNumber ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5495:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5496:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5501:2: ( (lv_value_1_0= ruleNumber ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5502:1: (lv_value_1_0= ruleNumber )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5502:1: (lv_value_1_0= ruleNumber )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5503:3: lv_value_1_0= ruleNumber
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleNumber_in_ruleXNumberLiteral12916);
+ lv_value_1_0=ruleNumber();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXNumberLiteralRule());
+ }
+ set(
+ current,
+ "value",
+ lv_value_1_0,
+ "Number");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXNumberLiteral"
+
+
+ // $ANTLR start "entryRuleXStringLiteral"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5527:1: entryRuleXStringLiteral returns [EObject current=null] : iv_ruleXStringLiteral= ruleXStringLiteral EOF ;
+ public final EObject entryRuleXStringLiteral() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXStringLiteral = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5528:2: (iv_ruleXStringLiteral= ruleXStringLiteral EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5529:2: iv_ruleXStringLiteral= ruleXStringLiteral EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXStringLiteralRule());
+ }
+ pushFollow(FOLLOW_ruleXStringLiteral_in_entryRuleXStringLiteral12952);
+ iv_ruleXStringLiteral=ruleXStringLiteral();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXStringLiteral;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXStringLiteral12962); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXStringLiteral"
+
+
+ // $ANTLR start "ruleXStringLiteral"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5536:1: ruleXStringLiteral returns [EObject current=null] : ( () ( (lv_value_1_0= RULE_STRING ) ) ) ;
+ public final EObject ruleXStringLiteral() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_value_1_0=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5539:28: ( ( () ( (lv_value_1_0= RULE_STRING ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5540:1: ( () ( (lv_value_1_0= RULE_STRING ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5540:1: ( () ( (lv_value_1_0= RULE_STRING ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5540:2: () ( (lv_value_1_0= RULE_STRING ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5540:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5541:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0(),
+ current);
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5546:2: ( (lv_value_1_0= RULE_STRING ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5547:1: (lv_value_1_0= RULE_STRING )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5547:1: (lv_value_1_0= RULE_STRING )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5548:3: lv_value_1_0= RULE_STRING
+ {
+ lv_value_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleXStringLiteral13013); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_value_1_0, grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXStringLiteralRule());
+ }
+ setWithLastConsumed(
+ current,
+ "value",
+ lv_value_1_0,
+ "STRING");
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXStringLiteral"
+
+
+ // $ANTLR start "entryRuleXTypeLiteral"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5572:1: entryRuleXTypeLiteral returns [EObject current=null] : iv_ruleXTypeLiteral= ruleXTypeLiteral EOF ;
+ public final EObject entryRuleXTypeLiteral() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXTypeLiteral = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5573:2: (iv_ruleXTypeLiteral= ruleXTypeLiteral EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5574:2: iv_ruleXTypeLiteral= ruleXTypeLiteral EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXTypeLiteralRule());
+ }
+ pushFollow(FOLLOW_ruleXTypeLiteral_in_entryRuleXTypeLiteral13054);
+ iv_ruleXTypeLiteral=ruleXTypeLiteral();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXTypeLiteral;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXTypeLiteral13064); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXTypeLiteral"
+
+
+ // $ANTLR start "ruleXTypeLiteral"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5581:1: ruleXTypeLiteral returns [EObject current=null] : ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) ;
+ public final EObject ruleXTypeLiteral() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+ Token otherlv_5=null;
+ AntlrDatatypeRuleToken lv_arrayDimensions_4_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5584:28: ( ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5585:1: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5585:1: ( () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5585:2: () otherlv_1= 'typeof' otherlv_2= '(' ( ( ruleQualifiedName ) ) ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )* otherlv_5= ')'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5585:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5586:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,93,FOLLOW_93_in_ruleXTypeLiteral13110); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1());
+
+ }
+ otherlv_2=(Token)match(input,68,FOLLOW_68_in_ruleXTypeLiteral13122); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5599:1: ( ( ruleQualifiedName ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5600:1: ( ruleQualifiedName )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5600:1: ( ruleQualifiedName )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5601:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXTypeLiteralRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0());
+
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_ruleXTypeLiteral13145);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5614:2: ( (lv_arrayDimensions_4_0= ruleArrayBrackets ) )*
+ loop93:
+ do {
+ int alt93=2;
+ int LA93_0 = input.LA(1);
+
+ if ( (LA93_0==71) ) {
+ alt93=1;
+ }
+
+
+ switch (alt93) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5615:1: (lv_arrayDimensions_4_0= ruleArrayBrackets )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5615:1: (lv_arrayDimensions_4_0= ruleArrayBrackets )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5616:3: lv_arrayDimensions_4_0= ruleArrayBrackets
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0());
+
+ }
+ pushFollow(FOLLOW_ruleArrayBrackets_in_ruleXTypeLiteral13166);
+ lv_arrayDimensions_4_0=ruleArrayBrackets();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXTypeLiteralRule());
+ }
+ add(
+ current,
+ "arrayDimensions",
+ lv_arrayDimensions_4_0,
+ "ArrayBrackets");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop93;
+ }
+ } while (true);
+
+ otherlv_5=(Token)match(input,69,FOLLOW_69_in_ruleXTypeLiteral13179); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXTypeLiteral"
+
+
+ // $ANTLR start "entryRuleXThrowExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5644:1: entryRuleXThrowExpression returns [EObject current=null] : iv_ruleXThrowExpression= ruleXThrowExpression EOF ;
+ public final EObject entryRuleXThrowExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXThrowExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5645:2: (iv_ruleXThrowExpression= ruleXThrowExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5646:2: iv_ruleXThrowExpression= ruleXThrowExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXThrowExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXThrowExpression_in_entryRuleXThrowExpression13215);
+ iv_ruleXThrowExpression=ruleXThrowExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXThrowExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXThrowExpression13225); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXThrowExpression"
+
+
+ // $ANTLR start "ruleXThrowExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5653:1: ruleXThrowExpression returns [EObject current=null] : ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) ;
+ public final EObject ruleXThrowExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_expression_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5656:28: ( ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5657:1: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5657:1: ( () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5657:2: () otherlv_1= 'throw' ( (lv_expression_2_0= ruleXExpression ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5657:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5658:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,94,FOLLOW_94_in_ruleXThrowExpression13271); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5667:1: ( (lv_expression_2_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5668:1: (lv_expression_2_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5668:1: (lv_expression_2_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5669:3: lv_expression_2_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXThrowExpression13292);
+ lv_expression_2_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXThrowExpressionRule());
+ }
+ set(
+ current,
+ "expression",
+ lv_expression_2_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXThrowExpression"
+
+
+ // $ANTLR start "entryRuleXReturnExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5693:1: entryRuleXReturnExpression returns [EObject current=null] : iv_ruleXReturnExpression= ruleXReturnExpression EOF ;
+ public final EObject entryRuleXReturnExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXReturnExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5694:2: (iv_ruleXReturnExpression= ruleXReturnExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5695:2: iv_ruleXReturnExpression= ruleXReturnExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXReturnExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXReturnExpression_in_entryRuleXReturnExpression13328);
+ iv_ruleXReturnExpression=ruleXReturnExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXReturnExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXReturnExpression13338); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXReturnExpression"
+
+
+ // $ANTLR start "ruleXReturnExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5702:1: ruleXReturnExpression returns [EObject current=null] : ( () otherlv_1= 'return' ( ( ( ruleXExpression ) )=> (lv_expression_2_0= ruleXExpression ) )? ) ;
+ public final EObject ruleXReturnExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_expression_2_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5705:28: ( ( () otherlv_1= 'return' ( ( ( ruleXExpression ) )=> (lv_expression_2_0= ruleXExpression ) )? ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5706:1: ( () otherlv_1= 'return' ( ( ( ruleXExpression ) )=> (lv_expression_2_0= ruleXExpression ) )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5706:1: ( () otherlv_1= 'return' ( ( ( ruleXExpression ) )=> (lv_expression_2_0= ruleXExpression ) )? )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5706:2: () otherlv_1= 'return' ( ( ( ruleXExpression ) )=> (lv_expression_2_0= ruleXExpression ) )?
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5706:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5707:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,95,FOLLOW_95_in_ruleXReturnExpression13384); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5716:1: ( ( ( ruleXExpression ) )=> (lv_expression_2_0= ruleXExpression ) )?
+ int alt94=2;
+ alt94 = dfa94.predict(input);
+ switch (alt94) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5716:2: ( ( ruleXExpression ) )=> (lv_expression_2_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5721:1: (lv_expression_2_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5722:3: lv_expression_2_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXReturnExpression13415);
+ lv_expression_2_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXReturnExpressionRule());
+ }
+ set(
+ current,
+ "expression",
+ lv_expression_2_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXReturnExpression"
+
+
+ // $ANTLR start "entryRuleXTryCatchFinallyExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5746:1: entryRuleXTryCatchFinallyExpression returns [EObject current=null] : iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF ;
+ public final EObject entryRuleXTryCatchFinallyExpression() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXTryCatchFinallyExpression = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5747:2: (iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5748:2: iv_ruleXTryCatchFinallyExpression= ruleXTryCatchFinallyExpression EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionRule());
+ }
+ pushFollow(FOLLOW_ruleXTryCatchFinallyExpression_in_entryRuleXTryCatchFinallyExpression13452);
+ iv_ruleXTryCatchFinallyExpression=ruleXTryCatchFinallyExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXTryCatchFinallyExpression;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXTryCatchFinallyExpression13462); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXTryCatchFinallyExpression"
+
+
+ // $ANTLR start "ruleXTryCatchFinallyExpression"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5755:1: ruleXTryCatchFinallyExpression returns [EObject current=null] : ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) ;
+ public final EObject ruleXTryCatchFinallyExpression() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_4=null;
+ Token otherlv_6=null;
+ EObject lv_expression_2_0 = null;
+
+ EObject lv_catchClauses_3_0 = null;
+
+ EObject lv_finallyExpression_5_0 = null;
+
+ EObject lv_finallyExpression_7_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5758:28: ( ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5759:1: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5759:1: ( () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5759:2: () otherlv_1= 'try' ( (lv_expression_2_0= ruleXExpression ) ) ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5759:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5760:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,96,FOLLOW_96_in_ruleXTryCatchFinallyExpression13508); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5769:1: ( (lv_expression_2_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5770:1: (lv_expression_2_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5770:1: (lv_expression_2_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5771:3: lv_expression_2_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXTryCatchFinallyExpression13529);
+ lv_expression_2_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+ }
+ set(
+ current,
+ "expression",
+ lv_expression_2_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5787:2: ( ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? ) | (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) ) )
+ int alt97=2;
+ int LA97_0 = input.LA(1);
+
+ if ( (LA97_0==98) ) {
+ alt97=1;
+ }
+ else if ( (LA97_0==97) ) {
+ alt97=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 97, 0, input);
+
+ throw nvae;
+ }
+ switch (alt97) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5787:3: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5787:3: ( ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )? )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5787:4: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+ ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5787:4: ( ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause ) )+
+ int cnt95=0;
+ loop95:
+ do {
+ int alt95=2;
+ int LA95_0 = input.LA(1);
+
+ if ( (LA95_0==98) ) {
+ int LA95_2 = input.LA(2);
+
+ if ( (synpred34_InternalEmfParsleyDsl()) ) {
+ alt95=1;
+ }
+
+
+ }
+
+
+ switch (alt95) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5787:5: ( 'catch' )=> (lv_catchClauses_3_0= ruleXCatchClause )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5789:1: (lv_catchClauses_3_0= ruleXCatchClause )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5790:3: lv_catchClauses_3_0= ruleXCatchClause
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleXCatchClause_in_ruleXTryCatchFinallyExpression13559);
+ lv_catchClauses_3_0=ruleXCatchClause();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+ }
+ add(
+ current,
+ "catchClauses",
+ lv_catchClauses_3_0,
+ "XCatchClause");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt95 >= 1 ) break loop95;
+ if (state.backtracking>0) {state.failed=true; return current;}
+ EarlyExitException eee =
+ new EarlyExitException(95, input);
+ throw eee;
+ }
+ cnt95++;
+ } while (true);
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5806:3: ( ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) ) )?
+ int alt96=2;
+ int LA96_0 = input.LA(1);
+
+ if ( (LA96_0==97) ) {
+ int LA96_1 = input.LA(2);
+
+ if ( (synpred35_InternalEmfParsleyDsl()) ) {
+ alt96=1;
+ }
+ }
+ switch (alt96) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5806:4: ( ( 'finally' )=>otherlv_4= 'finally' ) ( (lv_finallyExpression_5_0= ruleXExpression ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5806:4: ( ( 'finally' )=>otherlv_4= 'finally' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5806:5: ( 'finally' )=>otherlv_4= 'finally'
+ {
+ otherlv_4=(Token)match(input,97,FOLLOW_97_in_ruleXTryCatchFinallyExpression13581); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0());
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5811:2: ( (lv_finallyExpression_5_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5812:1: (lv_finallyExpression_5_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5812:1: (lv_finallyExpression_5_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5813:3: lv_finallyExpression_5_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXTryCatchFinallyExpression13603);
+ lv_finallyExpression_5_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+ }
+ set(
+ current,
+ "finallyExpression",
+ lv_finallyExpression_5_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5830:6: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5830:6: (otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5830:8: otherlv_6= 'finally' ( (lv_finallyExpression_7_0= ruleXExpression ) )
+ {
+ otherlv_6=(Token)match(input,97,FOLLOW_97_in_ruleXTryCatchFinallyExpression13625); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_6, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5834:1: ( (lv_finallyExpression_7_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5835:1: (lv_finallyExpression_7_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5835:1: (lv_finallyExpression_7_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5836:3: lv_finallyExpression_7_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXTryCatchFinallyExpression13646);
+ lv_finallyExpression_7_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+ }
+ set(
+ current,
+ "finallyExpression",
+ lv_finallyExpression_7_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXTryCatchFinallyExpression"
+
+
+ // $ANTLR start "entryRuleXCatchClause"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5860:1: entryRuleXCatchClause returns [EObject current=null] : iv_ruleXCatchClause= ruleXCatchClause EOF ;
+ public final EObject entryRuleXCatchClause() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXCatchClause = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5861:2: (iv_ruleXCatchClause= ruleXCatchClause EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5862:2: iv_ruleXCatchClause= ruleXCatchClause EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXCatchClauseRule());
+ }
+ pushFollow(FOLLOW_ruleXCatchClause_in_entryRuleXCatchClause13684);
+ iv_ruleXCatchClause=ruleXCatchClause();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXCatchClause;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXCatchClause13694); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXCatchClause"
+
+
+ // $ANTLR start "ruleXCatchClause"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5869:1: ruleXCatchClause returns [EObject current=null] : ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) ;
+ public final EObject ruleXCatchClause() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ EObject lv_declaredParam_2_0 = null;
+
+ EObject lv_expression_4_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5872:28: ( ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5873:1: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5873:1: ( ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5873:2: ( ( 'catch' )=>otherlv_0= 'catch' ) otherlv_1= '(' ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) ) otherlv_3= ')' ( (lv_expression_4_0= ruleXExpression ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5873:2: ( ( 'catch' )=>otherlv_0= 'catch' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5873:3: ( 'catch' )=>otherlv_0= 'catch'
+ {
+ otherlv_0=(Token)match(input,98,FOLLOW_98_in_ruleXCatchClause13739); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_0, grammarAccess.getXCatchClauseAccess().getCatchKeyword_0());
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,68,FOLLOW_68_in_ruleXCatchClause13752); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5882:1: ( (lv_declaredParam_2_0= ruleFullJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5883:1: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5883:1: (lv_declaredParam_2_0= ruleFullJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5884:3: lv_declaredParam_2_0= ruleFullJvmFormalParameter
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleFullJvmFormalParameter_in_ruleXCatchClause13773);
+ lv_declaredParam_2_0=ruleFullJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXCatchClauseRule());
+ }
+ set(
+ current,
+ "declaredParam",
+ lv_declaredParam_2_0,
+ "FullJvmFormalParameter");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_3=(Token)match(input,69,FOLLOW_69_in_ruleXCatchClause13785); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5904:1: ( (lv_expression_4_0= ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5905:1: (lv_expression_4_0= ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5905:1: (lv_expression_4_0= ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5906:3: lv_expression_4_0= ruleXExpression
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0());
+
+ }
+ pushFollow(FOLLOW_ruleXExpression_in_ruleXCatchClause13806);
+ lv_expression_4_0=ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXCatchClauseRule());
+ }
+ set(
+ current,
+ "expression",
+ lv_expression_4_0,
+ "XExpression");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXCatchClause"
+
+
+ // $ANTLR start "entryRuleQualifiedName"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5930:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
+ public final String entryRuleQualifiedName() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleQualifiedName = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5931:2: (iv_ruleQualifiedName= ruleQualifiedName EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5932:2: iv_ruleQualifiedName= ruleQualifiedName EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getQualifiedNameRule());
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName13843);
+ iv_ruleQualifiedName=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleQualifiedName.getText();
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedName13854); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleQualifiedName"
+
+
+ // $ANTLR start "ruleQualifiedName"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5939:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) ;
+ public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+ AntlrDatatypeRuleToken this_ValidID_0 = null;
+
+ AntlrDatatypeRuleToken this_ValidID_2 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5942:28: ( (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5943:1: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5943:1: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5944:5: this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleValidID_in_ruleQualifiedName13901);
+ this_ValidID_0=ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_ValidID_0);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5954:1: ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
+ loop98:
+ do {
+ int alt98=2;
+ int LA98_0 = input.LA(1);
+
+ if ( (LA98_0==65) ) {
+ int LA98_2 = input.LA(2);
+
+ if ( (LA98_2==RULE_ID) ) {
+ int LA98_3 = input.LA(3);
+
+ if ( (synpred37_InternalEmfParsleyDsl()) ) {
+ alt98=1;
+ }
+
+
+ }
+
+
+ }
+
+
+ switch (alt98) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5954:2: ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5954:2: ( ( '.' )=>kw= '.' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5954:3: ( '.' )=>kw= '.'
+ {
+ kw=(Token)match(input,65,FOLLOW_65_in_ruleQualifiedName13929); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1());
+
+ }
+ pushFollow(FOLLOW_ruleValidID_in_ruleQualifiedName13952);
+ this_ValidID_2=ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_ValidID_2);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ default :
+ break loop98;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleQualifiedName"
+
+
+ // $ANTLR start "entryRuleNumber"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5981:1: entryRuleNumber returns [String current=null] : iv_ruleNumber= ruleNumber EOF ;
+ public final String entryRuleNumber() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleNumber = null;
+
+
+
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5985:2: (iv_ruleNumber= ruleNumber EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5986:2: iv_ruleNumber= ruleNumber EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getNumberRule());
+ }
+ pushFollow(FOLLOW_ruleNumber_in_entryRuleNumber14006);
+ iv_ruleNumber=ruleNumber();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleNumber.getText();
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleNumber14017); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+
+ myHiddenTokenState.restore();
+
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleNumber"
+
+
+ // $ANTLR start "ruleNumber"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5996:1: ruleNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) ;
+ public final AntlrDatatypeRuleToken ruleNumber() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token this_HEX_0=null;
+ Token this_INT_1=null;
+ Token this_DECIMAL_2=null;
+ Token kw=null;
+ Token this_INT_4=null;
+ Token this_DECIMAL_5=null;
+
+ enterRule();
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6000:28: ( (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6001:1: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6001:1: (this_HEX_0= RULE_HEX | ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? ) )
+ int alt102=2;
+ int LA102_0 = input.LA(1);
+
+ if ( (LA102_0==RULE_HEX) ) {
+ alt102=1;
+ }
+ else if ( ((LA102_0>=RULE_INT && LA102_0<=RULE_DECIMAL)) ) {
+ alt102=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 102, 0, input);
+
+ throw nvae;
+ }
+ switch (alt102) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6001:6: this_HEX_0= RULE_HEX
+ {
+ this_HEX_0=(Token)match(input,RULE_HEX,FOLLOW_RULE_HEX_in_ruleNumber14061); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_HEX_0);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(this_HEX_0, grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6009:6: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6009:6: ( (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )? )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6009:7: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL ) (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6009:7: (this_INT_1= RULE_INT | this_DECIMAL_2= RULE_DECIMAL )
+ int alt99=2;
+ int LA99_0 = input.LA(1);
+
+ if ( (LA99_0==RULE_INT) ) {
+ alt99=1;
+ }
+ else if ( (LA99_0==RULE_DECIMAL) ) {
+ alt99=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 99, 0, input);
+
+ throw nvae;
+ }
+ switch (alt99) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6009:12: this_INT_1= RULE_INT
+ {
+ this_INT_1=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleNumber14089); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_INT_1);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(this_INT_1, grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6017:10: this_DECIMAL_2= RULE_DECIMAL
+ {
+ this_DECIMAL_2=(Token)match(input,RULE_DECIMAL,FOLLOW_RULE_DECIMAL_in_ruleNumber14115); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_DECIMAL_2);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(this_DECIMAL_2, grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6024:2: (kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL ) )?
+ int alt101=2;
+ int LA101_0 = input.LA(1);
+
+ if ( (LA101_0==65) ) {
+ int LA101_1 = input.LA(2);
+
+ if ( ((LA101_1>=RULE_INT && LA101_1<=RULE_DECIMAL)) ) {
+ alt101=1;
+ }
+ }
+ switch (alt101) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6025:2: kw= '.' (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
+ {
+ kw=(Token)match(input,65,FOLLOW_65_in_ruleNumber14135); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6030:1: (this_INT_4= RULE_INT | this_DECIMAL_5= RULE_DECIMAL )
+ int alt100=2;
+ int LA100_0 = input.LA(1);
+
+ if ( (LA100_0==RULE_INT) ) {
+ alt100=1;
+ }
+ else if ( (LA100_0==RULE_DECIMAL) ) {
+ alt100=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 100, 0, input);
+
+ throw nvae;
+ }
+ switch (alt100) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6030:6: this_INT_4= RULE_INT
+ {
+ this_INT_4=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleNumber14151); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_INT_4);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(this_INT_4, grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0());
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6038:10: this_DECIMAL_5= RULE_DECIMAL
+ {
+ this_DECIMAL_5=(Token)match(input,RULE_DECIMAL,FOLLOW_RULE_DECIMAL_in_ruleNumber14177); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_DECIMAL_5);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(this_DECIMAL_5, grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+
+ myHiddenTokenState.restore();
+
+ }
+ return current;
+ }
+ // $ANTLR end "ruleNumber"
+
+
+ // $ANTLR start "entryRuleJvmTypeReference"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6058:1: entryRuleJvmTypeReference returns [EObject current=null] : iv_ruleJvmTypeReference= ruleJvmTypeReference EOF ;
+ public final EObject entryRuleJvmTypeReference() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleJvmTypeReference = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6059:2: (iv_ruleJvmTypeReference= ruleJvmTypeReference EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6060:2: iv_ruleJvmTypeReference= ruleJvmTypeReference EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getJvmTypeReferenceRule());
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_entryRuleJvmTypeReference14232);
+ iv_ruleJvmTypeReference=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleJvmTypeReference;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleJvmTypeReference14242); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleJvmTypeReference"
+
+
+ // $ANTLR start "ruleJvmTypeReference"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6067:1: ruleJvmTypeReference returns [EObject current=null] : ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) ;
+ public final EObject ruleJvmTypeReference() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_JvmParameterizedTypeReference_0 = null;
+
+ EObject this_XFunctionTypeRef_3 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6070:28: ( ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6071:1: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6071:1: ( (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* ) | this_XFunctionTypeRef_3= ruleXFunctionTypeRef )
+ int alt104=2;
+ int LA104_0 = input.LA(1);
+
+ if ( (LA104_0==RULE_ID) ) {
+ alt104=1;
+ }
+ else if ( (LA104_0==53||LA104_0==68) ) {
+ alt104=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 104, 0, input);
+
+ throw nvae;
+ }
+ switch (alt104) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6071:2: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6071:2: (this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )* )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6072:5: this_JvmParameterizedTypeReference_0= ruleJvmParameterizedTypeReference ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmParameterizedTypeReference_in_ruleJvmTypeReference14290);
+ this_JvmParameterizedTypeReference_0=ruleJvmParameterizedTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_JvmParameterizedTypeReference_0;
+ afterParserOrEnumRuleCall();
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6080:1: ( ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets ) )*
+ loop103:
+ do {
+ int alt103=2;
+ int LA103_0 = input.LA(1);
+
+ if ( (LA103_0==71) ) {
+ int LA103_2 = input.LA(2);
+
+ if ( (LA103_2==72) ) {
+ int LA103_3 = input.LA(3);
+
+ if ( (synpred38_InternalEmfParsleyDsl()) ) {
+ alt103=1;
+ }
+
+
+ }
+
+
+ }
+
+
+ switch (alt103) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6080:2: ( ( () ruleArrayBrackets ) )=> ( () ruleArrayBrackets )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6081:24: ( () ruleArrayBrackets )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6081:25: () ruleArrayBrackets
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6081:25: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6082:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElementAndSet(
+ grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0(),
+ current);
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1());
+
+ }
+ pushFollow(FOLLOW_ruleArrayBrackets_in_ruleJvmTypeReference14326);
+ ruleArrayBrackets();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop103;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6097:5: this_XFunctionTypeRef_3= ruleXFunctionTypeRef
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_ruleXFunctionTypeRef_in_ruleJvmTypeReference14357);
+ this_XFunctionTypeRef_3=ruleXFunctionTypeRef();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_XFunctionTypeRef_3;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleJvmTypeReference"
+
+
+ // $ANTLR start "entryRuleArrayBrackets"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6113:1: entryRuleArrayBrackets returns [String current=null] : iv_ruleArrayBrackets= ruleArrayBrackets EOF ;
+ public final String entryRuleArrayBrackets() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleArrayBrackets = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6114:2: (iv_ruleArrayBrackets= ruleArrayBrackets EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6115:2: iv_ruleArrayBrackets= ruleArrayBrackets EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getArrayBracketsRule());
+ }
+ pushFollow(FOLLOW_ruleArrayBrackets_in_entryRuleArrayBrackets14393);
+ iv_ruleArrayBrackets=ruleArrayBrackets();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleArrayBrackets.getText();
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleArrayBrackets14404); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleArrayBrackets"
+
+
+ // $ANTLR start "ruleArrayBrackets"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6122:1: ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '[' kw= ']' ) ;
+ public final AntlrDatatypeRuleToken ruleArrayBrackets() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6125:28: ( (kw= '[' kw= ']' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6126:1: (kw= '[' kw= ']' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6126:1: (kw= '[' kw= ']' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6127:2: kw= '[' kw= ']'
+ {
+ kw=(Token)match(input,71,FOLLOW_71_in_ruleArrayBrackets14442); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0());
+
+ }
+ kw=(Token)match(input,72,FOLLOW_72_in_ruleArrayBrackets14455); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleArrayBrackets"
+
+
+ // $ANTLR start "entryRuleXFunctionTypeRef"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6146:1: entryRuleXFunctionTypeRef returns [EObject current=null] : iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF ;
+ public final EObject entryRuleXFunctionTypeRef() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXFunctionTypeRef = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6147:2: (iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6148:2: iv_ruleXFunctionTypeRef= ruleXFunctionTypeRef EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXFunctionTypeRefRule());
+ }
+ pushFollow(FOLLOW_ruleXFunctionTypeRef_in_entryRuleXFunctionTypeRef14495);
+ iv_ruleXFunctionTypeRef=ruleXFunctionTypeRef();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXFunctionTypeRef;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXFunctionTypeRef14505); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXFunctionTypeRef"
+
+
+ // $ANTLR start "ruleXFunctionTypeRef"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6155:1: ruleXFunctionTypeRef returns [EObject current=null] : ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) ;
+ public final EObject ruleXFunctionTypeRef() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_2=null;
+ Token otherlv_4=null;
+ Token otherlv_5=null;
+ EObject lv_paramTypes_1_0 = null;
+
+ EObject lv_paramTypes_3_0 = null;
+
+ EObject lv_returnType_6_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6158:28: ( ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6159:1: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6159:1: ( (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6159:2: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )? otherlv_5= '=>' ( (lv_returnType_6_0= ruleJvmTypeReference ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6159:2: (otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')' )?
+ int alt107=2;
+ int LA107_0 = input.LA(1);
+
+ if ( (LA107_0==68) ) {
+ alt107=1;
+ }
+ switch (alt107) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6159:4: otherlv_0= '(' ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )? otherlv_4= ')'
+ {
+ otherlv_0=(Token)match(input,68,FOLLOW_68_in_ruleXFunctionTypeRef14543); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_0, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6163:1: ( ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )* )?
+ int alt106=2;
+ int LA106_0 = input.LA(1);
+
+ if ( (LA106_0==RULE_ID||LA106_0==53||LA106_0==68) ) {
+ alt106=1;
+ }
+ switch (alt106) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6163:2: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) ) (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6163:2: ( (lv_paramTypes_1_0= ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6164:1: (lv_paramTypes_1_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6164:1: (lv_paramTypes_1_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6165:3: lv_paramTypes_1_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleXFunctionTypeRef14565);
+ lv_paramTypes_1_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule());
+ }
+ add(
+ current,
+ "paramTypes",
+ lv_paramTypes_1_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6181:2: (otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) ) )*
+ loop105:
+ do {
+ int alt105=2;
+ int LA105_0 = input.LA(1);
+
+ if ( (LA105_0==26) ) {
+ alt105=1;
+ }
+
+
+ switch (alt105) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6181:4: otherlv_2= ',' ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
+ {
+ otherlv_2=(Token)match(input,26,FOLLOW_26_in_ruleXFunctionTypeRef14578); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_2, grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6185:1: ( (lv_paramTypes_3_0= ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6186:1: (lv_paramTypes_3_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6186:1: (lv_paramTypes_3_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6187:3: lv_paramTypes_3_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleXFunctionTypeRef14599);
+ lv_paramTypes_3_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule());
+ }
+ add(
+ current,
+ "paramTypes",
+ lv_paramTypes_3_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop105;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ otherlv_4=(Token)match(input,69,FOLLOW_69_in_ruleXFunctionTypeRef14615); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2());
+
+ }
+
+ }
+ break;
+
+ }
+
+ otherlv_5=(Token)match(input,53,FOLLOW_53_in_ruleXFunctionTypeRef14629); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6211:1: ( (lv_returnType_6_0= ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6212:1: (lv_returnType_6_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6212:1: (lv_returnType_6_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6213:3: lv_returnType_6_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleXFunctionTypeRef14650);
+ lv_returnType_6_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule());
+ }
+ set(
+ current,
+ "returnType",
+ lv_returnType_6_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXFunctionTypeRef"
+
+
+ // $ANTLR start "entryRuleJvmParameterizedTypeReference"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6237:1: entryRuleJvmParameterizedTypeReference returns [EObject current=null] : iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF ;
+ public final EObject entryRuleJvmParameterizedTypeReference() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleJvmParameterizedTypeReference = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6238:2: (iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6239:2: iv_ruleJvmParameterizedTypeReference= ruleJvmParameterizedTypeReference EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceRule());
+ }
+ pushFollow(FOLLOW_ruleJvmParameterizedTypeReference_in_entryRuleJvmParameterizedTypeReference14686);
+ iv_ruleJvmParameterizedTypeReference=ruleJvmParameterizedTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleJvmParameterizedTypeReference;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleJvmParameterizedTypeReference14696); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleJvmParameterizedTypeReference"
+
+
+ // $ANTLR start "ruleJvmParameterizedTypeReference"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6246:1: ruleJvmParameterizedTypeReference returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ) ;
+ public final EObject ruleJvmParameterizedTypeReference() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_5=null;
+ EObject lv_arguments_2_0 = null;
+
+ EObject lv_arguments_4_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6249:28: ( ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6250:1: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6250:1: ( ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )? )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6250:2: ( ( ruleQualifiedName ) ) ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )?
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6250:2: ( ( ruleQualifiedName ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6251:1: ( ruleQualifiedName )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6251:1: ( ruleQualifiedName )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6252:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getJvmParameterizedTypeReferenceRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_ruleJvmParameterizedTypeReference14744);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6265:2: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )?
+ int alt109=2;
+ alt109 = dfa109.predict(input);
+ switch (alt109) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6265:3: ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6265:3: ( ( '<' )=>otherlv_1= '<' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6265:4: ( '<' )=>otherlv_1= '<'
+ {
+ otherlv_1=(Token)match(input,50,FOLLOW_50_in_ruleJvmParameterizedTypeReference14765); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0());
+
+ }
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6270:2: ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6271:1: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6271:1: (lv_arguments_2_0= ruleJvmArgumentTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6272:3: lv_arguments_2_0= ruleJvmArgumentTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_ruleJvmParameterizedTypeReference14787);
+ lv_arguments_2_0=ruleJvmArgumentTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+ }
+ add(
+ current,
+ "arguments",
+ lv_arguments_2_0,
+ "JvmArgumentTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6288:2: (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )*
+ loop108:
+ do {
+ int alt108=2;
+ int LA108_0 = input.LA(1);
+
+ if ( (LA108_0==26) ) {
+ alt108=1;
+ }
+
+
+ switch (alt108) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6288:4: otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
+ {
+ otherlv_3=(Token)match(input,26,FOLLOW_26_in_ruleJvmParameterizedTypeReference14800); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_3, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6292:1: ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6293:1: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6293:1: (lv_arguments_4_0= ruleJvmArgumentTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6294:3: lv_arguments_4_0= ruleJvmArgumentTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_ruleJvmParameterizedTypeReference14821);
+ lv_arguments_4_0=ruleJvmArgumentTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+ }
+ add(
+ current,
+ "arguments",
+ lv_arguments_4_0,
+ "JvmArgumentTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop108;
+ }
+ } while (true);
+
+ otherlv_5=(Token)match(input,49,FOLLOW_49_in_ruleJvmParameterizedTypeReference14835); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleJvmParameterizedTypeReference"
+
+
+ // $ANTLR start "entryRuleJvmArgumentTypeReference"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6322:1: entryRuleJvmArgumentTypeReference returns [EObject current=null] : iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF ;
+ public final EObject entryRuleJvmArgumentTypeReference() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleJvmArgumentTypeReference = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6323:2: (iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6324:2: iv_ruleJvmArgumentTypeReference= ruleJvmArgumentTypeReference EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceRule());
+ }
+ pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_entryRuleJvmArgumentTypeReference14873);
+ iv_ruleJvmArgumentTypeReference=ruleJvmArgumentTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleJvmArgumentTypeReference;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleJvmArgumentTypeReference14883); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleJvmArgumentTypeReference"
+
+
+ // $ANTLR start "ruleJvmArgumentTypeReference"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6331:1: ruleJvmArgumentTypeReference returns [EObject current=null] : (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) ;
+ public final EObject ruleJvmArgumentTypeReference() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_JvmTypeReference_0 = null;
+
+ EObject this_JvmWildcardTypeReference_1 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6334:28: ( (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6335:1: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6335:1: (this_JvmTypeReference_0= ruleJvmTypeReference | this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference )
+ int alt110=2;
+ int LA110_0 = input.LA(1);
+
+ if ( (LA110_0==RULE_ID||LA110_0==53||LA110_0==68) ) {
+ alt110=1;
+ }
+ else if ( (LA110_0==99) ) {
+ alt110=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return current;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 110, 0, input);
+
+ throw nvae;
+ }
+ switch (alt110) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6336:5: this_JvmTypeReference_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleJvmArgumentTypeReference14930);
+ this_JvmTypeReference_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_JvmTypeReference_0;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6346:5: this_JvmWildcardTypeReference_1= ruleJvmWildcardTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1());
+
+ }
+ pushFollow(FOLLOW_ruleJvmWildcardTypeReference_in_ruleJvmArgumentTypeReference14957);
+ this_JvmWildcardTypeReference_1=ruleJvmWildcardTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current = this_JvmWildcardTypeReference_1;
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleJvmArgumentTypeReference"
+
+
+ // $ANTLR start "entryRuleJvmWildcardTypeReference"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6362:1: entryRuleJvmWildcardTypeReference returns [EObject current=null] : iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF ;
+ public final EObject entryRuleJvmWildcardTypeReference() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleJvmWildcardTypeReference = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6363:2: (iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6364:2: iv_ruleJvmWildcardTypeReference= ruleJvmWildcardTypeReference EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceRule());
+ }
+ pushFollow(FOLLOW_ruleJvmWildcardTypeReference_in_entryRuleJvmWildcardTypeReference14992);
+ iv_ruleJvmWildcardTypeReference=ruleJvmWildcardTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleJvmWildcardTypeReference;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleJvmWildcardTypeReference15002); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleJvmWildcardTypeReference"
+
+
+ // $ANTLR start "ruleJvmWildcardTypeReference"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6371:1: ruleJvmWildcardTypeReference returns [EObject current=null] : ( () otherlv_1= '?' ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) | ( (lv_constraints_3_0= ruleJvmLowerBound ) ) )? ) ;
+ public final EObject ruleJvmWildcardTypeReference() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ EObject lv_constraints_2_0 = null;
+
+ EObject lv_constraints_3_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6374:28: ( ( () otherlv_1= '?' ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) | ( (lv_constraints_3_0= ruleJvmLowerBound ) ) )? ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6375:1: ( () otherlv_1= '?' ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) | ( (lv_constraints_3_0= ruleJvmLowerBound ) ) )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6375:1: ( () otherlv_1= '?' ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) | ( (lv_constraints_3_0= ruleJvmLowerBound ) ) )? )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6375:2: () otherlv_1= '?' ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) | ( (lv_constraints_3_0= ruleJvmLowerBound ) ) )?
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6375:2: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6376:5:
+ {
+ if ( state.backtracking==0 ) {
+
+ current = forceCreateModelElement(
+ grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0(),
+ current);
+
+ }
+
+ }
+
+ otherlv_1=(Token)match(input,99,FOLLOW_99_in_ruleJvmWildcardTypeReference15048); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_1, grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6385:1: ( ( (lv_constraints_2_0= ruleJvmUpperBound ) ) | ( (lv_constraints_3_0= ruleJvmLowerBound ) ) )?
+ int alt111=3;
+ int LA111_0 = input.LA(1);
+
+ if ( (LA111_0==17) ) {
+ alt111=1;
+ }
+ else if ( (LA111_0==88) ) {
+ alt111=2;
+ }
+ switch (alt111) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6385:2: ( (lv_constraints_2_0= ruleJvmUpperBound ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6385:2: ( (lv_constraints_2_0= ruleJvmUpperBound ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6386:1: (lv_constraints_2_0= ruleJvmUpperBound )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6386:1: (lv_constraints_2_0= ruleJvmUpperBound )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6387:3: lv_constraints_2_0= ruleJvmUpperBound
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmUpperBound_in_ruleJvmWildcardTypeReference15070);
+ lv_constraints_2_0=ruleJvmUpperBound();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+ }
+ add(
+ current,
+ "constraints",
+ lv_constraints_2_0,
+ "JvmUpperBound");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6404:6: ( (lv_constraints_3_0= ruleJvmLowerBound ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6404:6: ( (lv_constraints_3_0= ruleJvmLowerBound ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6405:1: (lv_constraints_3_0= ruleJvmLowerBound )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6405:1: (lv_constraints_3_0= ruleJvmLowerBound )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6406:3: lv_constraints_3_0= ruleJvmLowerBound
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmLowerBound_in_ruleJvmWildcardTypeReference15097);
+ lv_constraints_3_0=ruleJvmLowerBound();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+ }
+ add(
+ current,
+ "constraints",
+ lv_constraints_3_0,
+ "JvmLowerBound");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleJvmWildcardTypeReference"
+
+
+ // $ANTLR start "entryRuleJvmUpperBound"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6430:1: entryRuleJvmUpperBound returns [EObject current=null] : iv_ruleJvmUpperBound= ruleJvmUpperBound EOF ;
+ public final EObject entryRuleJvmUpperBound() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleJvmUpperBound = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6431:2: (iv_ruleJvmUpperBound= ruleJvmUpperBound EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6432:2: iv_ruleJvmUpperBound= ruleJvmUpperBound EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getJvmUpperBoundRule());
+ }
+ pushFollow(FOLLOW_ruleJvmUpperBound_in_entryRuleJvmUpperBound15135);
+ iv_ruleJvmUpperBound=ruleJvmUpperBound();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleJvmUpperBound;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleJvmUpperBound15145); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleJvmUpperBound"
+
+
+ // $ANTLR start "ruleJvmUpperBound"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6439:1: ruleJvmUpperBound returns [EObject current=null] : (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+ public final EObject ruleJvmUpperBound() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ EObject lv_typeReference_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6442:28: ( (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6443:1: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6443:1: (otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6443:3: otherlv_0= 'extends' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+ {
+ otherlv_0=(Token)match(input,17,FOLLOW_17_in_ruleJvmUpperBound15182); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6447:1: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6448:1: (lv_typeReference_1_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6448:1: (lv_typeReference_1_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6449:3: lv_typeReference_1_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleJvmUpperBound15203);
+ lv_typeReference_1_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getJvmUpperBoundRule());
+ }
+ set(
+ current,
+ "typeReference",
+ lv_typeReference_1_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleJvmUpperBound"
+
+
+ // $ANTLR start "entryRuleJvmUpperBoundAnded"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6473:1: entryRuleJvmUpperBoundAnded returns [EObject current=null] : iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF ;
+ public final EObject entryRuleJvmUpperBoundAnded() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleJvmUpperBoundAnded = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6474:2: (iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6475:2: iv_ruleJvmUpperBoundAnded= ruleJvmUpperBoundAnded EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getJvmUpperBoundAndedRule());
+ }
+ pushFollow(FOLLOW_ruleJvmUpperBoundAnded_in_entryRuleJvmUpperBoundAnded15239);
+ iv_ruleJvmUpperBoundAnded=ruleJvmUpperBoundAnded();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleJvmUpperBoundAnded;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleJvmUpperBoundAnded15249); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleJvmUpperBoundAnded"
+
+
+ // $ANTLR start "ruleJvmUpperBoundAnded"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6482:1: ruleJvmUpperBoundAnded returns [EObject current=null] : (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+ public final EObject ruleJvmUpperBoundAnded() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ EObject lv_typeReference_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6485:28: ( (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6486:1: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6486:1: (otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6486:3: otherlv_0= '&' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+ {
+ otherlv_0=(Token)match(input,100,FOLLOW_100_in_ruleJvmUpperBoundAnded15286); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6490:1: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6491:1: (lv_typeReference_1_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6491:1: (lv_typeReference_1_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6492:3: lv_typeReference_1_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleJvmUpperBoundAnded15307);
+ lv_typeReference_1_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getJvmUpperBoundAndedRule());
+ }
+ set(
+ current,
+ "typeReference",
+ lv_typeReference_1_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleJvmUpperBoundAnded"
+
+
+ // $ANTLR start "entryRuleJvmLowerBound"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6516:1: entryRuleJvmLowerBound returns [EObject current=null] : iv_ruleJvmLowerBound= ruleJvmLowerBound EOF ;
+ public final EObject entryRuleJvmLowerBound() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleJvmLowerBound = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6517:2: (iv_ruleJvmLowerBound= ruleJvmLowerBound EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6518:2: iv_ruleJvmLowerBound= ruleJvmLowerBound EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getJvmLowerBoundRule());
+ }
+ pushFollow(FOLLOW_ruleJvmLowerBound_in_entryRuleJvmLowerBound15343);
+ iv_ruleJvmLowerBound=ruleJvmLowerBound();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleJvmLowerBound;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleJvmLowerBound15353); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleJvmLowerBound"
+
+
+ // $ANTLR start "ruleJvmLowerBound"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6525:1: ruleJvmLowerBound returns [EObject current=null] : (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) ;
+ public final EObject ruleJvmLowerBound() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ EObject lv_typeReference_1_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6528:28: ( (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6529:1: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6529:1: (otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6529:3: otherlv_0= 'super' ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+ {
+ otherlv_0=(Token)match(input,88,FOLLOW_88_in_ruleJvmLowerBound15390); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6533:1: ( (lv_typeReference_1_0= ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6534:1: (lv_typeReference_1_0= ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6534:1: (lv_typeReference_1_0= ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6535:3: lv_typeReference_1_0= ruleJvmTypeReference
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleJvmLowerBound15411);
+ lv_typeReference_1_0=ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getJvmLowerBoundRule());
+ }
+ set(
+ current,
+ "typeReference",
+ lv_typeReference_1_0,
+ "JvmTypeReference");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleJvmLowerBound"
+
+
+ // $ANTLR start "entryRuleQualifiedNameWithWildcard"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6561:1: entryRuleQualifiedNameWithWildcard returns [String current=null] : iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF ;
+ public final String entryRuleQualifiedNameWithWildcard() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleQualifiedNameWithWildcard = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6562:2: (iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6563:2: iv_ruleQualifiedNameWithWildcard= ruleQualifiedNameWithWildcard EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule());
+ }
+ pushFollow(FOLLOW_ruleQualifiedNameWithWildcard_in_entryRuleQualifiedNameWithWildcard15450);
+ iv_ruleQualifiedNameWithWildcard=ruleQualifiedNameWithWildcard();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleQualifiedNameWithWildcard.getText();
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedNameWithWildcard15461); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleQualifiedNameWithWildcard"
+
+
+ // $ANTLR start "ruleQualifiedNameWithWildcard"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6570:1: ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) ;
+ public final AntlrDatatypeRuleToken ruleQualifiedNameWithWildcard() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token kw=null;
+ AntlrDatatypeRuleToken this_QualifiedName_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6573:28: ( (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6574:1: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6574:1: (this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6575:5: this_QualifiedName_0= ruleQualifiedName kw= '.' kw= '*'
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_ruleQualifiedNameWithWildcard15508);
+ this_QualifiedName_0=ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_QualifiedName_0);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+ kw=(Token)match(input,65,FOLLOW_65_in_ruleQualifiedNameWithWildcard15526); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1());
+
+ }
+ kw=(Token)match(input,59,FOLLOW_59_in_ruleQualifiedNameWithWildcard15539); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(kw);
+ newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2());
+
+ }
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleQualifiedNameWithWildcard"
+
+
+ // $ANTLR start "entryRuleValidID"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6605:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ;
+ public final String entryRuleValidID() throws RecognitionException {
+ String current = null;
+
+ AntlrDatatypeRuleToken iv_ruleValidID = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6606:2: (iv_ruleValidID= ruleValidID EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6607:2: iv_ruleValidID= ruleValidID EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getValidIDRule());
+ }
+ pushFollow(FOLLOW_ruleValidID_in_entryRuleValidID15580);
+ iv_ruleValidID=ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleValidID.getText();
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleValidID15591); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleValidID"
+
+
+ // $ANTLR start "ruleValidID"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6614:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
+ public final AntlrDatatypeRuleToken ruleValidID() throws RecognitionException {
+ AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+ Token this_ID_0=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6617:28: (this_ID_0= RULE_ID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6618:5: this_ID_0= RULE_ID
+ {
+ this_ID_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleValidID15630); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ current.merge(this_ID_0);
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(this_ID_0, grammarAccess.getValidIDAccess().getIDTerminalRuleCall());
+
+ }
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleValidID"
+
+
+ // $ANTLR start "entryRuleXImportSection"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6633:1: entryRuleXImportSection returns [EObject current=null] : iv_ruleXImportSection= ruleXImportSection EOF ;
+ public final EObject entryRuleXImportSection() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXImportSection = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6634:2: (iv_ruleXImportSection= ruleXImportSection EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6635:2: iv_ruleXImportSection= ruleXImportSection EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXImportSectionRule());
+ }
+ pushFollow(FOLLOW_ruleXImportSection_in_entryRuleXImportSection15674);
+ iv_ruleXImportSection=ruleXImportSection();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXImportSection;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXImportSection15684); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXImportSection"
+
+
+ // $ANTLR start "ruleXImportSection"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6642:1: ruleXImportSection returns [EObject current=null] : ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ ;
+ public final EObject ruleXImportSection() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_importDeclarations_0_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6645:28: ( ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+ )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6646:1: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6646:1: ( (lv_importDeclarations_0_0= ruleXImportDeclaration ) )+
+ int cnt112=0;
+ loop112:
+ do {
+ int alt112=2;
+ int LA112_0 = input.LA(1);
+
+ if ( (LA112_0==86) ) {
+ alt112=1;
+ }
+
+
+ switch (alt112) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6647:1: (lv_importDeclarations_0_0= ruleXImportDeclaration )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6647:1: (lv_importDeclarations_0_0= ruleXImportDeclaration )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6648:3: lv_importDeclarations_0_0= ruleXImportDeclaration
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXImportSectionAccess().getImportDeclarationsXImportDeclarationParserRuleCall_0());
+
+ }
+ pushFollow(FOLLOW_ruleXImportDeclaration_in_ruleXImportSection15729);
+ lv_importDeclarations_0_0=ruleXImportDeclaration();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXImportSectionRule());
+ }
+ add(
+ current,
+ "importDeclarations",
+ lv_importDeclarations_0_0,
+ "XImportDeclaration");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt112 >= 1 ) break loop112;
+ if (state.backtracking>0) {state.failed=true; return current;}
+ EarlyExitException eee =
+ new EarlyExitException(112, input);
+ throw eee;
+ }
+ cnt112++;
+ } while (true);
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXImportSection"
+
+
+ // $ANTLR start "entryRuleXImportDeclaration"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6672:1: entryRuleXImportDeclaration returns [EObject current=null] : iv_ruleXImportDeclaration= ruleXImportDeclaration EOF ;
+ public final EObject entryRuleXImportDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleXImportDeclaration = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6673:2: (iv_ruleXImportDeclaration= ruleXImportDeclaration EOF )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6674:2: iv_ruleXImportDeclaration= ruleXImportDeclaration EOF
+ {
+ if ( state.backtracking==0 ) {
+ newCompositeNode(grammarAccess.getXImportDeclarationRule());
+ }
+ pushFollow(FOLLOW_ruleXImportDeclaration_in_entryRuleXImportDeclaration15765);
+ iv_ruleXImportDeclaration=ruleXImportDeclaration();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+ current =iv_ruleXImportDeclaration;
+ }
+ match(input,EOF,FOLLOW_EOF_in_entryRuleXImportDeclaration15775); if (state.failed) return current;
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleXImportDeclaration"
+
+
+ // $ANTLR start "ruleXImportDeclaration"
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6681:1: ruleXImportDeclaration returns [EObject current=null] : (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedName ) ) otherlv_4= '.' otherlv_5= '*' ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) ;
+ public final EObject ruleXImportDeclaration() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_static_1_0=null;
+ Token lv_extension_2_0=null;
+ Token otherlv_4=null;
+ Token otherlv_5=null;
+ Token otherlv_8=null;
+ AntlrDatatypeRuleToken lv_importedNamespace_7_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6684:28: ( (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedName ) ) otherlv_4= '.' otherlv_5= '*' ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6685:1: (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedName ) ) otherlv_4= '.' otherlv_5= '*' ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6685:1: (otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedName ) ) otherlv_4= '.' otherlv_5= '*' ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )? )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6685:3: otherlv_0= 'import' ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedName ) ) otherlv_4= '.' otherlv_5= '*' ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) ) (otherlv_8= ';' )?
+ {
+ otherlv_0=(Token)match(input,86,FOLLOW_86_in_ruleXImportDeclaration15812); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_0, grammarAccess.getXImportDeclarationAccess().getImportKeyword_0());
+
+ }
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6689:1: ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedName ) ) otherlv_4= '.' otherlv_5= '*' ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) )
+ int alt114=3;
+ alt114 = dfa114.predict(input);
+ switch (alt114) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6689:2: ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedName ) ) otherlv_4= '.' otherlv_5= '*' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6689:2: ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedName ) ) otherlv_4= '.' otherlv_5= '*' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6689:3: ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedName ) ) otherlv_4= '.' otherlv_5= '*'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6689:3: ( (lv_static_1_0= 'static' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6690:1: (lv_static_1_0= 'static' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6690:1: (lv_static_1_0= 'static' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6691:3: lv_static_1_0= 'static'
+ {
+ lv_static_1_0=(Token)match(input,85,FOLLOW_85_in_ruleXImportDeclaration15832); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_static_1_0, grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXImportDeclarationRule());
+ }
+ setWithLastConsumed(current, "static", true, "static");
+
+ }
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6704:2: ( (lv_extension_2_0= 'extension' ) )?
+ int alt113=2;
+ int LA113_0 = input.LA(1);
+
+ if ( (LA113_0==87) ) {
+ alt113=1;
+ }
+ switch (alt113) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6705:1: (lv_extension_2_0= 'extension' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6705:1: (lv_extension_2_0= 'extension' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6706:3: lv_extension_2_0= 'extension'
+ {
+ lv_extension_2_0=(Token)match(input,87,FOLLOW_87_in_ruleXImportDeclaration15863); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(lv_extension_2_0, grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0());
+
+ }
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXImportDeclarationRule());
+ }
+ setWithLastConsumed(current, "extension", true, "extension");
+
+ }
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6719:3: ( ( ruleQualifiedName ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6720:1: ( ruleQualifiedName )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6720:1: ( ruleQualifiedName )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6721:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXImportDeclarationRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_0_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_ruleXImportDeclaration15900);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+ otherlv_4=(Token)match(input,65,FOLLOW_65_in_ruleXImportDeclaration15912); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_4, grammarAccess.getXImportDeclarationAccess().getFullStopKeyword_1_0_3());
+
+ }
+ otherlv_5=(Token)match(input,59,FOLLOW_59_in_ruleXImportDeclaration15924); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_5, grammarAccess.getXImportDeclarationAccess().getAsteriskKeyword_1_0_4());
+
+ }
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6743:6: ( ( ruleQualifiedName ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6743:6: ( ( ruleQualifiedName ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6744:1: ( ruleQualifiedName )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6744:1: ( ruleQualifiedName )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6745:3: ruleQualifiedName
+ {
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getXImportDeclarationRule());
+ }
+
+ }
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_1_0());
+
+ }
+ pushFollow(FOLLOW_ruleQualifiedName_in_ruleXImportDeclaration15954);
+ ruleQualifiedName();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6759:6: ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6759:6: ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6760:1: (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6760:1: (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6761:3: lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard
+ {
+ if ( state.backtracking==0 ) {
+
+ newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_2_0());
+
+ }
+ pushFollow(FOLLOW_ruleQualifiedNameWithWildcard_in_ruleXImportDeclaration15981);
+ lv_importedNamespace_7_0=ruleQualifiedNameWithWildcard();
+
+ state._fsp--;
+ if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getXImportDeclarationRule());
+ }
+ set(
+ current,
+ "importedNamespace",
+ lv_importedNamespace_7_0,
+ "QualifiedNameWithWildcard");
+ afterParserOrEnumRuleCall();
+
+ }
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6777:3: (otherlv_8= ';' )?
+ int alt115=2;
+ int LA115_0 = input.LA(1);
+
+ if ( (LA115_0==74) ) {
+ alt115=1;
+ }
+ switch (alt115) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6777:5: otherlv_8= ';'
+ {
+ otherlv_8=(Token)match(input,74,FOLLOW_74_in_ruleXImportDeclaration15995); if (state.failed) return current;
+ if ( state.backtracking==0 ) {
+
+ newLeafNode(otherlv_8, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2());
+
+ }
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ if ( state.backtracking==0 ) {
+ leaveRule();
+ }
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleXImportDeclaration"
+
+ // $ANTLR start synpred1_InternalEmfParsleyDsl
+ public final void synpred1_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1611:3: ( ( () ( ( ruleOpMultiAssign ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1611:4: ( () ( ( ruleOpMultiAssign ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1611:4: ( () ( ( ruleOpMultiAssign ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1611:5: () ( ( ruleOpMultiAssign ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1611:5: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1612:1:
+ {
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1612:2: ( ( ruleOpMultiAssign ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1613:1: ( ruleOpMultiAssign )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1613:1: ( ruleOpMultiAssign )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1614:3: ruleOpMultiAssign
+ {
+ pushFollow(FOLLOW_ruleOpMultiAssign_in_synpred1_InternalEmfParsleyDsl3651);
+ ruleOpMultiAssign();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred1_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred2_InternalEmfParsleyDsl
+ public final void synpred2_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1746:3: ( ( () ( ( ruleOpOr ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1746:4: ( () ( ( ruleOpOr ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1746:4: ( () ( ( ruleOpOr ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1746:5: () ( ( ruleOpOr ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1746:5: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1747:1:
+ {
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1747:2: ( ( ruleOpOr ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1748:1: ( ruleOpOr )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1748:1: ( ruleOpOr )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1749:3: ruleOpOr
+ {
+ pushFollow(FOLLOW_ruleOpOr_in_synpred2_InternalEmfParsleyDsl4020);
+ ruleOpOr();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred2_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred3_InternalEmfParsleyDsl
+ public final void synpred3_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1847:3: ( ( () ( ( ruleOpAnd ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1847:4: ( () ( ( ruleOpAnd ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1847:4: ( () ( ( ruleOpAnd ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1847:5: () ( ( ruleOpAnd ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1847:5: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1848:1:
+ {
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1848:2: ( ( ruleOpAnd ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1849:1: ( ruleOpAnd )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1849:1: ( ruleOpAnd )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1850:3: ruleOpAnd
+ {
+ pushFollow(FOLLOW_ruleOpAnd_in_synpred3_InternalEmfParsleyDsl4279);
+ ruleOpAnd();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred3_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred4_InternalEmfParsleyDsl
+ public final void synpred4_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1948:3: ( ( () ( ( ruleOpEquality ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1948:4: ( () ( ( ruleOpEquality ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1948:4: ( () ( ( ruleOpEquality ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1948:5: () ( ( ruleOpEquality ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1948:5: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1949:1:
+ {
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1949:2: ( ( ruleOpEquality ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1950:1: ( ruleOpEquality )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1950:1: ( ruleOpEquality )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:1951:3: ruleOpEquality
+ {
+ pushFollow(FOLLOW_ruleOpEquality_in_synpred4_InternalEmfParsleyDsl4538);
+ ruleOpEquality();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred4_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred5_InternalEmfParsleyDsl
+ public final void synpred5_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2070:4: ( ( () 'instanceof' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2070:5: ( () 'instanceof' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2070:5: ( () 'instanceof' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2070:6: () 'instanceof'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2070:6: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2071:1:
+ {
+ }
+
+ match(input,46,FOLLOW_46_in_synpred5_InternalEmfParsleyDsl4852); if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred5_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred6_InternalEmfParsleyDsl
+ public final void synpred6_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2101:8: ( ( () ( ( ruleOpCompare ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2101:9: ( () ( ( ruleOpCompare ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2101:9: ( () ( ( ruleOpCompare ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2101:10: () ( ( ruleOpCompare ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2101:10: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2102:1:
+ {
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2102:2: ( ( ruleOpCompare ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2103:1: ( ruleOpCompare )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2103:1: ( ruleOpCompare )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2104:3: ruleOpCompare
+ {
+ pushFollow(FOLLOW_ruleOpCompare_in_synpred6_InternalEmfParsleyDsl4923);
+ ruleOpCompare();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred6_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred7_InternalEmfParsleyDsl
+ public final void synpred7_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2223:3: ( ( () ( ( ruleOpOther ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2223:4: ( () ( ( ruleOpOther ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2223:4: ( () ( ( ruleOpOther ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2223:5: () ( ( ruleOpOther ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2223:5: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2224:1:
+ {
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2224:2: ( ( ruleOpOther ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2225:1: ( ruleOpOther )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2225:1: ( ruleOpOther )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2226:3: ruleOpOther
+ {
+ pushFollow(FOLLOW_ruleOpOther_in_synpred7_InternalEmfParsleyDsl5242);
+ ruleOpOther();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred7_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred8_InternalEmfParsleyDsl
+ public final void synpred8_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2335:3: ( ( '>' '>' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2335:4: ( '>' '>' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2335:4: ( '>' '>' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2336:2: '>' '>'
+ {
+ match(input,49,FOLLOW_49_in_synpred8_InternalEmfParsleyDsl5511); if (state.failed) return ;
+ match(input,49,FOLLOW_49_in_synpred8_InternalEmfParsleyDsl5516); if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred8_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred9_InternalEmfParsleyDsl
+ public final void synpred9_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2365:3: ( ( '<' '<' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2365:4: ( '<' '<' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2365:4: ( '<' '<' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2366:2: '<' '<'
+ {
+ match(input,50,FOLLOW_50_in_synpred9_InternalEmfParsleyDsl5598); if (state.failed) return ;
+ match(input,50,FOLLOW_50_in_synpred9_InternalEmfParsleyDsl5603); if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred9_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred10_InternalEmfParsleyDsl
+ public final void synpred10_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2439:3: ( ( () ( ( ruleOpAdd ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2439:4: ( () ( ( ruleOpAdd ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2439:4: ( () ( ( ruleOpAdd ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2439:5: () ( ( ruleOpAdd ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2439:5: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2440:1:
+ {
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2440:2: ( ( ruleOpAdd ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2441:1: ( ruleOpAdd )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2441:1: ( ruleOpAdd )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2442:3: ruleOpAdd
+ {
+ pushFollow(FOLLOW_ruleOpAdd_in_synpred10_InternalEmfParsleyDsl5825);
+ ruleOpAdd();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred10_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred11_InternalEmfParsleyDsl
+ public final void synpred11_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2547:3: ( ( () ( ( ruleOpMulti ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2547:4: ( () ( ( ruleOpMulti ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2547:4: ( () ( ( ruleOpMulti ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2547:5: () ( ( ruleOpMulti ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2547:5: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2548:1:
+ {
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2548:2: ( ( ruleOpMulti ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2549:1: ( ruleOpMulti )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2549:1: ( ruleOpMulti )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2550:3: ruleOpMulti
+ {
+ pushFollow(FOLLOW_ruleOpMulti_in_synpred11_InternalEmfParsleyDsl6105);
+ ruleOpMulti();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred11_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred12_InternalEmfParsleyDsl
+ public final void synpred12_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2780:3: ( ( () 'as' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2780:4: ( () 'as' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2780:4: ( () 'as' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2780:5: () 'as'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2780:5: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2781:1:
+ {
+ }
+
+ match(input,64,FOLLOW_64_in_synpred12_InternalEmfParsleyDsl6699); if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred12_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred13_InternalEmfParsleyDsl
+ public final void synpred13_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2840:4: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2840:5: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2840:5: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2840:6: () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2840:6: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2841:1:
+ {
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2841:2: ( '.' | ( ( '::' ) ) )
+ int alt116=2;
+ int LA116_0 = input.LA(1);
+
+ if ( (LA116_0==65) ) {
+ alt116=1;
+ }
+ else if ( (LA116_0==66) ) {
+ alt116=2;
+ }
+ else {
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 116, 0, input);
+
+ throw nvae;
+ }
+ switch (alt116) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2841:4: '.'
+ {
+ match(input,65,FOLLOW_65_in_synpred13_InternalEmfParsleyDsl6854); if (state.failed) return ;
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2843:6: ( ( '::' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2843:6: ( ( '::' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2844:1: ( '::' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2844:1: ( '::' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2845:2: '::'
+ {
+ match(input,66,FOLLOW_66_in_synpred13_InternalEmfParsleyDsl6868); if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2849:3: ( ( ruleFeatureCallID ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2850:1: ( ruleFeatureCallID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2850:1: ( ruleFeatureCallID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2851:3: ruleFeatureCallID
+ {
+ pushFollow(FOLLOW_ruleFeatureCallID_in_synpred13_InternalEmfParsleyDsl6884);
+ ruleFeatureCallID();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+ pushFollow(FOLLOW_ruleOpSingleAssign_in_synpred13_InternalEmfParsleyDsl6890);
+ ruleOpSingleAssign();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred13_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred14_InternalEmfParsleyDsl
+ public final void synpred14_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2921:8: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2921:9: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2921:9: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2921:10: () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2921:10: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2922:1:
+ {
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2922:2: ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
+ int alt117=3;
+ switch ( input.LA(1) ) {
+ case 65:
+ {
+ alt117=1;
+ }
+ break;
+ case 67:
+ {
+ alt117=2;
+ }
+ break;
+ case 66:
+ {
+ alt117=3;
+ }
+ break;
+ default:
+ if (state.backtracking>0) {state.failed=true; return ;}
+ NoViableAltException nvae =
+ new NoViableAltException("", 117, 0, input);
+
+ throw nvae;
+ }
+
+ switch (alt117) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2922:4: '.'
+ {
+ match(input,65,FOLLOW_65_in_synpred14_InternalEmfParsleyDsl7032); if (state.failed) return ;
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2924:6: ( ( '?.' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2924:6: ( ( '?.' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2925:1: ( '?.' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2925:1: ( '?.' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2926:2: '?.'
+ {
+ match(input,67,FOLLOW_67_in_synpred14_InternalEmfParsleyDsl7046); if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2931:6: ( ( '::' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2931:6: ( ( '::' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2932:1: ( '::' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2932:1: ( '::' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:2933:2: '::'
+ {
+ match(input,66,FOLLOW_66_in_synpred14_InternalEmfParsleyDsl7066); if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred14_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred15_InternalEmfParsleyDsl
+ public final void synpred15_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3042:4: ( ( '(' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3043:1: ( '(' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3043:1: ( '(' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3044:2: '('
+ {
+ match(input,68,FOLLOW_68_in_synpred15_InternalEmfParsleyDsl7293); if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred15_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred16_InternalEmfParsleyDsl
+ public final void synpred16_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3063:4: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3063:5: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3063:5: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3063:6: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3063:6: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3064:1:
+ {
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3064:2: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+ int alt119=2;
+ int LA119_0 = input.LA(1);
+
+ if ( (LA119_0==RULE_ID||LA119_0==53||LA119_0==68) ) {
+ alt119=1;
+ }
+ switch (alt119) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3064:3: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3064:3: ( ( ruleJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3065:1: ( ruleJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3065:1: ( ruleJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3066:1: ruleJvmFormalParameter
+ {
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_synpred16_InternalEmfParsleyDsl7345);
+ ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3068:2: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+ loop118:
+ do {
+ int alt118=2;
+ int LA118_0 = input.LA(1);
+
+ if ( (LA118_0==26) ) {
+ alt118=1;
+ }
+
+
+ switch (alt118) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3068:4: ',' ( ( ruleJvmFormalParameter ) )
+ {
+ match(input,26,FOLLOW_26_in_synpred16_InternalEmfParsleyDsl7352); if (state.failed) return ;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3069:1: ( ( ruleJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3070:1: ( ruleJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3070:1: ( ruleJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3071:1: ruleJvmFormalParameter
+ {
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_synpred16_InternalEmfParsleyDsl7359);
+ ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop118;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3073:6: ( ( '|' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3074:1: ( '|' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3074:1: ( '|' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3075:2: '|'
+ {
+ match(input,73,FOLLOW_73_in_synpred16_InternalEmfParsleyDsl7373); if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred16_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred17_InternalEmfParsleyDsl
+ public final void synpred17_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3142:4: ( ( () '[' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3142:5: ( () '[' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3142:5: ( () '[' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3142:6: () '['
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3142:6: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3143:1:
+ {
+ }
+
+ match(input,71,FOLLOW_71_in_synpred17_InternalEmfParsleyDsl7493); if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred17_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred18_InternalEmfParsleyDsl
+ public final void synpred18_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3343:7: ( ( () '[' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3343:8: ( () '[' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3343:8: ( () '[' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3343:9: () '['
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3343:9: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3344:1:
+ {
+ }
+
+ match(input,71,FOLLOW_71_in_synpred18_InternalEmfParsleyDsl8044); if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred18_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred20_InternalEmfParsleyDsl
+ public final void synpred20_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3635:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3635:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3635:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3635:6: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3635:6: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+ int alt121=2;
+ int LA121_0 = input.LA(1);
+
+ if ( (LA121_0==RULE_ID||LA121_0==53||LA121_0==68) ) {
+ alt121=1;
+ }
+ switch (alt121) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3635:7: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3635:7: ( ( ruleJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3636:1: ( ruleJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3636:1: ( ruleJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3637:1: ruleJvmFormalParameter
+ {
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_synpred20_InternalEmfParsleyDsl8794);
+ ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3639:2: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+ loop120:
+ do {
+ int alt120=2;
+ int LA120_0 = input.LA(1);
+
+ if ( (LA120_0==26) ) {
+ alt120=1;
+ }
+
+
+ switch (alt120) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3639:4: ',' ( ( ruleJvmFormalParameter ) )
+ {
+ match(input,26,FOLLOW_26_in_synpred20_InternalEmfParsleyDsl8801); if (state.failed) return ;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3640:1: ( ( ruleJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3641:1: ( ruleJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3641:1: ( ruleJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3642:1: ruleJvmFormalParameter
+ {
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_synpred20_InternalEmfParsleyDsl8808);
+ ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop120;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3644:6: ( ( '|' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3645:1: ( '|' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3645:1: ( '|' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:3646:2: '|'
+ {
+ match(input,73,FOLLOW_73_in_synpred20_InternalEmfParsleyDsl8822); if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred20_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred22_InternalEmfParsleyDsl
+ public final void synpred22_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4005:4: ( 'else' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4005:6: 'else'
+ {
+ match(input,76,FOLLOW_76_in_synpred22_InternalEmfParsleyDsl9605); if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred22_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred23_InternalEmfParsleyDsl
+ public final void synpred23_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4059:4: ( ( ( ( ruleValidID ) ) ':' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4059:5: ( ( ( ruleValidID ) ) ':' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4059:5: ( ( ( ruleValidID ) ) ':' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4059:6: ( ( ruleValidID ) ) ':'
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4059:6: ( ( ruleValidID ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4060:1: ( ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4060:1: ( ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4061:1: ruleValidID
+ {
+ pushFollow(FOLLOW_ruleValidID_in_synpred23_InternalEmfParsleyDsl9747);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+ match(input,23,FOLLOW_23_in_synpred23_InternalEmfParsleyDsl9753); if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred23_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred24_InternalEmfParsleyDsl
+ public final void synpred24_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4105:8: ( ( '(' ( ( ruleValidID ) ) ':' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4105:9: ( '(' ( ( ruleValidID ) ) ':' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4105:9: ( '(' ( ( ruleValidID ) ) ':' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4105:11: '(' ( ( ruleValidID ) ) ':'
+ {
+ match(input,68,FOLLOW_68_in_synpred24_InternalEmfParsleyDsl9829); if (state.failed) return ;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4106:1: ( ( ruleValidID ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4107:1: ( ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4107:1: ( ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4108:1: ruleValidID
+ {
+ pushFollow(FOLLOW_ruleValidID_in_synpred24_InternalEmfParsleyDsl9836);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+ match(input,23,FOLLOW_23_in_synpred24_InternalEmfParsleyDsl9842); if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred24_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred25_InternalEmfParsleyDsl
+ public final void synpred25_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4689:4: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4689:5: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4689:5: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4689:6: ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4689:6: ( ( ruleJvmTypeReference ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4690:1: ( ruleJvmTypeReference )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4690:1: ( ruleJvmTypeReference )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4691:1: ruleJvmTypeReference
+ {
+ pushFollow(FOLLOW_ruleJvmTypeReference_in_synpred25_InternalEmfParsleyDsl11107);
+ ruleJvmTypeReference();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4693:2: ( ( ruleValidID ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4694:1: ( ruleValidID )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4694:1: ( ruleValidID )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4695:1: ruleValidID
+ {
+ pushFollow(FOLLOW_ruleValidID_in_synpred25_InternalEmfParsleyDsl11116);
+ ruleValidID();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred25_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred26_InternalEmfParsleyDsl
+ public final void synpred26_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4978:4: ( ( '(' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4979:1: ( '(' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4979:1: ( '(' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4980:2: '('
+ {
+ match(input,68,FOLLOW_68_in_synpred26_InternalEmfParsleyDsl11654); if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred26_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred27_InternalEmfParsleyDsl
+ public final void synpred27_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4999:4: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4999:5: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4999:5: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4999:6: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:4999:6: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5000:1:
+ {
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5000:2: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+ int alt125=2;
+ int LA125_0 = input.LA(1);
+
+ if ( (LA125_0==RULE_ID||LA125_0==53||LA125_0==68) ) {
+ alt125=1;
+ }
+ switch (alt125) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5000:3: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5000:3: ( ( ruleJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5001:1: ( ruleJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5001:1: ( ruleJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5002:1: ruleJvmFormalParameter
+ {
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_synpred27_InternalEmfParsleyDsl11706);
+ ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5004:2: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+ loop124:
+ do {
+ int alt124=2;
+ int LA124_0 = input.LA(1);
+
+ if ( (LA124_0==26) ) {
+ alt124=1;
+ }
+
+
+ switch (alt124) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5004:4: ',' ( ( ruleJvmFormalParameter ) )
+ {
+ match(input,26,FOLLOW_26_in_synpred27_InternalEmfParsleyDsl11713); if (state.failed) return ;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5005:1: ( ( ruleJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5006:1: ( ruleJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5006:1: ( ruleJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5007:1: ruleJvmFormalParameter
+ {
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_synpred27_InternalEmfParsleyDsl11720);
+ ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop124;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5009:6: ( ( '|' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5010:1: ( '|' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5010:1: ( '|' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5011:2: '|'
+ {
+ match(input,73,FOLLOW_73_in_synpred27_InternalEmfParsleyDsl11734); if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred27_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred28_InternalEmfParsleyDsl
+ public final void synpred28_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5078:4: ( ( () '[' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5078:5: ( () '[' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5078:5: ( () '[' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5078:6: () '['
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5078:6: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5079:1:
+ {
+ }
+
+ match(input,71,FOLLOW_71_in_synpred28_InternalEmfParsleyDsl11854); if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred28_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred29_InternalEmfParsleyDsl
+ public final void synpred29_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5243:4: ( '<' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5243:6: '<'
+ {
+ match(input,50,FOLLOW_50_in_synpred29_InternalEmfParsleyDsl12303); if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred29_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred30_InternalEmfParsleyDsl
+ public final void synpred30_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5292:5: ( '(' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5292:7: '('
+ {
+ match(input,68,FOLLOW_68_in_synpred30_InternalEmfParsleyDsl12396); if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred30_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred31_InternalEmfParsleyDsl
+ public final void synpred31_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5297:4: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5297:5: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5297:5: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5297:6: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5297:6: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5298:1:
+ {
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5298:2: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
+ int alt127=2;
+ int LA127_0 = input.LA(1);
+
+ if ( (LA127_0==RULE_ID||LA127_0==53||LA127_0==68) ) {
+ alt127=1;
+ }
+ switch (alt127) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5298:3: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5298:3: ( ( ruleJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5299:1: ( ruleJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5299:1: ( ruleJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5300:1: ruleJvmFormalParameter
+ {
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_synpred31_InternalEmfParsleyDsl12426);
+ ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5302:2: ( ',' ( ( ruleJvmFormalParameter ) ) )*
+ loop126:
+ do {
+ int alt126=2;
+ int LA126_0 = input.LA(1);
+
+ if ( (LA126_0==26) ) {
+ alt126=1;
+ }
+
+
+ switch (alt126) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5302:4: ',' ( ( ruleJvmFormalParameter ) )
+ {
+ match(input,26,FOLLOW_26_in_synpred31_InternalEmfParsleyDsl12433); if (state.failed) return ;
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5303:1: ( ( ruleJvmFormalParameter ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5304:1: ( ruleJvmFormalParameter )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5304:1: ( ruleJvmFormalParameter )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5305:1: ruleJvmFormalParameter
+ {
+ pushFollow(FOLLOW_ruleJvmFormalParameter_in_synpred31_InternalEmfParsleyDsl12440);
+ ruleJvmFormalParameter();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop126;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5307:6: ( ( '|' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5308:1: ( '|' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5308:1: ( '|' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5309:2: '|'
+ {
+ match(input,73,FOLLOW_73_in_synpred31_InternalEmfParsleyDsl12454); if (state.failed) return ;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred31_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred32_InternalEmfParsleyDsl
+ public final void synpred32_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5376:4: ( ( () '[' ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5376:5: ( () '[' )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5376:5: ( () '[' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5376:6: () '['
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5376:6: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5377:1:
+ {
+ }
+
+ match(input,71,FOLLOW_71_in_synpred32_InternalEmfParsleyDsl12574); if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred32_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred33_InternalEmfParsleyDsl
+ public final void synpred33_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5716:2: ( ( ruleXExpression ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5717:1: ( ruleXExpression )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5717:1: ( ruleXExpression )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5718:1: ruleXExpression
+ {
+ pushFollow(FOLLOW_ruleXExpression_in_synpred33_InternalEmfParsleyDsl13398);
+ ruleXExpression();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred33_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred34_InternalEmfParsleyDsl
+ public final void synpred34_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5787:5: ( 'catch' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5787:7: 'catch'
+ {
+ match(input,98,FOLLOW_98_in_synpred34_InternalEmfParsleyDsl13543); if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred34_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred35_InternalEmfParsleyDsl
+ public final void synpred35_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5806:5: ( 'finally' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5806:7: 'finally'
+ {
+ match(input,97,FOLLOW_97_in_synpred35_InternalEmfParsleyDsl13573); if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred35_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred37_InternalEmfParsleyDsl
+ public final void synpred37_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5954:3: ( '.' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:5955:2: '.'
+ {
+ match(input,65,FOLLOW_65_in_synpred37_InternalEmfParsleyDsl13920); if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred37_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred38_InternalEmfParsleyDsl
+ public final void synpred38_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6080:2: ( ( () ruleArrayBrackets ) )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6080:3: ( () ruleArrayBrackets )
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6080:3: ( () ruleArrayBrackets )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6080:4: () ruleArrayBrackets
+ {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6080:4: ()
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6081:1:
+ {
+ }
+
+ pushFollow(FOLLOW_ruleArrayBrackets_in_synpred38_InternalEmfParsleyDsl14305);
+ ruleArrayBrackets();
+
+ state._fsp--;
+ if (state.failed) return ;
+
+ }
+
+
+ }
+ }
+ // $ANTLR end synpred38_InternalEmfParsleyDsl
+
+ // $ANTLR start synpred39_InternalEmfParsleyDsl
+ public final void synpred39_InternalEmfParsleyDsl_fragment() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6265:4: ( '<' )
+ // ../org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/parser/antlr/internal/InternalEmfParsleyDsl.g:6265:6: '<'
+ {
+ match(input,50,FOLLOW_50_in_synpred39_InternalEmfParsleyDsl14757); if (state.failed) return ;
+
+ }
+ }
+ // $ANTLR end synpred39_InternalEmfParsleyDsl
+
+ // Delegated rules
+
+ public final boolean synpred9_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred9_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred8_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred8_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred14_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred14_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred18_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred18_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred25_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred25_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred12_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred12_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred7_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred7_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred2_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred2_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred16_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred16_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred39_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred39_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred24_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred24_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred34_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred34_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred26_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred26_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred35_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred35_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred13_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred13_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred27_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred27_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred29_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred29_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred15_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred15_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred23_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred23_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred17_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred17_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred33_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred33_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred1_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred1_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred3_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred3_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred5_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred5_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred4_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred4_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred32_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred32_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred30_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred30_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred37_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred37_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred11_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred11_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred22_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred22_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred31_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred31_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred38_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred38_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred28_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred28_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred10_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred10_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred20_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred20_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+ public final boolean synpred6_InternalEmfParsleyDsl() {
+ state.backtracking++;
+ int start = input.mark();
+ try {
+ synpred6_InternalEmfParsleyDsl_fragment(); // can never throw exception
+ } catch (RecognitionException re) {
+ System.err.println("impossible: "+re);
+ }
+ boolean success = !state.failed;
+ input.rewind(start);
+ state.backtracking--;
+ state.failed=false;
+ return success;
+ }
+
+
+ protected DFA30 dfa30 = new DFA30(this);
+ protected DFA33 dfa33 = new DFA33(this);
+ protected DFA47 dfa47 = new DFA47(this);
+ protected DFA46 dfa46 = new DFA46(this);
+ protected DFA48 dfa48 = new DFA48(this);
+ protected DFA50 dfa50 = new DFA50(this);
+ protected DFA59 dfa59 = new DFA59(this);
+ protected DFA82 dfa82 = new DFA82(this);
+ protected DFA81 dfa81 = new DFA81(this);
+ protected DFA83 dfa83 = new DFA83(this);
+ protected DFA87 dfa87 = new DFA87(this);
+ protected DFA90 dfa90 = new DFA90(this);
+ protected DFA89 dfa89 = new DFA89(this);
+ protected DFA91 dfa91 = new DFA91(this);
+ protected DFA94 dfa94 = new DFA94(this);
+ protected DFA109 dfa109 = new DFA109(this);
+ protected DFA114 dfa114 = new DFA114(this);
+ static final String DFA30_eotS =
+ "\14\uffff";
+ static final String DFA30_eofS =
+ "\1\1\13\uffff";
+ static final String DFA30_minS =
+ "\1\4\1\uffff\11\0\1\uffff";
+ static final String DFA30_maxS =
+ "\1\142\1\uffff\11\0\1\uffff";
+ static final String DFA30_acceptS =
+ "\1\uffff\1\2\11\uffff\1\1";
+ static final String DFA30_specialS =
+ "\2\uffff\1\0\1\10\1\2\1\3\1\1\1\5\1\4\1\7\1\6\1\uffff}>";
+ static final String[] DFA30_transitionS = {
+ "\5\1\5\uffff\1\1\1\uffff\2\1\3\uffff\1\5\1\uffff\1\1\2\uffff"+
+ "\1\1\2\uffff\1\1\10\uffff\13\1\1\2\1\3\1\6\1\7\1\4\1\10\1\11"+
+ "\1\12\20\1\1\uffff\31\1",
+ "",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ ""
+ };
+
+ static final short[] DFA30_eot = DFA.unpackEncodedString(DFA30_eotS);
+ static final short[] DFA30_eof = DFA.unpackEncodedString(DFA30_eofS);
+ static final char[] DFA30_min = DFA.unpackEncodedStringToUnsignedChars(DFA30_minS);
+ static final char[] DFA30_max = DFA.unpackEncodedStringToUnsignedChars(DFA30_maxS);
+ static final short[] DFA30_accept = DFA.unpackEncodedString(DFA30_acceptS);
+ static final short[] DFA30_special = DFA.unpackEncodedString(DFA30_specialS);
+ static final short[][] DFA30_transition;
+
+ static {
+ int numStates = DFA30_transitionS.length;
+ DFA30_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA30_transition[i] = DFA.unpackEncodedString(DFA30_transitionS[i]);
+ }
+ }
+
+ class DFA30 extends DFA {
+
+ public DFA30(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 30;
+ this.eot = DFA30_eot;
+ this.eof = DFA30_eof;
+ this.min = DFA30_min;
+ this.max = DFA30_max;
+ this.accept = DFA30_accept;
+ this.special = DFA30_special;
+ this.transition = DFA30_transition;
+ }
+ public String getDescription() {
+ return "()* loopback of 2223:1: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA30_2 = input.LA(1);
+
+
+ int index30_2 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7_InternalEmfParsleyDsl()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index30_2);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA30_6 = input.LA(1);
+
+
+ int index30_6 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7_InternalEmfParsleyDsl()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index30_6);
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA30_4 = input.LA(1);
+
+
+ int index30_4 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7_InternalEmfParsleyDsl()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index30_4);
+ if ( s>=0 ) return s;
+ break;
+ case 3 :
+ int LA30_5 = input.LA(1);
+
+
+ int index30_5 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7_InternalEmfParsleyDsl()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index30_5);
+ if ( s>=0 ) return s;
+ break;
+ case 4 :
+ int LA30_8 = input.LA(1);
+
+
+ int index30_8 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7_InternalEmfParsleyDsl()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index30_8);
+ if ( s>=0 ) return s;
+ break;
+ case 5 :
+ int LA30_7 = input.LA(1);
+
+
+ int index30_7 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7_InternalEmfParsleyDsl()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index30_7);
+ if ( s>=0 ) return s;
+ break;
+ case 6 :
+ int LA30_10 = input.LA(1);
+
+
+ int index30_10 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7_InternalEmfParsleyDsl()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index30_10);
+ if ( s>=0 ) return s;
+ break;
+ case 7 :
+ int LA30_9 = input.LA(1);
+
+
+ int index30_9 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7_InternalEmfParsleyDsl()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index30_9);
+ if ( s>=0 ) return s;
+ break;
+ case 8 :
+ int LA30_3 = input.LA(1);
+
+
+ int index30_3 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7_InternalEmfParsleyDsl()) ) {s = 11;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index30_3);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 30, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA33_eotS =
+ "\14\uffff";
+ static final String DFA33_eofS =
+ "\14\uffff";
+ static final String DFA33_minS =
+ "\1\25\2\uffff\1\61\10\uffff";
+ static final String DFA33_maxS =
+ "\1\70\2\uffff\1\64\10\uffff";
+ static final String DFA33_acceptS =
+ "\1\uffff\1\1\1\2\1\uffff\1\4\1\5\1\7\1\10\1\11\1\12\1\3\1\6";
+ static final String DFA33_specialS =
+ "\14\uffff}>";
+ static final String[] DFA33_transitionS = {
+ "\1\1\33\uffff\1\3\1\6\1\2\1\4\1\5\1\7\1\10\1\11",
+ "",
+ "",
+ "\1\13\2\uffff\1\12",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA33_eot = DFA.unpackEncodedString(DFA33_eotS);
+ static final short[] DFA33_eof = DFA.unpackEncodedString(DFA33_eofS);
+ static final char[] DFA33_min = DFA.unpackEncodedStringToUnsignedChars(DFA33_minS);
+ static final char[] DFA33_max = DFA.unpackEncodedStringToUnsignedChars(DFA33_maxS);
+ static final short[] DFA33_accept = DFA.unpackEncodedString(DFA33_acceptS);
+ static final short[] DFA33_special = DFA.unpackEncodedString(DFA33_specialS);
+ static final short[][] DFA33_transition;
+
+ static {
+ int numStates = DFA33_transitionS.length;
+ DFA33_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA33_transition[i] = DFA.unpackEncodedString(DFA33_transitionS[i]);
+ }
+ }
+
+ class DFA33 extends DFA {
+
+ public DFA33(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 33;
+ this.eot = DFA33_eot;
+ this.eof = DFA33_eof;
+ this.min = DFA33_min;
+ this.max = DFA33_max;
+ this.accept = DFA33_accept;
+ this.special = DFA33_special;
+ this.transition = DFA33_transition;
+ }
+ public String getDescription() {
+ return "2288:1: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' ) ) | kw= '<>' | kw= '?:' | kw= '<=>' )";
+ }
+ }
+ static final String DFA47_eotS =
+ "\113\uffff";
+ static final String DFA47_eofS =
+ "\1\2\112\uffff";
+ static final String DFA47_minS =
+ "\1\4\1\0\111\uffff";
+ static final String DFA47_maxS =
+ "\1\142\1\0\111\uffff";
+ static final String DFA47_acceptS =
+ "\2\uffff\1\2\107\uffff\1\1";
+ static final String DFA47_specialS =
+ "\1\uffff\1\0\111\uffff}>";
+ static final String[] DFA47_transitionS = {
+ "\5\2\5\uffff\1\2\1\uffff\2\2\3\uffff\1\2\1\uffff\1\2\2\uffff"+
+ "\1\2\2\uffff\1\2\10\uffff\36\2\1\1\4\2\1\uffff\31\2",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA47_eot = DFA.unpackEncodedString(DFA47_eotS);
+ static final short[] DFA47_eof = DFA.unpackEncodedString(DFA47_eofS);
+ static final char[] DFA47_min = DFA.unpackEncodedStringToUnsignedChars(DFA47_minS);
+ static final char[] DFA47_max = DFA.unpackEncodedStringToUnsignedChars(DFA47_maxS);
+ static final short[] DFA47_accept = DFA.unpackEncodedString(DFA47_acceptS);
+ static final short[] DFA47_special = DFA.unpackEncodedString(DFA47_specialS);
+ static final short[][] DFA47_transition;
+
+ static {
+ int numStates = DFA47_transitionS.length;
+ DFA47_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA47_transition[i] = DFA.unpackEncodedString(DFA47_transitionS[i]);
+ }
+ }
+
+ class DFA47 extends DFA {
+
+ public DFA47(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 47;
+ this.eot = DFA47_eot;
+ this.eof = DFA47_eof;
+ this.min = DFA47_min;
+ this.max = DFA47_max;
+ this.accept = DFA47_accept;
+ this.special = DFA47_special;
+ this.transition = DFA47_transition;
+ }
+ public String getDescription() {
+ return "3042:2: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA47_1 = input.LA(1);
+
+
+ int index47_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred15_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index47_1);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 47, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA46_eotS =
+ "\43\uffff";
+ static final String DFA46_eofS =
+ "\43\uffff";
+ static final String DFA46_minS =
+ "\1\4\2\0\40\uffff";
+ static final String DFA46_maxS =
+ "\1\140\2\0\40\uffff";
+ static final String DFA46_acceptS =
+ "\3\uffff\2\1\1\2\34\uffff\1\3";
+ static final String DFA46_specialS =
+ "\1\0\1\1\1\2\40\uffff}>";
+ static final String[] DFA46_transitionS = {
+ "\1\1\4\5\5\uffff\1\5\2\uffff\1\5\40\uffff\1\5\2\uffff\1\3\3"+
+ "\uffff\2\5\4\uffff\1\5\4\uffff\1\2\1\42\2\5\1\uffff\1\4\1\uffff"+
+ "\1\5\1\uffff\1\5\2\uffff\3\5\2\uffff\14\5",
+ "\1\uffff",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA46_eot = DFA.unpackEncodedString(DFA46_eotS);
+ static final short[] DFA46_eof = DFA.unpackEncodedString(DFA46_eofS);
+ static final char[] DFA46_min = DFA.unpackEncodedStringToUnsignedChars(DFA46_minS);
+ static final char[] DFA46_max = DFA.unpackEncodedStringToUnsignedChars(DFA46_maxS);
+ static final short[] DFA46_accept = DFA.unpackEncodedString(DFA46_acceptS);
+ static final short[] DFA46_special = DFA.unpackEncodedString(DFA46_specialS);
+ static final short[][] DFA46_transition;
+
+ static {
+ int numStates = DFA46_transitionS.length;
+ DFA46_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA46_transition[i] = DFA.unpackEncodedString(DFA46_transitionS[i]);
+ }
+ }
+
+ class DFA46 extends DFA {
+
+ public DFA46(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 46;
+ this.eot = DFA46_eot;
+ this.eof = DFA46_eof;
+ this.min = DFA46_min;
+ this.max = DFA46_max;
+ this.accept = DFA46_accept;
+ this.special = DFA46_special;
+ this.transition = DFA46_transition;
+ }
+ public String getDescription() {
+ return "3063:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA46_0 = input.LA(1);
+
+
+ int index46_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA46_0==RULE_ID) ) {s = 1;}
+
+ else if ( (LA46_0==68) ) {s = 2;}
+
+ else if ( (LA46_0==53) && (synpred16_InternalEmfParsleyDsl())) {s = 3;}
+
+ else if ( (LA46_0==73) && (synpred16_InternalEmfParsleyDsl())) {s = 4;}
+
+ else if ( ((LA46_0>=RULE_STRING && LA46_0<=RULE_DECIMAL)||LA46_0==14||LA46_0==17||LA46_0==50||(LA46_0>=57 && LA46_0<=58)||LA46_0==63||(LA46_0>=70 && LA46_0<=71)||LA46_0==75||LA46_0==77||(LA46_0>=80 && LA46_0<=82)||(LA46_0>=85 && LA46_0<=96)) ) {s = 5;}
+
+ else if ( (LA46_0==69) ) {s = 34;}
+
+
+ input.seek(index46_0);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA46_1 = input.LA(1);
+
+
+ int index46_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred16_InternalEmfParsleyDsl()) ) {s = 4;}
+
+ else if ( (true) ) {s = 5;}
+
+
+ input.seek(index46_1);
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA46_2 = input.LA(1);
+
+
+ int index46_2 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred16_InternalEmfParsleyDsl()) ) {s = 4;}
+
+ else if ( (true) ) {s = 5;}
+
+
+ input.seek(index46_2);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 46, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA48_eotS =
+ "\113\uffff";
+ static final String DFA48_eofS =
+ "\1\2\112\uffff";
+ static final String DFA48_minS =
+ "\1\4\1\0\111\uffff";
+ static final String DFA48_maxS =
+ "\1\142\1\0\111\uffff";
+ static final String DFA48_acceptS =
+ "\2\uffff\1\2\107\uffff\1\1";
+ static final String DFA48_specialS =
+ "\1\uffff\1\0\111\uffff}>";
+ static final String[] DFA48_transitionS = {
+ "\5\2\5\uffff\1\2\1\uffff\2\2\3\uffff\1\2\1\uffff\1\2\2\uffff"+
+ "\1\2\2\uffff\1\2\10\uffff\41\2\1\1\1\2\1\uffff\31\2",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA48_eot = DFA.unpackEncodedString(DFA48_eotS);
+ static final short[] DFA48_eof = DFA.unpackEncodedString(DFA48_eofS);
+ static final char[] DFA48_min = DFA.unpackEncodedStringToUnsignedChars(DFA48_minS);
+ static final char[] DFA48_max = DFA.unpackEncodedStringToUnsignedChars(DFA48_maxS);
+ static final short[] DFA48_accept = DFA.unpackEncodedString(DFA48_acceptS);
+ static final short[] DFA48_special = DFA.unpackEncodedString(DFA48_specialS);
+ static final short[][] DFA48_transition;
+
+ static {
+ int numStates = DFA48_transitionS.length;
+ DFA48_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA48_transition[i] = DFA.unpackEncodedString(DFA48_transitionS[i]);
+ }
+ }
+
+ class DFA48 extends DFA {
+
+ public DFA48(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 48;
+ this.eot = DFA48_eot;
+ this.eof = DFA48_eof;
+ this.min = DFA48_min;
+ this.max = DFA48_max;
+ this.accept = DFA48_accept;
+ this.special = DFA48_special;
+ this.transition = DFA48_transition;
+ }
+ public String getDescription() {
+ return "3142:3: ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA48_1 = input.LA(1);
+
+
+ int index48_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred17_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index48_1);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 48, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA50_eotS =
+ "\16\uffff";
+ static final String DFA50_eofS =
+ "\16\uffff";
+ static final String DFA50_minS =
+ "\1\4\15\uffff";
+ static final String DFA50_maxS =
+ "\1\140\15\uffff";
+ static final String DFA50_acceptS =
+ "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1"+
+ "\15";
+ static final String DFA50_specialS =
+ "\16\uffff}>";
+ static final String[] DFA50_transitionS = {
+ "\1\4\4\5\5\uffff\1\2\2\uffff\1\4\40\uffff\1\4\21\uffff\1\15"+
+ "\1\uffff\2\5\3\uffff\1\6\1\uffff\1\3\2\uffff\1\7\1\10\1\11\2"+
+ "\uffff\4\4\1\1\4\5\1\12\1\13\1\14",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA50_eot = DFA.unpackEncodedString(DFA50_eotS);
+ static final short[] DFA50_eof = DFA.unpackEncodedString(DFA50_eofS);
+ static final char[] DFA50_min = DFA.unpackEncodedStringToUnsignedChars(DFA50_minS);
+ static final char[] DFA50_max = DFA.unpackEncodedStringToUnsignedChars(DFA50_maxS);
+ static final short[] DFA50_accept = DFA.unpackEncodedString(DFA50_acceptS);
+ static final short[] DFA50_special = DFA.unpackEncodedString(DFA50_specialS);
+ static final short[][] DFA50_transition;
+
+ static {
+ int numStates = DFA50_transitionS.length;
+ DFA50_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA50_transition[i] = DFA.unpackEncodedString(DFA50_transitionS[i]);
+ }
+ }
+
+ class DFA50 extends DFA {
+
+ public DFA50(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 50;
+ this.eot = DFA50_eot;
+ this.eof = DFA50_eof;
+ this.min = DFA50_min;
+ this.max = DFA50_max;
+ this.accept = DFA50_accept;
+ this.special = DFA50_special;
+ this.transition = DFA50_transition;
+ }
+ public String getDescription() {
+ return "3183:1: (this_XConstructorCall_0= ruleXConstructorCall | this_XBlockExpression_1= ruleXBlockExpression | this_XSwitchExpression_2= ruleXSwitchExpression | this_XFeatureCall_3= ruleXFeatureCall | this_XLiteral_4= ruleXLiteral | this_XIfExpression_5= ruleXIfExpression | this_XForLoopExpression_6= ruleXForLoopExpression | this_XWhileExpression_7= ruleXWhileExpression | this_XDoWhileExpression_8= ruleXDoWhileExpression | this_XThrowExpression_9= ruleXThrowExpression | this_XReturnExpression_10= ruleXReturnExpression | this_XTryCatchFinallyExpression_11= ruleXTryCatchFinallyExpression | this_XParenthesizedExpression_12= ruleXParenthesizedExpression )";
+ }
+ }
+ static final String DFA59_eotS =
+ "\45\uffff";
+ static final String DFA59_eofS =
+ "\45\uffff";
+ static final String DFA59_minS =
+ "\1\4\2\0\42\uffff";
+ static final String DFA59_maxS =
+ "\1\140\2\0\42\uffff";
+ static final String DFA59_acceptS =
+ "\3\uffff\2\1\1\2\37\uffff";
+ static final String DFA59_specialS =
+ "\1\0\1\1\1\2\42\uffff}>";
+ static final String[] DFA59_transitionS = {
+ "\1\1\4\5\5\uffff\1\5\2\uffff\1\5\40\uffff\1\5\2\uffff\1\3\3"+
+ "\uffff\2\5\4\uffff\1\5\4\uffff\1\2\1\uffff\3\5\1\4\1\uffff\1"+
+ "\5\1\uffff\1\5\2\uffff\21\5",
+ "\1\uffff",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA59_eot = DFA.unpackEncodedString(DFA59_eotS);
+ static final short[] DFA59_eof = DFA.unpackEncodedString(DFA59_eofS);
+ static final char[] DFA59_min = DFA.unpackEncodedStringToUnsignedChars(DFA59_minS);
+ static final char[] DFA59_max = DFA.unpackEncodedStringToUnsignedChars(DFA59_maxS);
+ static final short[] DFA59_accept = DFA.unpackEncodedString(DFA59_acceptS);
+ static final short[] DFA59_special = DFA.unpackEncodedString(DFA59_specialS);
+ static final short[][] DFA59_transition;
+
+ static {
+ int numStates = DFA59_transitionS.length;
+ DFA59_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA59_transition[i] = DFA.unpackEncodedString(DFA59_transitionS[i]);
+ }
+ }
+
+ class DFA59 extends DFA {
+
+ public DFA59(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 59;
+ this.eot = DFA59_eot;
+ this.eof = DFA59_eof;
+ this.min = DFA59_min;
+ this.max = DFA59_max;
+ this.accept = DFA59_accept;
+ this.special = DFA59_special;
+ this.transition = DFA59_transition;
+ }
+ public String getDescription() {
+ return "3635:3: ( ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> ( ( ( (lv_declaredFormalParameters_2_0= ruleJvmFormalParameter ) ) (otherlv_3= ',' ( (lv_declaredFormalParameters_4_0= ruleJvmFormalParameter ) ) )* )? ( (lv_explicitSyntax_5_0= '|' ) ) ) )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA59_0 = input.LA(1);
+
+
+ int index59_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA59_0==RULE_ID) ) {s = 1;}
+
+ else if ( (LA59_0==68) ) {s = 2;}
+
+ else if ( (LA59_0==53) && (synpred20_InternalEmfParsleyDsl())) {s = 3;}
+
+ else if ( (LA59_0==73) && (synpred20_InternalEmfParsleyDsl())) {s = 4;}
+
+ else if ( ((LA59_0>=RULE_STRING && LA59_0<=RULE_DECIMAL)||LA59_0==14||LA59_0==17||LA59_0==50||(LA59_0>=57 && LA59_0<=58)||LA59_0==63||(LA59_0>=70 && LA59_0<=72)||LA59_0==75||LA59_0==77||(LA59_0>=80 && LA59_0<=96)) ) {s = 5;}
+
+
+ input.seek(index59_0);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA59_1 = input.LA(1);
+
+
+ int index59_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred20_InternalEmfParsleyDsl()) ) {s = 4;}
+
+ else if ( (true) ) {s = 5;}
+
+
+ input.seek(index59_1);
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA59_2 = input.LA(1);
+
+
+ int index59_2 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred20_InternalEmfParsleyDsl()) ) {s = 4;}
+
+ else if ( (true) ) {s = 5;}
+
+
+ input.seek(index59_2);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 59, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA82_eotS =
+ "\113\uffff";
+ static final String DFA82_eofS =
+ "\1\2\112\uffff";
+ static final String DFA82_minS =
+ "\1\4\1\0\111\uffff";
+ static final String DFA82_maxS =
+ "\1\142\1\0\111\uffff";
+ static final String DFA82_acceptS =
+ "\2\uffff\1\2\107\uffff\1\1";
+ static final String DFA82_specialS =
+ "\1\uffff\1\0\111\uffff}>";
+ static final String[] DFA82_transitionS = {
+ "\5\2\5\uffff\1\2\1\uffff\2\2\3\uffff\1\2\1\uffff\1\2\2\uffff"+
+ "\1\2\2\uffff\1\2\10\uffff\36\2\1\1\4\2\1\uffff\31\2",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA82_eot = DFA.unpackEncodedString(DFA82_eotS);
+ static final short[] DFA82_eof = DFA.unpackEncodedString(DFA82_eofS);
+ static final char[] DFA82_min = DFA.unpackEncodedStringToUnsignedChars(DFA82_minS);
+ static final char[] DFA82_max = DFA.unpackEncodedStringToUnsignedChars(DFA82_maxS);
+ static final short[] DFA82_accept = DFA.unpackEncodedString(DFA82_acceptS);
+ static final short[] DFA82_special = DFA.unpackEncodedString(DFA82_specialS);
+ static final short[][] DFA82_transition;
+
+ static {
+ int numStates = DFA82_transitionS.length;
+ DFA82_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA82_transition[i] = DFA.unpackEncodedString(DFA82_transitionS[i]);
+ }
+ }
+
+ class DFA82 extends DFA {
+
+ public DFA82(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 82;
+ this.eot = DFA82_eot;
+ this.eof = DFA82_eof;
+ this.min = DFA82_min;
+ this.max = DFA82_max;
+ this.accept = DFA82_accept;
+ this.special = DFA82_special;
+ this.transition = DFA82_transition;
+ }
+ public String getDescription() {
+ return "4978:2: ( ( ( ( '(' ) )=> (lv_explicitOperationCall_7_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )? otherlv_12= ')' )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA82_1 = input.LA(1);
+
+
+ int index82_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred26_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index82_1);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 82, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA81_eotS =
+ "\43\uffff";
+ static final String DFA81_eofS =
+ "\43\uffff";
+ static final String DFA81_minS =
+ "\1\4\2\0\40\uffff";
+ static final String DFA81_maxS =
+ "\1\140\2\0\40\uffff";
+ static final String DFA81_acceptS =
+ "\3\uffff\2\1\1\2\34\uffff\1\3";
+ static final String DFA81_specialS =
+ "\1\0\1\1\1\2\40\uffff}>";
+ static final String[] DFA81_transitionS = {
+ "\1\1\4\5\5\uffff\1\5\2\uffff\1\5\40\uffff\1\5\2\uffff\1\3\3"+
+ "\uffff\2\5\4\uffff\1\5\4\uffff\1\2\1\42\2\5\1\uffff\1\4\1\uffff"+
+ "\1\5\1\uffff\1\5\2\uffff\3\5\2\uffff\14\5",
+ "\1\uffff",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA81_eot = DFA.unpackEncodedString(DFA81_eotS);
+ static final short[] DFA81_eof = DFA.unpackEncodedString(DFA81_eofS);
+ static final char[] DFA81_min = DFA.unpackEncodedStringToUnsignedChars(DFA81_minS);
+ static final char[] DFA81_max = DFA.unpackEncodedStringToUnsignedChars(DFA81_maxS);
+ static final short[] DFA81_accept = DFA.unpackEncodedString(DFA81_acceptS);
+ static final short[] DFA81_special = DFA.unpackEncodedString(DFA81_specialS);
+ static final short[][] DFA81_transition;
+
+ static {
+ int numStates = DFA81_transitionS.length;
+ DFA81_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA81_transition[i] = DFA.unpackEncodedString(DFA81_transitionS[i]);
+ }
+ }
+
+ class DFA81 extends DFA {
+
+ public DFA81(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 81;
+ this.eot = DFA81_eot;
+ this.eof = DFA81_eof;
+ this.min = DFA81_min;
+ this.max = DFA81_max;
+ this.accept = DFA81_accept;
+ this.special = DFA81_special;
+ this.transition = DFA81_transition;
+ }
+ public String getDescription() {
+ return "4999:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_featureCallArguments_8_0= ruleXShortClosure ) ) | ( ( (lv_featureCallArguments_9_0= ruleXExpression ) ) (otherlv_10= ',' ( (lv_featureCallArguments_11_0= ruleXExpression ) ) )* ) )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA81_0 = input.LA(1);
+
+
+ int index81_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA81_0==RULE_ID) ) {s = 1;}
+
+ else if ( (LA81_0==68) ) {s = 2;}
+
+ else if ( (LA81_0==53) && (synpred27_InternalEmfParsleyDsl())) {s = 3;}
+
+ else if ( (LA81_0==73) && (synpred27_InternalEmfParsleyDsl())) {s = 4;}
+
+ else if ( ((LA81_0>=RULE_STRING && LA81_0<=RULE_DECIMAL)||LA81_0==14||LA81_0==17||LA81_0==50||(LA81_0>=57 && LA81_0<=58)||LA81_0==63||(LA81_0>=70 && LA81_0<=71)||LA81_0==75||LA81_0==77||(LA81_0>=80 && LA81_0<=82)||(LA81_0>=85 && LA81_0<=96)) ) {s = 5;}
+
+ else if ( (LA81_0==69) ) {s = 34;}
+
+
+ input.seek(index81_0);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA81_1 = input.LA(1);
+
+
+ int index81_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred27_InternalEmfParsleyDsl()) ) {s = 4;}
+
+ else if ( (true) ) {s = 5;}
+
+
+ input.seek(index81_1);
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA81_2 = input.LA(1);
+
+
+ int index81_2 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred27_InternalEmfParsleyDsl()) ) {s = 4;}
+
+ else if ( (true) ) {s = 5;}
+
+
+ input.seek(index81_2);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 81, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA83_eotS =
+ "\113\uffff";
+ static final String DFA83_eofS =
+ "\1\2\112\uffff";
+ static final String DFA83_minS =
+ "\1\4\1\0\111\uffff";
+ static final String DFA83_maxS =
+ "\1\142\1\0\111\uffff";
+ static final String DFA83_acceptS =
+ "\2\uffff\1\2\107\uffff\1\1";
+ static final String DFA83_specialS =
+ "\1\uffff\1\0\111\uffff}>";
+ static final String[] DFA83_transitionS = {
+ "\5\2\5\uffff\1\2\1\uffff\2\2\3\uffff\1\2\1\uffff\1\2\2\uffff"+
+ "\1\2\2\uffff\1\2\10\uffff\41\2\1\1\1\2\1\uffff\31\2",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA83_eot = DFA.unpackEncodedString(DFA83_eotS);
+ static final short[] DFA83_eof = DFA.unpackEncodedString(DFA83_eofS);
+ static final char[] DFA83_min = DFA.unpackEncodedStringToUnsignedChars(DFA83_minS);
+ static final char[] DFA83_max = DFA.unpackEncodedStringToUnsignedChars(DFA83_maxS);
+ static final short[] DFA83_accept = DFA.unpackEncodedString(DFA83_acceptS);
+ static final short[] DFA83_special = DFA.unpackEncodedString(DFA83_specialS);
+ static final short[][] DFA83_transition;
+
+ static {
+ int numStates = DFA83_transitionS.length;
+ DFA83_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA83_transition[i] = DFA.unpackEncodedString(DFA83_transitionS[i]);
+ }
+ }
+
+ class DFA83 extends DFA {
+
+ public DFA83(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 83;
+ this.eot = DFA83_eot;
+ this.eof = DFA83_eof;
+ this.min = DFA83_min;
+ this.max = DFA83_max;
+ this.accept = DFA83_accept;
+ this.special = DFA83_special;
+ this.transition = DFA83_transition;
+ }
+ public String getDescription() {
+ return "5078:3: ( ( ( () '[' ) )=> (lv_featureCallArguments_13_0= ruleXClosure ) )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA83_1 = input.LA(1);
+
+
+ int index83_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred28_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index83_1);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 83, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA87_eotS =
+ "\113\uffff";
+ static final String DFA87_eofS =
+ "\1\2\112\uffff";
+ static final String DFA87_minS =
+ "\1\4\1\0\111\uffff";
+ static final String DFA87_maxS =
+ "\1\142\1\0\111\uffff";
+ static final String DFA87_acceptS =
+ "\2\uffff\1\2\107\uffff\1\1";
+ static final String DFA87_specialS =
+ "\1\uffff\1\0\111\uffff}>";
+ static final String[] DFA87_transitionS = {
+ "\5\2\5\uffff\1\2\1\uffff\2\2\3\uffff\1\2\1\uffff\1\2\2\uffff"+
+ "\1\2\2\uffff\1\2\10\uffff\14\2\1\1\26\2\1\uffff\31\2",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA87_eot = DFA.unpackEncodedString(DFA87_eotS);
+ static final short[] DFA87_eof = DFA.unpackEncodedString(DFA87_eofS);
+ static final char[] DFA87_min = DFA.unpackEncodedStringToUnsignedChars(DFA87_minS);
+ static final char[] DFA87_max = DFA.unpackEncodedStringToUnsignedChars(DFA87_maxS);
+ static final short[] DFA87_accept = DFA.unpackEncodedString(DFA87_acceptS);
+ static final short[] DFA87_special = DFA.unpackEncodedString(DFA87_specialS);
+ static final short[][] DFA87_transition;
+
+ static {
+ int numStates = DFA87_transitionS.length;
+ DFA87_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA87_transition[i] = DFA.unpackEncodedString(DFA87_transitionS[i]);
+ }
+ }
+
+ class DFA87 extends DFA {
+
+ public DFA87(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 87;
+ this.eot = DFA87_eot;
+ this.eof = DFA87_eof;
+ this.min = DFA87_min;
+ this.max = DFA87_max;
+ this.accept = DFA87_accept;
+ this.special = DFA87_special;
+ this.transition = DFA87_transition;
+ }
+ public String getDescription() {
+ return "5243:2: ( ( ( '<' )=>otherlv_3= '<' ) ( (lv_typeArguments_4_0= ruleJvmArgumentTypeReference ) ) (otherlv_5= ',' ( (lv_typeArguments_6_0= ruleJvmArgumentTypeReference ) ) )* otherlv_7= '>' )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA87_1 = input.LA(1);
+
+
+ int index87_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred29_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index87_1);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 87, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA90_eotS =
+ "\113\uffff";
+ static final String DFA90_eofS =
+ "\1\2\112\uffff";
+ static final String DFA90_minS =
+ "\1\4\1\0\111\uffff";
+ static final String DFA90_maxS =
+ "\1\142\1\0\111\uffff";
+ static final String DFA90_acceptS =
+ "\2\uffff\1\2\107\uffff\1\1";
+ static final String DFA90_specialS =
+ "\1\uffff\1\0\111\uffff}>";
+ static final String[] DFA90_transitionS = {
+ "\5\2\5\uffff\1\2\1\uffff\2\2\3\uffff\1\2\1\uffff\1\2\2\uffff"+
+ "\1\2\2\uffff\1\2\10\uffff\36\2\1\1\4\2\1\uffff\31\2",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA90_eot = DFA.unpackEncodedString(DFA90_eotS);
+ static final short[] DFA90_eof = DFA.unpackEncodedString(DFA90_eofS);
+ static final char[] DFA90_min = DFA.unpackEncodedStringToUnsignedChars(DFA90_minS);
+ static final char[] DFA90_max = DFA.unpackEncodedStringToUnsignedChars(DFA90_maxS);
+ static final short[] DFA90_accept = DFA.unpackEncodedString(DFA90_acceptS);
+ static final short[] DFA90_special = DFA.unpackEncodedString(DFA90_specialS);
+ static final short[][] DFA90_transition;
+
+ static {
+ int numStates = DFA90_transitionS.length;
+ DFA90_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA90_transition[i] = DFA.unpackEncodedString(DFA90_transitionS[i]);
+ }
+ }
+
+ class DFA90 extends DFA {
+
+ public DFA90(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 90;
+ this.eot = DFA90_eot;
+ this.eof = DFA90_eof;
+ this.min = DFA90_min;
+ this.max = DFA90_max;
+ this.accept = DFA90_accept;
+ this.special = DFA90_special;
+ this.transition = DFA90_transition;
+ }
+ public String getDescription() {
+ return "5292:3: ( ( ( '(' )=>otherlv_8= '(' ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )? otherlv_13= ')' )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA90_1 = input.LA(1);
+
+
+ int index90_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred30_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index90_1);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 90, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA89_eotS =
+ "\43\uffff";
+ static final String DFA89_eofS =
+ "\43\uffff";
+ static final String DFA89_minS =
+ "\1\4\2\0\40\uffff";
+ static final String DFA89_maxS =
+ "\1\140\2\0\40\uffff";
+ static final String DFA89_acceptS =
+ "\3\uffff\2\1\1\2\34\uffff\1\3";
+ static final String DFA89_specialS =
+ "\1\0\1\1\1\2\40\uffff}>";
+ static final String[] DFA89_transitionS = {
+ "\1\1\4\5\5\uffff\1\5\2\uffff\1\5\40\uffff\1\5\2\uffff\1\3\3"+
+ "\uffff\2\5\4\uffff\1\5\4\uffff\1\2\1\42\2\5\1\uffff\1\4\1\uffff"+
+ "\1\5\1\uffff\1\5\2\uffff\3\5\2\uffff\14\5",
+ "\1\uffff",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA89_eot = DFA.unpackEncodedString(DFA89_eotS);
+ static final short[] DFA89_eof = DFA.unpackEncodedString(DFA89_eofS);
+ static final char[] DFA89_min = DFA.unpackEncodedStringToUnsignedChars(DFA89_minS);
+ static final char[] DFA89_max = DFA.unpackEncodedStringToUnsignedChars(DFA89_maxS);
+ static final short[] DFA89_accept = DFA.unpackEncodedString(DFA89_acceptS);
+ static final short[] DFA89_special = DFA.unpackEncodedString(DFA89_specialS);
+ static final short[][] DFA89_transition;
+
+ static {
+ int numStates = DFA89_transitionS.length;
+ DFA89_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA89_transition[i] = DFA.unpackEncodedString(DFA89_transitionS[i]);
+ }
+ }
+
+ class DFA89 extends DFA {
+
+ public DFA89(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 89;
+ this.eot = DFA89_eot;
+ this.eof = DFA89_eof;
+ this.min = DFA89_min;
+ this.max = DFA89_max;
+ this.accept = DFA89_accept;
+ this.special = DFA89_special;
+ this.transition = DFA89_transition;
+ }
+ public String getDescription() {
+ return "5297:2: ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_arguments_9_0= ruleXShortClosure ) ) | ( ( (lv_arguments_10_0= ruleXExpression ) ) (otherlv_11= ',' ( (lv_arguments_12_0= ruleXExpression ) ) )* ) )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA89_0 = input.LA(1);
+
+
+ int index89_0 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA89_0==RULE_ID) ) {s = 1;}
+
+ else if ( (LA89_0==68) ) {s = 2;}
+
+ else if ( (LA89_0==53) && (synpred31_InternalEmfParsleyDsl())) {s = 3;}
+
+ else if ( (LA89_0==73) && (synpred31_InternalEmfParsleyDsl())) {s = 4;}
+
+ else if ( ((LA89_0>=RULE_STRING && LA89_0<=RULE_DECIMAL)||LA89_0==14||LA89_0==17||LA89_0==50||(LA89_0>=57 && LA89_0<=58)||LA89_0==63||(LA89_0>=70 && LA89_0<=71)||LA89_0==75||LA89_0==77||(LA89_0>=80 && LA89_0<=82)||(LA89_0>=85 && LA89_0<=96)) ) {s = 5;}
+
+ else if ( (LA89_0==69) ) {s = 34;}
+
+
+ input.seek(index89_0);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA89_1 = input.LA(1);
+
+
+ int index89_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred31_InternalEmfParsleyDsl()) ) {s = 4;}
+
+ else if ( (true) ) {s = 5;}
+
+
+ input.seek(index89_1);
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA89_2 = input.LA(1);
+
+
+ int index89_2 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred31_InternalEmfParsleyDsl()) ) {s = 4;}
+
+ else if ( (true) ) {s = 5;}
+
+
+ input.seek(index89_2);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 89, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA91_eotS =
+ "\113\uffff";
+ static final String DFA91_eofS =
+ "\1\2\112\uffff";
+ static final String DFA91_minS =
+ "\1\4\1\0\111\uffff";
+ static final String DFA91_maxS =
+ "\1\142\1\0\111\uffff";
+ static final String DFA91_acceptS =
+ "\2\uffff\1\2\107\uffff\1\1";
+ static final String DFA91_specialS =
+ "\1\uffff\1\0\111\uffff}>";
+ static final String[] DFA91_transitionS = {
+ "\5\2\5\uffff\1\2\1\uffff\2\2\3\uffff\1\2\1\uffff\1\2\2\uffff"+
+ "\1\2\2\uffff\1\2\10\uffff\41\2\1\1\1\2\1\uffff\31\2",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA91_eot = DFA.unpackEncodedString(DFA91_eotS);
+ static final short[] DFA91_eof = DFA.unpackEncodedString(DFA91_eofS);
+ static final char[] DFA91_min = DFA.unpackEncodedStringToUnsignedChars(DFA91_minS);
+ static final char[] DFA91_max = DFA.unpackEncodedStringToUnsignedChars(DFA91_maxS);
+ static final short[] DFA91_accept = DFA.unpackEncodedString(DFA91_acceptS);
+ static final short[] DFA91_special = DFA.unpackEncodedString(DFA91_specialS);
+ static final short[][] DFA91_transition;
+
+ static {
+ int numStates = DFA91_transitionS.length;
+ DFA91_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA91_transition[i] = DFA.unpackEncodedString(DFA91_transitionS[i]);
+ }
+ }
+
+ class DFA91 extends DFA {
+
+ public DFA91(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 91;
+ this.eot = DFA91_eot;
+ this.eof = DFA91_eof;
+ this.min = DFA91_min;
+ this.max = DFA91_max;
+ this.accept = DFA91_accept;
+ this.special = DFA91_special;
+ this.transition = DFA91_transition;
+ }
+ public String getDescription() {
+ return "5376:3: ( ( ( () '[' ) )=> (lv_arguments_14_0= ruleXClosure ) )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA91_1 = input.LA(1);
+
+
+ int index91_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred32_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index91_1);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 91, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA94_eotS =
+ "\113\uffff";
+ static final String DFA94_eofS =
+ "\1\40\112\uffff";
+ static final String DFA94_minS =
+ "\1\4\37\0\53\uffff";
+ static final String DFA94_maxS =
+ "\1\142\37\0\53\uffff";
+ static final String DFA94_acceptS =
+ "\40\uffff\1\2\51\uffff\1\1";
+ static final String DFA94_specialS =
+ "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+
+ "\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31"+
+ "\1\32\1\33\1\34\1\35\1\36\53\uffff}>";
+ static final String[] DFA94_transitionS = {
+ "\1\1\1\26\1\22\1\23\1\24\5\uffff\1\12\1\uffff\1\40\1\2\3\uffff"+
+ "\1\40\1\uffff\1\40\2\uffff\1\40\2\uffff\1\40\10\uffff\14\40"+
+ "\1\14\6\40\1\10\1\7\4\40\1\6\4\40\1\37\1\40\1\16\1\17\1\40\1"+
+ "\uffff\1\40\1\30\1\40\1\13\2\40\1\31\1\32\1\33\2\40\1\3\1\4"+
+ "\1\5\1\15\1\11\1\20\1\21\1\25\1\27\1\34\1\35\1\36\2\40",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA94_eot = DFA.unpackEncodedString(DFA94_eotS);
+ static final short[] DFA94_eof = DFA.unpackEncodedString(DFA94_eofS);
+ static final char[] DFA94_min = DFA.unpackEncodedStringToUnsignedChars(DFA94_minS);
+ static final char[] DFA94_max = DFA.unpackEncodedStringToUnsignedChars(DFA94_maxS);
+ static final short[] DFA94_accept = DFA.unpackEncodedString(DFA94_acceptS);
+ static final short[] DFA94_special = DFA.unpackEncodedString(DFA94_specialS);
+ static final short[][] DFA94_transition;
+
+ static {
+ int numStates = DFA94_transitionS.length;
+ DFA94_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA94_transition[i] = DFA.unpackEncodedString(DFA94_transitionS[i]);
+ }
+ }
+
+ class DFA94 extends DFA {
+
+ public DFA94(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 94;
+ this.eot = DFA94_eot;
+ this.eof = DFA94_eof;
+ this.min = DFA94_min;
+ this.max = DFA94_max;
+ this.accept = DFA94_accept;
+ this.special = DFA94_special;
+ this.transition = DFA94_transition;
+ }
+ public String getDescription() {
+ return "5716:1: ( ( ( ruleXExpression ) )=> (lv_expression_2_0= ruleXExpression ) )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA94_1 = input.LA(1);
+
+
+ int index94_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_1);
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA94_2 = input.LA(1);
+
+
+ int index94_2 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_2);
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA94_3 = input.LA(1);
+
+
+ int index94_3 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_3);
+ if ( s>=0 ) return s;
+ break;
+ case 3 :
+ int LA94_4 = input.LA(1);
+
+
+ int index94_4 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_4);
+ if ( s>=0 ) return s;
+ break;
+ case 4 :
+ int LA94_5 = input.LA(1);
+
+
+ int index94_5 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_5);
+ if ( s>=0 ) return s;
+ break;
+ case 5 :
+ int LA94_6 = input.LA(1);
+
+
+ int index94_6 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_6);
+ if ( s>=0 ) return s;
+ break;
+ case 6 :
+ int LA94_7 = input.LA(1);
+
+
+ int index94_7 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_7);
+ if ( s>=0 ) return s;
+ break;
+ case 7 :
+ int LA94_8 = input.LA(1);
+
+
+ int index94_8 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_8);
+ if ( s>=0 ) return s;
+ break;
+ case 8 :
+ int LA94_9 = input.LA(1);
+
+
+ int index94_9 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_9);
+ if ( s>=0 ) return s;
+ break;
+ case 9 :
+ int LA94_10 = input.LA(1);
+
+
+ int index94_10 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_10);
+ if ( s>=0 ) return s;
+ break;
+ case 10 :
+ int LA94_11 = input.LA(1);
+
+
+ int index94_11 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_11);
+ if ( s>=0 ) return s;
+ break;
+ case 11 :
+ int LA94_12 = input.LA(1);
+
+
+ int index94_12 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_12);
+ if ( s>=0 ) return s;
+ break;
+ case 12 :
+ int LA94_13 = input.LA(1);
+
+
+ int index94_13 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_13);
+ if ( s>=0 ) return s;
+ break;
+ case 13 :
+ int LA94_14 = input.LA(1);
+
+
+ int index94_14 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_14);
+ if ( s>=0 ) return s;
+ break;
+ case 14 :
+ int LA94_15 = input.LA(1);
+
+
+ int index94_15 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_15);
+ if ( s>=0 ) return s;
+ break;
+ case 15 :
+ int LA94_16 = input.LA(1);
+
+
+ int index94_16 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_16);
+ if ( s>=0 ) return s;
+ break;
+ case 16 :
+ int LA94_17 = input.LA(1);
+
+
+ int index94_17 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_17);
+ if ( s>=0 ) return s;
+ break;
+ case 17 :
+ int LA94_18 = input.LA(1);
+
+
+ int index94_18 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_18);
+ if ( s>=0 ) return s;
+ break;
+ case 18 :
+ int LA94_19 = input.LA(1);
+
+
+ int index94_19 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_19);
+ if ( s>=0 ) return s;
+ break;
+ case 19 :
+ int LA94_20 = input.LA(1);
+
+
+ int index94_20 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_20);
+ if ( s>=0 ) return s;
+ break;
+ case 20 :
+ int LA94_21 = input.LA(1);
+
+
+ int index94_21 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_21);
+ if ( s>=0 ) return s;
+ break;
+ case 21 :
+ int LA94_22 = input.LA(1);
+
+
+ int index94_22 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_22);
+ if ( s>=0 ) return s;
+ break;
+ case 22 :
+ int LA94_23 = input.LA(1);
+
+
+ int index94_23 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_23);
+ if ( s>=0 ) return s;
+ break;
+ case 23 :
+ int LA94_24 = input.LA(1);
+
+
+ int index94_24 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_24);
+ if ( s>=0 ) return s;
+ break;
+ case 24 :
+ int LA94_25 = input.LA(1);
+
+
+ int index94_25 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_25);
+ if ( s>=0 ) return s;
+ break;
+ case 25 :
+ int LA94_26 = input.LA(1);
+
+
+ int index94_26 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_26);
+ if ( s>=0 ) return s;
+ break;
+ case 26 :
+ int LA94_27 = input.LA(1);
+
+
+ int index94_27 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_27);
+ if ( s>=0 ) return s;
+ break;
+ case 27 :
+ int LA94_28 = input.LA(1);
+
+
+ int index94_28 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_28);
+ if ( s>=0 ) return s;
+ break;
+ case 28 :
+ int LA94_29 = input.LA(1);
+
+
+ int index94_29 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_29);
+ if ( s>=0 ) return s;
+ break;
+ case 29 :
+ int LA94_30 = input.LA(1);
+
+
+ int index94_30 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_30);
+ if ( s>=0 ) return s;
+ break;
+ case 30 :
+ int LA94_31 = input.LA(1);
+
+
+ int index94_31 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred33_InternalEmfParsleyDsl()) ) {s = 74;}
+
+ else if ( (true) ) {s = 32;}
+
+
+ input.seek(index94_31);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 94, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA109_eotS =
+ "\114\uffff";
+ static final String DFA109_eofS =
+ "\1\2\113\uffff";
+ static final String DFA109_minS =
+ "\1\4\1\0\112\uffff";
+ static final String DFA109_maxS =
+ "\1\142\1\0\112\uffff";
+ static final String DFA109_acceptS =
+ "\2\uffff\1\2\110\uffff\1\1";
+ static final String DFA109_specialS =
+ "\1\uffff\1\0\112\uffff}>";
+ static final String[] DFA109_transitionS = {
+ "\5\2\5\uffff\1\2\1\uffff\2\2\3\uffff\1\2\1\uffff\1\2\2\uffff"+
+ "\1\2\2\uffff\1\2\6\uffff\1\2\1\uffff\14\2\1\1\26\2\1\uffff\31"+
+ "\2",
+ "\1\uffff",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+
+ static final short[] DFA109_eot = DFA.unpackEncodedString(DFA109_eotS);
+ static final short[] DFA109_eof = DFA.unpackEncodedString(DFA109_eofS);
+ static final char[] DFA109_min = DFA.unpackEncodedStringToUnsignedChars(DFA109_minS);
+ static final char[] DFA109_max = DFA.unpackEncodedStringToUnsignedChars(DFA109_maxS);
+ static final short[] DFA109_accept = DFA.unpackEncodedString(DFA109_acceptS);
+ static final short[] DFA109_special = DFA.unpackEncodedString(DFA109_specialS);
+ static final short[][] DFA109_transition;
+
+ static {
+ int numStates = DFA109_transitionS.length;
+ DFA109_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA109_transition[i] = DFA.unpackEncodedString(DFA109_transitionS[i]);
+ }
+ }
+
+ class DFA109 extends DFA {
+
+ public DFA109(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 109;
+ this.eot = DFA109_eot;
+ this.eof = DFA109_eof;
+ this.min = DFA109_min;
+ this.max = DFA109_max;
+ this.accept = DFA109_accept;
+ this.special = DFA109_special;
+ this.transition = DFA109_transition;
+ }
+ public String getDescription() {
+ return "6265:2: ( ( ( '<' )=>otherlv_1= '<' ) ( (lv_arguments_2_0= ruleJvmArgumentTypeReference ) ) (otherlv_3= ',' ( (lv_arguments_4_0= ruleJvmArgumentTypeReference ) ) )* otherlv_5= '>' )?";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ TokenStream input = (TokenStream)_input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA109_1 = input.LA(1);
+
+
+ int index109_1 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred39_InternalEmfParsleyDsl()) ) {s = 75;}
+
+ else if ( (true) ) {s = 2;}
+
+
+ input.seek(index109_1);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (state.backtracking>0) {state.failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 109, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+ static final String DFA114_eotS =
+ "\7\uffff";
+ static final String DFA114_eofS =
+ "\2\uffff\1\4\2\uffff\1\4\1\uffff";
+ static final String DFA114_minS =
+ "\1\4\1\uffff\1\15\1\4\1\uffff\1\15\1\uffff";
+ static final String DFA114_maxS =
+ "\1\125\1\uffff\1\126\1\73\1\uffff\1\126\1\uffff";
+ static final String DFA114_acceptS =
+ "\1\uffff\1\1\2\uffff\1\2\1\uffff\1\3";
+ static final String DFA114_specialS =
+ "\7\uffff}>";
+ static final String[] DFA114_transitionS = {
+ "\1\2\120\uffff\1\1",
+ "",
+ "\1\4\63\uffff\1\3\10\uffff\1\4\13\uffff\1\4",
+ "\1\5\66\uffff\1\6",
+ "",
+ "\1\4\63\uffff\1\3\10\uffff\1\4\13\uffff\1\4",
+ ""
+ };
+
+ static final short[] DFA114_eot = DFA.unpackEncodedString(DFA114_eotS);
+ static final short[] DFA114_eof = DFA.unpackEncodedString(DFA114_eofS);
+ static final char[] DFA114_min = DFA.unpackEncodedStringToUnsignedChars(DFA114_minS);
+ static final char[] DFA114_max = DFA.unpackEncodedStringToUnsignedChars(DFA114_maxS);
+ static final short[] DFA114_accept = DFA.unpackEncodedString(DFA114_acceptS);
+ static final short[] DFA114_special = DFA.unpackEncodedString(DFA114_specialS);
+ static final short[][] DFA114_transition;
+
+ static {
+ int numStates = DFA114_transitionS.length;
+ DFA114_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA114_transition[i] = DFA.unpackEncodedString(DFA114_transitionS[i]);
+ }
+ }
+
+ class DFA114 extends DFA {
+
+ public DFA114(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 114;
+ this.eot = DFA114_eot;
+ this.eof = DFA114_eof;
+ this.min = DFA114_min;
+ this.max = DFA114_max;
+ this.accept = DFA114_accept;
+ this.special = DFA114_special;
+ this.transition = DFA114_transition;
+ }
+ public String getDescription() {
+ return "6689:1: ( ( ( (lv_static_1_0= 'static' ) ) ( (lv_extension_2_0= 'extension' ) )? ( ( ruleQualifiedName ) ) otherlv_4= '.' otherlv_5= '*' ) | ( ( ruleQualifiedName ) ) | ( (lv_importedNamespace_7_0= ruleQualifiedNameWithWildcard ) ) )";
+ }
+ }
+
+
+ public static final BitSet FOLLOW_ruleModel_in_entryRuleModel75 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleModel85 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXImportSection_in_ruleModel131 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_ruleModule_in_ruleModel153 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleModule_in_entryRuleModule189 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleModule199 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_13_in_ruleModule236 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_ruleModule257 = new BitSet(new long[]{0x0000000000024000L});
+ public static final BitSet FOLLOW_ruleExtendsClause_in_ruleModule278 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleModule291 = new BitSet(new long[]{0x00000000C9458000L});
+ public static final BitSet FOLLOW_ruleLabelProvider_in_ruleModule357 = new BitSet(new long[]{0x00000000C9458000L});
+ public static final BitSet FOLLOW_rulePropertyDescriptionProvider_in_ruleModule432 = new BitSet(new long[]{0x00000000C9458000L});
+ public static final BitSet FOLLOW_ruleFeaturesProvider_in_ruleModule507 = new BitSet(new long[]{0x00000000C9458000L});
+ public static final BitSet FOLLOW_ruleFormControlFactory_in_ruleModule582 = new BitSet(new long[]{0x00000000C9458000L});
+ public static final BitSet FOLLOW_ruleProposalCreator_in_ruleModule657 = new BitSet(new long[]{0x00000000C9458000L});
+ public static final BitSet FOLLOW_ruleViewerContentProvider_in_ruleModule732 = new BitSet(new long[]{0x00000000C9458000L});
+ public static final BitSet FOLLOW_15_in_ruleModule799 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleModule811 = new BitSet(new long[]{0x0000000200010000L});
+ public static final BitSet FOLLOW_rulePartSpecification_in_ruleModule832 = new BitSet(new long[]{0x0000000200010000L});
+ public static final BitSet FOLLOW_16_in_ruleModule845 = new BitSet(new long[]{0x00000000C9458000L});
+ public static final BitSet FOLLOW_16_in_ruleModule898 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleExtendsClause_in_entryRuleExtendsClause934 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleExtendsClause944 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_17_in_ruleExtendsClause981 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleExtendsClause1002 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLabelProvider_in_entryRuleLabelProvider1038 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleLabelProvider1048 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_18_in_ruleLabelProvider1094 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleLabelProvider1106 = new BitSet(new long[]{0x0000000000190000L});
+ public static final BitSet FOLLOW_19_in_ruleLabelProvider1164 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleLabelProvider1176 = new BitSet(new long[]{0x0020000000010010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleLabelSpecification_in_ruleLabelProvider1197 = new BitSet(new long[]{0x0020000000010010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_16_in_ruleLabelProvider1210 = new BitSet(new long[]{0x0000000000190000L});
+ public static final BitSet FOLLOW_20_in_ruleLabelProvider1278 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleLabelProvider1290 = new BitSet(new long[]{0x0020000000010010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleLabelSpecification_in_ruleLabelProvider1311 = new BitSet(new long[]{0x0020000000010010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_16_in_ruleLabelProvider1324 = new BitSet(new long[]{0x0000000000190000L});
+ public static final BitSet FOLLOW_16_in_ruleLabelProvider1377 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleLabelSpecification_in_entryRuleLabelSpecification1413 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleLabelSpecification1423 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleLabelSpecification1469 = new BitSet(new long[]{0x0000000000200010L});
+ public static final BitSet FOLLOW_ruleValidID_in_ruleLabelSpecification1490 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_21_in_ruleLabelSpecification1503 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleLabelSpecification1524 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulePropertyDescriptionProvider_in_entryRulePropertyDescriptionProvider1560 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRulePropertyDescriptionProvider1570 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_22_in_rulePropertyDescriptionProvider1616 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_rulePropertyDescriptionProvider1628 = new BitSet(new long[]{0x0000000000090000L});
+ public static final BitSet FOLLOW_19_in_rulePropertyDescriptionProvider1641 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_rulePropertyDescriptionProvider1653 = new BitSet(new long[]{0x0020000000010010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_rulePropertyDescriptionSpecification_in_rulePropertyDescriptionProvider1674 = new BitSet(new long[]{0x0020000000010010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_16_in_rulePropertyDescriptionProvider1687 = new BitSet(new long[]{0x0000000000010000L});
+ public static final BitSet FOLLOW_16_in_rulePropertyDescriptionProvider1701 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulePropertyDescriptionSpecification_in_entryRulePropertyDescriptionSpecification1737 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRulePropertyDescriptionSpecification1747 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_rulePropertyDescriptionSpecification1793 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_23_in_rulePropertyDescriptionSpecification1805 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_rulePropertyDescriptionSpecification1825 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_21_in_rulePropertyDescriptionSpecification1837 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_rulePropertyDescriptionSpecification1858 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFeaturesProvider_in_entryRuleFeaturesProvider1894 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleFeaturesProvider1904 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_24_in_ruleFeaturesProvider1950 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleFeaturesProvider1962 = new BitSet(new long[]{0x0000000002010000L});
+ public static final BitSet FOLLOW_25_in_ruleFeaturesProvider1975 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleFeaturesProvider1987 = new BitSet(new long[]{0x0020000000010010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleFeatureSpecification_in_ruleFeaturesProvider2008 = new BitSet(new long[]{0x0020000000010010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_16_in_ruleFeaturesProvider2021 = new BitSet(new long[]{0x0000000000010000L});
+ public static final BitSet FOLLOW_16_in_ruleFeaturesProvider2035 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFeatureSpecification_in_entryRuleFeatureSpecification2071 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleFeatureSpecification2081 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleFeatureSpecification2127 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_21_in_ruleFeatureSpecification2139 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleFeatureSpecification2159 = new BitSet(new long[]{0x0000000004000002L});
+ public static final BitSet FOLLOW_26_in_ruleFeatureSpecification2172 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleFeatureSpecification2192 = new BitSet(new long[]{0x0000000004000002L});
+ public static final BitSet FOLLOW_ruleFormControlFactory_in_entryRuleFormControlFactory2230 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleFormControlFactory2240 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_27_in_ruleFormControlFactory2286 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleFormControlFactory2298 = new BitSet(new long[]{0x0000000010010000L});
+ public static final BitSet FOLLOW_28_in_ruleFormControlFactory2311 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleFormControlFactory2323 = new BitSet(new long[]{0x0020000000010010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleFormControlSpecification_in_ruleFormControlFactory2344 = new BitSet(new long[]{0x0020000000010010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_16_in_ruleFormControlFactory2357 = new BitSet(new long[]{0x0000000000010000L});
+ public static final BitSet FOLLOW_16_in_ruleFormControlFactory2371 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFormControlSpecification_in_entryRuleFormControlSpecification2407 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleFormControlSpecification2417 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleFormControlSpecification2463 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_23_in_ruleFormControlSpecification2475 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleFormControlSpecification2495 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_21_in_ruleFormControlSpecification2507 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleFormControlSpecification2528 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_29_in_ruleFormControlSpecification2541 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleFormControlSpecification2562 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleProposalCreator_in_entryRuleProposalCreator2600 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleProposalCreator2610 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_30_in_ruleProposalCreator2656 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleProposalCreator2668 = new BitSet(new long[]{0x0020000000010010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleProposalSpecification_in_ruleProposalCreator2689 = new BitSet(new long[]{0x0020000000010010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_16_in_ruleProposalCreator2702 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleProposalSpecification_in_entryRuleProposalSpecification2738 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleProposalSpecification2748 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleProposalSpecification2794 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_23_in_ruleProposalSpecification2806 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleProposalSpecification2826 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_21_in_ruleProposalSpecification2838 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleProposalSpecification2859 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleViewerContentProvider_in_entryRuleViewerContentProvider2895 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleViewerContentProvider2905 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_31_in_ruleViewerContentProvider2951 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleViewerContentProvider2963 = new BitSet(new long[]{0x0000000100010000L});
+ public static final BitSet FOLLOW_32_in_ruleViewerContentProvider2976 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleViewerContentProvider2988 = new BitSet(new long[]{0x0020000000010010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleLabelSpecification_in_ruleViewerContentProvider3009 = new BitSet(new long[]{0x0020000000010010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_16_in_ruleViewerContentProvider3022 = new BitSet(new long[]{0x0000000000010000L});
+ public static final BitSet FOLLOW_16_in_ruleViewerContentProvider3036 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rulePartSpecification_in_entryRulePartSpecification3076 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRulePartSpecification3086 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleViewSpecification_in_rulePartSpecification3132 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleViewSpecification_in_entryRuleViewSpecification3166 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleViewSpecification3176 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_33_in_ruleViewSpecification3222 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_ruleViewSpecification3243 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleViewSpecification3255 = new BitSet(new long[]{0x0000000400000000L});
+ public static final BitSet FOLLOW_34_in_ruleViewSpecification3267 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleViewSpecification3284 = new BitSet(new long[]{0x0000000800000000L});
+ public static final BitSet FOLLOW_35_in_ruleViewSpecification3301 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleViewSpecification3322 = new BitSet(new long[]{0x0000001000010000L});
+ public static final BitSet FOLLOW_36_in_ruleViewSpecification3335 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_ruleViewSpecification3356 = new BitSet(new long[]{0x0000000000010000L});
+ public static final BitSet FOLLOW_16_in_ruleViewSpecification3370 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_entryRuleXExpression3406 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXExpression3416 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXAssignment_in_ruleXExpression3462 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXAssignment_in_entryRuleXAssignment3496 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXAssignment3506 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFeatureCallID_in_ruleXAssignment3564 = new BitSet(new long[]{0x0000002000000000L});
+ public static final BitSet FOLLOW_ruleOpSingleAssign_in_ruleXAssignment3580 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXAssignment_in_ruleXAssignment3600 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXOrExpression_in_ruleXAssignment3630 = new BitSet(new long[]{0x000000C000000002L});
+ public static final BitSet FOLLOW_ruleOpMultiAssign_in_ruleXAssignment3683 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXAssignment_in_ruleXAssignment3706 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpSingleAssign_in_entryRuleOpSingleAssign3746 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpSingleAssign3757 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_37_in_ruleOpSingleAssign3794 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpMultiAssign_in_entryRuleOpMultiAssign3834 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpMultiAssign3845 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_38_in_ruleOpMultiAssign3883 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_39_in_ruleOpMultiAssign3902 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXOrExpression_in_entryRuleXOrExpression3942 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXOrExpression3952 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXAndExpression_in_ruleXOrExpression3999 = new BitSet(new long[]{0x0000010000000002L});
+ public static final BitSet FOLLOW_ruleOpOr_in_ruleXOrExpression4052 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXAndExpression_in_ruleXOrExpression4075 = new BitSet(new long[]{0x0000010000000002L});
+ public static final BitSet FOLLOW_ruleOpOr_in_entryRuleOpOr4114 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpOr4125 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_40_in_ruleOpOr4162 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXAndExpression_in_entryRuleXAndExpression4201 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXAndExpression4211 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXEqualityExpression_in_ruleXAndExpression4258 = new BitSet(new long[]{0x0000020000000002L});
+ public static final BitSet FOLLOW_ruleOpAnd_in_ruleXAndExpression4311 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXEqualityExpression_in_ruleXAndExpression4334 = new BitSet(new long[]{0x0000020000000002L});
+ public static final BitSet FOLLOW_ruleOpAnd_in_entryRuleOpAnd4373 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpAnd4384 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_41_in_ruleOpAnd4421 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXEqualityExpression_in_entryRuleXEqualityExpression4460 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXEqualityExpression4470 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXRelationalExpression_in_ruleXEqualityExpression4517 = new BitSet(new long[]{0x00003C0000000002L});
+ public static final BitSet FOLLOW_ruleOpEquality_in_ruleXEqualityExpression4570 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXRelationalExpression_in_ruleXEqualityExpression4593 = new BitSet(new long[]{0x00003C0000000002L});
+ public static final BitSet FOLLOW_ruleOpEquality_in_entryRuleOpEquality4632 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpEquality4643 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_42_in_ruleOpEquality4681 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_43_in_ruleOpEquality4700 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_44_in_ruleOpEquality4719 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_45_in_ruleOpEquality4738 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXRelationalExpression_in_entryRuleXRelationalExpression4778 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXRelationalExpression4788 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXOtherOperatorExpression_in_ruleXRelationalExpression4835 = new BitSet(new long[]{0x0007C00000000002L});
+ public static final BitSet FOLLOW_46_in_ruleXRelationalExpression4871 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleXRelationalExpression4894 = new BitSet(new long[]{0x0007C00000000002L});
+ public static final BitSet FOLLOW_ruleOpCompare_in_ruleXRelationalExpression4955 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXOtherOperatorExpression_in_ruleXRelationalExpression4978 = new BitSet(new long[]{0x0007C00000000002L});
+ public static final BitSet FOLLOW_ruleOpCompare_in_entryRuleOpCompare5018 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpCompare5029 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_47_in_ruleOpCompare5067 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_48_in_ruleOpCompare5086 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_ruleOpCompare5105 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_ruleOpCompare5124 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXOtherOperatorExpression_in_entryRuleXOtherOperatorExpression5164 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXOtherOperatorExpression5174 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXAdditiveExpression_in_ruleXOtherOperatorExpression5221 = new BitSet(new long[]{0x01FE000000200002L});
+ public static final BitSet FOLLOW_ruleOpOther_in_ruleXOtherOperatorExpression5274 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXAdditiveExpression_in_ruleXOtherOperatorExpression5297 = new BitSet(new long[]{0x01FE000000200002L});
+ public static final BitSet FOLLOW_ruleOpOther_in_entryRuleOpOther5336 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpOther5347 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_21_in_ruleOpOther5385 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_51_in_ruleOpOther5404 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_ruleOpOther5424 = new BitSet(new long[]{0x0010000000000000L});
+ public static final BitSet FOLLOW_52_in_ruleOpOther5437 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_52_in_ruleOpOther5457 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_53_in_ruleOpOther5476 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_ruleOpOther5496 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_49_in_ruleOpOther5527 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_49_in_ruleOpOther5540 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_ruleOpOther5561 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_ruleOpOther5583 = new BitSet(new long[]{0x0004000000000000L});
+ public static final BitSet FOLLOW_50_in_ruleOpOther5614 = new BitSet(new long[]{0x0004000000000000L});
+ public static final BitSet FOLLOW_50_in_ruleOpOther5627 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_ruleOpOther5648 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_54_in_ruleOpOther5669 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_55_in_ruleOpOther5688 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_56_in_ruleOpOther5707 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXAdditiveExpression_in_entryRuleXAdditiveExpression5747 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXAdditiveExpression5757 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXMultiplicativeExpression_in_ruleXAdditiveExpression5804 = new BitSet(new long[]{0x0600000000000002L});
+ public static final BitSet FOLLOW_ruleOpAdd_in_ruleXAdditiveExpression5857 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXMultiplicativeExpression_in_ruleXAdditiveExpression5880 = new BitSet(new long[]{0x0600000000000002L});
+ public static final BitSet FOLLOW_ruleOpAdd_in_entryRuleOpAdd5919 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpAdd5930 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_57_in_ruleOpAdd5968 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_58_in_ruleOpAdd5987 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXMultiplicativeExpression_in_entryRuleXMultiplicativeExpression6027 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXMultiplicativeExpression6037 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXUnaryOperation_in_ruleXMultiplicativeExpression6084 = new BitSet(new long[]{0x7800000000000002L});
+ public static final BitSet FOLLOW_ruleOpMulti_in_ruleXMultiplicativeExpression6137 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXUnaryOperation_in_ruleXMultiplicativeExpression6160 = new BitSet(new long[]{0x7800000000000002L});
+ public static final BitSet FOLLOW_ruleOpMulti_in_entryRuleOpMulti6199 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpMulti6210 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_59_in_ruleOpMulti6248 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_60_in_ruleOpMulti6267 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_61_in_ruleOpMulti6286 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_62_in_ruleOpMulti6305 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXUnaryOperation_in_entryRuleXUnaryOperation6345 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXUnaryOperation6355 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpUnary_in_ruleXUnaryOperation6413 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXUnaryOperation_in_ruleXUnaryOperation6434 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXCastedExpression_in_ruleXUnaryOperation6463 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpUnary_in_entryRuleOpUnary6499 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleOpUnary6510 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_63_in_ruleOpUnary6548 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_58_in_ruleOpUnary6567 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_57_in_ruleOpUnary6586 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXCastedExpression_in_entryRuleXCastedExpression6626 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXCastedExpression6636 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXMemberFeatureCall_in_ruleXCastedExpression6683 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000001L});
+ public static final BitSet FOLLOW_64_in_ruleXCastedExpression6718 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleXCastedExpression6741 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000001L});
+ public static final BitSet FOLLOW_ruleXMemberFeatureCall_in_entryRuleXMemberFeatureCall6779 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXMemberFeatureCall6789 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXPrimaryExpression_in_ruleXMemberFeatureCall6836 = new BitSet(new long[]{0x0000000000000002L,0x000000000000000EL});
+ public static final BitSet FOLLOW_65_in_ruleXMemberFeatureCall6908 = new BitSet(new long[]{0x0000000000020010L,0x0000000000E00000L});
+ public static final BitSet FOLLOW_66_in_ruleXMemberFeatureCall6932 = new BitSet(new long[]{0x0000000000020010L,0x0000000000E00000L});
+ public static final BitSet FOLLOW_ruleFeatureCallID_in_ruleXMemberFeatureCall6969 = new BitSet(new long[]{0x0000002000000000L});
+ public static final BitSet FOLLOW_ruleOpSingleAssign_in_ruleXMemberFeatureCall6985 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXAssignment_in_ruleXMemberFeatureCall7007 = new BitSet(new long[]{0x0000000000000002L,0x000000000000000EL});
+ public static final BitSet FOLLOW_65_in_ruleXMemberFeatureCall7093 = new BitSet(new long[]{0x0004000000020010L,0x0000000000E00000L});
+ public static final BitSet FOLLOW_67_in_ruleXMemberFeatureCall7117 = new BitSet(new long[]{0x0004000000020010L,0x0000000000E00000L});
+ public static final BitSet FOLLOW_66_in_ruleXMemberFeatureCall7154 = new BitSet(new long[]{0x0004000000020010L,0x0000000000E00000L});
+ public static final BitSet FOLLOW_50_in_ruleXMemberFeatureCall7183 = new BitSet(new long[]{0x0020000000000010L,0x0000000800000010L});
+ public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_ruleXMemberFeatureCall7204 = new BitSet(new long[]{0x0002000004000000L});
+ public static final BitSet FOLLOW_26_in_ruleXMemberFeatureCall7217 = new BitSet(new long[]{0x0020000000000010L,0x0000000800000010L});
+ public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_ruleXMemberFeatureCall7238 = new BitSet(new long[]{0x0002000004000000L});
+ public static final BitSet FOLLOW_49_in_ruleXMemberFeatureCall7252 = new BitSet(new long[]{0x0000000000020010L,0x0000000000E00000L});
+ public static final BitSet FOLLOW_ruleFeatureCallID_in_ruleXMemberFeatureCall7277 = new BitSet(new long[]{0x0000000000000002L,0x000000000000009EL});
+ public static final BitSet FOLLOW_68_in_ruleXMemberFeatureCall7311 = new BitSet(new long[]{0x86240000000241F0L,0x00000001FFE72AF0L});
+ public static final BitSet FOLLOW_ruleXShortClosure_in_ruleXMemberFeatureCall7396 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXMemberFeatureCall7424 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_26_in_ruleXMemberFeatureCall7437 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXMemberFeatureCall7458 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_69_in_ruleXMemberFeatureCall7475 = new BitSet(new long[]{0x0000000000000002L,0x000000000000008EL});
+ public static final BitSet FOLLOW_ruleXClosure_in_ruleXMemberFeatureCall7510 = new BitSet(new long[]{0x0000000000000002L,0x000000000000000EL});
+ public static final BitSet FOLLOW_ruleXPrimaryExpression_in_entryRuleXPrimaryExpression7550 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXPrimaryExpression7560 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXConstructorCall_in_ruleXPrimaryExpression7607 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXBlockExpression_in_ruleXPrimaryExpression7634 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXSwitchExpression_in_ruleXPrimaryExpression7661 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXFeatureCall_in_ruleXPrimaryExpression7688 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXLiteral_in_ruleXPrimaryExpression7715 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXIfExpression_in_ruleXPrimaryExpression7742 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXForLoopExpression_in_ruleXPrimaryExpression7769 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXWhileExpression_in_ruleXPrimaryExpression7796 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXDoWhileExpression_in_ruleXPrimaryExpression7823 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXThrowExpression_in_ruleXPrimaryExpression7850 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXReturnExpression_in_ruleXPrimaryExpression7877 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXTryCatchFinallyExpression_in_ruleXPrimaryExpression7904 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXParenthesizedExpression_in_ruleXPrimaryExpression7931 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXLiteral_in_entryRuleXLiteral7966 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXLiteral7976 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXCollectionLiteral_in_ruleXLiteral8023 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXClosure_in_ruleXLiteral8063 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXBooleanLiteral_in_ruleXLiteral8091 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXNumberLiteral_in_ruleXLiteral8118 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXNullLiteral_in_ruleXLiteral8145 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXStringLiteral_in_ruleXLiteral8172 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXTypeLiteral_in_ruleXLiteral8199 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXCollectionLiteral_in_entryRuleXCollectionLiteral8234 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXCollectionLiteral8244 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXSetLiteral_in_ruleXCollectionLiteral8291 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXListLiteral_in_ruleXCollectionLiteral8318 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXSetLiteral_in_entryRuleXSetLiteral8353 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXSetLiteral8363 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_70_in_ruleXSetLiteral8409 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleXSetLiteral8421 = new BitSet(new long[]{0x86040000000341F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXSetLiteral8443 = new BitSet(new long[]{0x0000000004010000L});
+ public static final BitSet FOLLOW_26_in_ruleXSetLiteral8456 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXSetLiteral8477 = new BitSet(new long[]{0x0000000004010000L});
+ public static final BitSet FOLLOW_16_in_ruleXSetLiteral8493 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXListLiteral_in_entryRuleXListLiteral8529 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXListLiteral8539 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_70_in_ruleXListLiteral8585 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
+ public static final BitSet FOLLOW_71_in_ruleXListLiteral8597 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE729D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXListLiteral8619 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_26_in_ruleXListLiteral8632 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXListLiteral8653 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_72_in_ruleXListLiteral8669 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXClosure_in_entryRuleXClosure8705 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXClosure8715 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_71_in_ruleXClosure8775 = new BitSet(new long[]{0x86240000000241F0L,0x00000001FFFF2BD0L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_ruleXClosure8848 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000200L});
+ public static final BitSet FOLLOW_26_in_ruleXClosure8861 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_ruleXClosure8882 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000200L});
+ public static final BitSet FOLLOW_73_in_ruleXClosure8904 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFFF29D0L});
+ public static final BitSet FOLLOW_ruleXExpressionInClosure_in_ruleXClosure8941 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_72_in_ruleXClosure8953 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpressionInClosure_in_entryRuleXExpressionInClosure8989 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXExpressionInClosure8999 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpressionInsideBlock_in_ruleXExpressionInClosure9055 = new BitSet(new long[]{0x86040000000241F2L,0x00000001FFFF2CD0L});
+ public static final BitSet FOLLOW_74_in_ruleXExpressionInClosure9068 = new BitSet(new long[]{0x86040000000241F2L,0x00000001FFFF28D0L});
+ public static final BitSet FOLLOW_ruleXShortClosure_in_entryRuleXShortClosure9108 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXShortClosure9118 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_ruleXShortClosure9226 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000200L});
+ public static final BitSet FOLLOW_26_in_ruleXShortClosure9239 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_ruleXShortClosure9260 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000200L});
+ public static final BitSet FOLLOW_73_in_ruleXShortClosure9282 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXShortClosure9318 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXParenthesizedExpression_in_entryRuleXParenthesizedExpression9354 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXParenthesizedExpression9364 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_68_in_ruleXParenthesizedExpression9401 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXParenthesizedExpression9423 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_69_in_ruleXParenthesizedExpression9434 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXIfExpression_in_entryRuleXIfExpression9470 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXIfExpression9480 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_75_in_ruleXIfExpression9526 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_ruleXIfExpression9538 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXIfExpression9559 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_69_in_ruleXIfExpression9571 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXIfExpression9592 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+ public static final BitSet FOLLOW_76_in_ruleXIfExpression9613 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXIfExpression9635 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXSwitchExpression_in_entryRuleXSwitchExpression9673 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXSwitchExpression9683 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_77_in_ruleXSwitchExpression9729 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleValidID_in_ruleXSwitchExpression9772 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_23_in_ruleXSwitchExpression9784 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXSwitchExpression9808 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_68_in_ruleXSwitchExpression9852 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleValidID_in_ruleXSwitchExpression9873 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_23_in_ruleXSwitchExpression9885 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXSwitchExpression9908 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_69_in_ruleXSwitchExpression9920 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleXSwitchExpression9934 = new BitSet(new long[]{0x0020000000800010L,0x0000000000008010L});
+ public static final BitSet FOLLOW_ruleXCasePart_in_ruleXSwitchExpression9955 = new BitSet(new long[]{0x0020000000810010L,0x000000000000C010L});
+ public static final BitSet FOLLOW_78_in_ruleXSwitchExpression9969 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_23_in_ruleXSwitchExpression9981 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXSwitchExpression10002 = new BitSet(new long[]{0x0000000000010000L});
+ public static final BitSet FOLLOW_16_in_ruleXSwitchExpression10016 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXCasePart_in_entryRuleXCasePart10052 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXCasePart10062 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleXCasePart10108 = new BitSet(new long[]{0x0000000000800000L,0x0000000000008000L});
+ public static final BitSet FOLLOW_79_in_ruleXCasePart10122 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXCasePart10143 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_23_in_ruleXCasePart10157 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXCasePart10178 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXForLoopExpression_in_entryRuleXForLoopExpression10214 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXForLoopExpression10224 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_80_in_ruleXForLoopExpression10270 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_ruleXForLoopExpression10282 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_ruleXForLoopExpression10303 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_23_in_ruleXForLoopExpression10315 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXForLoopExpression10336 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_69_in_ruleXForLoopExpression10348 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXForLoopExpression10369 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXWhileExpression_in_entryRuleXWhileExpression10405 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXWhileExpression10415 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_81_in_ruleXWhileExpression10461 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_ruleXWhileExpression10473 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXWhileExpression10494 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_69_in_ruleXWhileExpression10506 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXWhileExpression10527 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXDoWhileExpression_in_entryRuleXDoWhileExpression10563 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXDoWhileExpression10573 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_82_in_ruleXDoWhileExpression10619 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXDoWhileExpression10640 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
+ public static final BitSet FOLLOW_81_in_ruleXDoWhileExpression10652 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_ruleXDoWhileExpression10664 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXDoWhileExpression10685 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_69_in_ruleXDoWhileExpression10697 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXBlockExpression_in_entryRuleXBlockExpression10733 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXBlockExpression10743 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_14_in_ruleXBlockExpression10789 = new BitSet(new long[]{0x86040000000341F0L,0x00000001FFFF28D0L});
+ public static final BitSet FOLLOW_ruleXExpressionInsideBlock_in_ruleXBlockExpression10811 = new BitSet(new long[]{0x86040000000341F0L,0x00000001FFFF2CD0L});
+ public static final BitSet FOLLOW_74_in_ruleXBlockExpression10824 = new BitSet(new long[]{0x86040000000341F0L,0x00000001FFFF28D0L});
+ public static final BitSet FOLLOW_16_in_ruleXBlockExpression10840 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpressionInsideBlock_in_entryRuleXExpressionInsideBlock10876 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXExpressionInsideBlock10886 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXVariableDeclaration_in_ruleXExpressionInsideBlock10933 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXExpressionInsideBlock10960 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXVariableDeclaration_in_entryRuleXVariableDeclaration10995 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXVariableDeclaration11005 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_83_in_ruleXVariableDeclaration11058 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_84_in_ruleXVariableDeclaration11089 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleXVariableDeclaration11137 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleValidID_in_ruleXVariableDeclaration11158 = new BitSet(new long[]{0x0000002000000002L});
+ public static final BitSet FOLLOW_ruleValidID_in_ruleXVariableDeclaration11187 = new BitSet(new long[]{0x0000002000000002L});
+ public static final BitSet FOLLOW_37_in_ruleXVariableDeclaration11201 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXVariableDeclaration11222 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_entryRuleJvmFormalParameter11260 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleJvmFormalParameter11270 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleJvmFormalParameter11316 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleValidID_in_ruleJvmFormalParameter11338 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFullJvmFormalParameter_in_entryRuleFullJvmFormalParameter11374 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleFullJvmFormalParameter11384 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleFullJvmFormalParameter11430 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleValidID_in_ruleFullJvmFormalParameter11451 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXFeatureCall_in_entryRuleXFeatureCall11487 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXFeatureCall11497 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_ruleXFeatureCall11544 = new BitSet(new long[]{0x0020000000000010L,0x0000000800000010L});
+ public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_ruleXFeatureCall11565 = new BitSet(new long[]{0x0002000004000000L});
+ public static final BitSet FOLLOW_26_in_ruleXFeatureCall11578 = new BitSet(new long[]{0x0020000000000010L,0x0000000800000010L});
+ public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_ruleXFeatureCall11599 = new BitSet(new long[]{0x0002000004000000L});
+ public static final BitSet FOLLOW_49_in_ruleXFeatureCall11613 = new BitSet(new long[]{0x0004000000020010L,0x0000000001E00000L});
+ public static final BitSet FOLLOW_ruleIdOrSuper_in_ruleXFeatureCall11638 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000090L});
+ public static final BitSet FOLLOW_68_in_ruleXFeatureCall11672 = new BitSet(new long[]{0x86240000000241F0L,0x00000001FFE72AF0L});
+ public static final BitSet FOLLOW_ruleXShortClosure_in_ruleXFeatureCall11757 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXFeatureCall11785 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_26_in_ruleXFeatureCall11798 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXFeatureCall11819 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_69_in_ruleXFeatureCall11836 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000080L});
+ public static final BitSet FOLLOW_ruleXClosure_in_ruleXFeatureCall11871 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFeatureCallID_in_entryRuleFeatureCallID11909 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleFeatureCallID11920 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleValidID_in_ruleFeatureCallID11967 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_17_in_ruleFeatureCallID11991 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_85_in_ruleFeatureCallID12010 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_86_in_ruleFeatureCallID12029 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_87_in_ruleFeatureCallID12048 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleIdOrSuper_in_entryRuleIdOrSuper12089 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleIdOrSuper12100 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleFeatureCallID_in_ruleIdOrSuper12147 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_88_in_ruleIdOrSuper12171 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXConstructorCall_in_entryRuleXConstructorCall12211 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXConstructorCall12221 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_89_in_ruleXConstructorCall12267 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_ruleXConstructorCall12290 = new BitSet(new long[]{0x0004000000000002L,0x0000000000000090L});
+ public static final BitSet FOLLOW_50_in_ruleXConstructorCall12311 = new BitSet(new long[]{0x0020000000000010L,0x0000000800000010L});
+ public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_ruleXConstructorCall12333 = new BitSet(new long[]{0x0002000004000000L});
+ public static final BitSet FOLLOW_26_in_ruleXConstructorCall12346 = new BitSet(new long[]{0x0020000000000010L,0x0000000800000010L});
+ public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_ruleXConstructorCall12367 = new BitSet(new long[]{0x0002000004000000L});
+ public static final BitSet FOLLOW_49_in_ruleXConstructorCall12381 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000090L});
+ public static final BitSet FOLLOW_68_in_ruleXConstructorCall12404 = new BitSet(new long[]{0x86240000000241F0L,0x00000001FFE72AF0L});
+ public static final BitSet FOLLOW_ruleXShortClosure_in_ruleXConstructorCall12477 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXConstructorCall12505 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_26_in_ruleXConstructorCall12518 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXConstructorCall12539 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_69_in_ruleXConstructorCall12556 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000080L});
+ public static final BitSet FOLLOW_ruleXClosure_in_ruleXConstructorCall12591 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXBooleanLiteral_in_entryRuleXBooleanLiteral12628 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXBooleanLiteral12638 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_90_in_ruleXBooleanLiteral12685 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_91_in_ruleXBooleanLiteral12709 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXNullLiteral_in_entryRuleXNullLiteral12759 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXNullLiteral12769 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_92_in_ruleXNullLiteral12815 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXNumberLiteral_in_entryRuleXNumberLiteral12851 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXNumberLiteral12861 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleNumber_in_ruleXNumberLiteral12916 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXStringLiteral_in_entryRuleXStringLiteral12952 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXStringLiteral12962 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleXStringLiteral13013 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXTypeLiteral_in_entryRuleXTypeLiteral13054 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXTypeLiteral13064 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_93_in_ruleXTypeLiteral13110 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_ruleXTypeLiteral13122 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_ruleXTypeLiteral13145 = new BitSet(new long[]{0x0000000000000000L,0x00000000000000A0L});
+ public static final BitSet FOLLOW_ruleArrayBrackets_in_ruleXTypeLiteral13166 = new BitSet(new long[]{0x0000000000000000L,0x00000000000000A0L});
+ public static final BitSet FOLLOW_69_in_ruleXTypeLiteral13179 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXThrowExpression_in_entryRuleXThrowExpression13215 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXThrowExpression13225 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_94_in_ruleXThrowExpression13271 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXThrowExpression13292 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXReturnExpression_in_entryRuleXReturnExpression13328 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXReturnExpression13338 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_95_in_ruleXReturnExpression13384 = new BitSet(new long[]{0x86040000000241F2L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXReturnExpression13415 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXTryCatchFinallyExpression_in_entryRuleXTryCatchFinallyExpression13452 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXTryCatchFinallyExpression13462 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_96_in_ruleXTryCatchFinallyExpression13508 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXTryCatchFinallyExpression13529 = new BitSet(new long[]{0x0000000000000000L,0x0000000600000000L});
+ public static final BitSet FOLLOW_ruleXCatchClause_in_ruleXTryCatchFinallyExpression13559 = new BitSet(new long[]{0x0000000000000002L,0x0000000600000000L});
+ public static final BitSet FOLLOW_97_in_ruleXTryCatchFinallyExpression13581 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXTryCatchFinallyExpression13603 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_97_in_ruleXTryCatchFinallyExpression13625 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXTryCatchFinallyExpression13646 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXCatchClause_in_entryRuleXCatchClause13684 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXCatchClause13694 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_98_in_ruleXCatchClause13739 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+ public static final BitSet FOLLOW_68_in_ruleXCatchClause13752 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleFullJvmFormalParameter_in_ruleXCatchClause13773 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_69_in_ruleXCatchClause13785 = new BitSet(new long[]{0x86040000000241F0L,0x00000001FFE728D0L});
+ public static final BitSet FOLLOW_ruleXExpression_in_ruleXCatchClause13806 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName13843 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedName13854 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleValidID_in_ruleQualifiedName13901 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L});
+ public static final BitSet FOLLOW_65_in_ruleQualifiedName13929 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleValidID_in_ruleQualifiedName13952 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleNumber_in_entryRuleNumber14006 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleNumber14017 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_HEX_in_ruleNumber14061 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleNumber14089 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_DECIMAL_in_ruleNumber14115 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L});
+ public static final BitSet FOLLOW_65_in_ruleNumber14135 = new BitSet(new long[]{0x0000000000000180L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleNumber14151 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_DECIMAL_in_ruleNumber14177 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_entryRuleJvmTypeReference14232 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleJvmTypeReference14242 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmParameterizedTypeReference_in_ruleJvmTypeReference14290 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000080L});
+ public static final BitSet FOLLOW_ruleArrayBrackets_in_ruleJvmTypeReference14326 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000080L});
+ public static final BitSet FOLLOW_ruleXFunctionTypeRef_in_ruleJvmTypeReference14357 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleArrayBrackets_in_entryRuleArrayBrackets14393 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleArrayBrackets14404 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_71_in_ruleArrayBrackets14442 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+ public static final BitSet FOLLOW_72_in_ruleArrayBrackets14455 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXFunctionTypeRef_in_entryRuleXFunctionTypeRef14495 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXFunctionTypeRef14505 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_68_in_ruleXFunctionTypeRef14543 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000030L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleXFunctionTypeRef14565 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_26_in_ruleXFunctionTypeRef14578 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleXFunctionTypeRef14599 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000020L});
+ public static final BitSet FOLLOW_69_in_ruleXFunctionTypeRef14615 = new BitSet(new long[]{0x0020000000000000L});
+ public static final BitSet FOLLOW_53_in_ruleXFunctionTypeRef14629 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleXFunctionTypeRef14650 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmParameterizedTypeReference_in_entryRuleJvmParameterizedTypeReference14686 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleJvmParameterizedTypeReference14696 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_ruleJvmParameterizedTypeReference14744 = new BitSet(new long[]{0x0004000000000002L});
+ public static final BitSet FOLLOW_50_in_ruleJvmParameterizedTypeReference14765 = new BitSet(new long[]{0x0020000000000010L,0x0000000800000010L});
+ public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_ruleJvmParameterizedTypeReference14787 = new BitSet(new long[]{0x0002000004000000L});
+ public static final BitSet FOLLOW_26_in_ruleJvmParameterizedTypeReference14800 = new BitSet(new long[]{0x0020000000000010L,0x0000000800000010L});
+ public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_ruleJvmParameterizedTypeReference14821 = new BitSet(new long[]{0x0002000004000000L});
+ public static final BitSet FOLLOW_49_in_ruleJvmParameterizedTypeReference14835 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmArgumentTypeReference_in_entryRuleJvmArgumentTypeReference14873 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleJvmArgumentTypeReference14883 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleJvmArgumentTypeReference14930 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmWildcardTypeReference_in_ruleJvmArgumentTypeReference14957 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmWildcardTypeReference_in_entryRuleJvmWildcardTypeReference14992 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleJvmWildcardTypeReference15002 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_99_in_ruleJvmWildcardTypeReference15048 = new BitSet(new long[]{0x0000000000020002L,0x0000000001000000L});
+ public static final BitSet FOLLOW_ruleJvmUpperBound_in_ruleJvmWildcardTypeReference15070 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmLowerBound_in_ruleJvmWildcardTypeReference15097 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmUpperBound_in_entryRuleJvmUpperBound15135 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleJvmUpperBound15145 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_17_in_ruleJvmUpperBound15182 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleJvmUpperBound15203 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmUpperBoundAnded_in_entryRuleJvmUpperBoundAnded15239 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleJvmUpperBoundAnded15249 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_100_in_ruleJvmUpperBoundAnded15286 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleJvmUpperBoundAnded15307 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmLowerBound_in_entryRuleJvmLowerBound15343 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleJvmLowerBound15353 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_88_in_ruleJvmLowerBound15390 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_ruleJvmLowerBound15411 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedNameWithWildcard_in_entryRuleQualifiedNameWithWildcard15450 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleQualifiedNameWithWildcard15461 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_ruleQualifiedNameWithWildcard15508 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+ public static final BitSet FOLLOW_65_in_ruleQualifiedNameWithWildcard15526 = new BitSet(new long[]{0x0800000000000000L});
+ public static final BitSet FOLLOW_59_in_ruleQualifiedNameWithWildcard15539 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleValidID_in_entryRuleValidID15580 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleValidID15591 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleValidID15630 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXImportSection_in_entryRuleXImportSection15674 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXImportSection15684 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXImportDeclaration_in_ruleXImportSection15729 = new BitSet(new long[]{0x0000000000000002L,0x0000000000400000L});
+ public static final BitSet FOLLOW_ruleXImportDeclaration_in_entryRuleXImportDeclaration15765 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleXImportDeclaration15775 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_86_in_ruleXImportDeclaration15812 = new BitSet(new long[]{0x0000000000000010L,0x0000000000200000L});
+ public static final BitSet FOLLOW_85_in_ruleXImportDeclaration15832 = new BitSet(new long[]{0x0000000000000010L,0x0000000000800000L});
+ public static final BitSet FOLLOW_87_in_ruleXImportDeclaration15863 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_ruleXImportDeclaration15900 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+ public static final BitSet FOLLOW_65_in_ruleXImportDeclaration15912 = new BitSet(new long[]{0x0800000000000000L});
+ public static final BitSet FOLLOW_59_in_ruleXImportDeclaration15924 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_ruleQualifiedName_in_ruleXImportDeclaration15954 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_ruleQualifiedNameWithWildcard_in_ruleXImportDeclaration15981 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_74_in_ruleXImportDeclaration15995 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpMultiAssign_in_synpred1_InternalEmfParsleyDsl3651 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpOr_in_synpred2_InternalEmfParsleyDsl4020 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpAnd_in_synpred3_InternalEmfParsleyDsl4279 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpEquality_in_synpred4_InternalEmfParsleyDsl4538 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_46_in_synpred5_InternalEmfParsleyDsl4852 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpCompare_in_synpred6_InternalEmfParsleyDsl4923 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpOther_in_synpred7_InternalEmfParsleyDsl5242 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_49_in_synpred8_InternalEmfParsleyDsl5511 = new BitSet(new long[]{0x0002000000000000L});
+ public static final BitSet FOLLOW_49_in_synpred8_InternalEmfParsleyDsl5516 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_synpred9_InternalEmfParsleyDsl5598 = new BitSet(new long[]{0x0004000000000000L});
+ public static final BitSet FOLLOW_50_in_synpred9_InternalEmfParsleyDsl5603 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpAdd_in_synpred10_InternalEmfParsleyDsl5825 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleOpMulti_in_synpred11_InternalEmfParsleyDsl6105 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_64_in_synpred12_InternalEmfParsleyDsl6699 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_65_in_synpred13_InternalEmfParsleyDsl6854 = new BitSet(new long[]{0x0000000000020010L,0x0000000000E00000L});
+ public static final BitSet FOLLOW_66_in_synpred13_InternalEmfParsleyDsl6868 = new BitSet(new long[]{0x0000000000020010L,0x0000000000E00000L});
+ public static final BitSet FOLLOW_ruleFeatureCallID_in_synpred13_InternalEmfParsleyDsl6884 = new BitSet(new long[]{0x0000002000000000L});
+ public static final BitSet FOLLOW_ruleOpSingleAssign_in_synpred13_InternalEmfParsleyDsl6890 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_65_in_synpred14_InternalEmfParsleyDsl7032 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_67_in_synpred14_InternalEmfParsleyDsl7046 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_66_in_synpred14_InternalEmfParsleyDsl7066 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_68_in_synpred15_InternalEmfParsleyDsl7293 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_synpred16_InternalEmfParsleyDsl7345 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000200L});
+ public static final BitSet FOLLOW_26_in_synpred16_InternalEmfParsleyDsl7352 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_synpred16_InternalEmfParsleyDsl7359 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000200L});
+ public static final BitSet FOLLOW_73_in_synpred16_InternalEmfParsleyDsl7373 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_71_in_synpred17_InternalEmfParsleyDsl7493 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_71_in_synpred18_InternalEmfParsleyDsl8044 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_synpred20_InternalEmfParsleyDsl8794 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000200L});
+ public static final BitSet FOLLOW_26_in_synpred20_InternalEmfParsleyDsl8801 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_synpred20_InternalEmfParsleyDsl8808 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000200L});
+ public static final BitSet FOLLOW_73_in_synpred20_InternalEmfParsleyDsl8822 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_76_in_synpred22_InternalEmfParsleyDsl9605 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleValidID_in_synpred23_InternalEmfParsleyDsl9747 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_23_in_synpred23_InternalEmfParsleyDsl9753 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_68_in_synpred24_InternalEmfParsleyDsl9829 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleValidID_in_synpred24_InternalEmfParsleyDsl9836 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_23_in_synpred24_InternalEmfParsleyDsl9842 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmTypeReference_in_synpred25_InternalEmfParsleyDsl11107 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleValidID_in_synpred25_InternalEmfParsleyDsl11116 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_68_in_synpred26_InternalEmfParsleyDsl11654 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_synpred27_InternalEmfParsleyDsl11706 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000200L});
+ public static final BitSet FOLLOW_26_in_synpred27_InternalEmfParsleyDsl11713 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_synpred27_InternalEmfParsleyDsl11720 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000200L});
+ public static final BitSet FOLLOW_73_in_synpred27_InternalEmfParsleyDsl11734 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_71_in_synpred28_InternalEmfParsleyDsl11854 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_synpred29_InternalEmfParsleyDsl12303 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_68_in_synpred30_InternalEmfParsleyDsl12396 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_synpred31_InternalEmfParsleyDsl12426 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000200L});
+ public static final BitSet FOLLOW_26_in_synpred31_InternalEmfParsleyDsl12433 = new BitSet(new long[]{0x0020000000000010L,0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleJvmFormalParameter_in_synpred31_InternalEmfParsleyDsl12440 = new BitSet(new long[]{0x0000000004000000L,0x0000000000000200L});
+ public static final BitSet FOLLOW_73_in_synpred31_InternalEmfParsleyDsl12454 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_71_in_synpred32_InternalEmfParsleyDsl12574 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleXExpression_in_synpred33_InternalEmfParsleyDsl13398 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_98_in_synpred34_InternalEmfParsleyDsl13543 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_97_in_synpred35_InternalEmfParsleyDsl13573 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_65_in_synpred37_InternalEmfParsleyDsl13920 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleArrayBrackets_in_synpred38_InternalEmfParsleyDsl14305 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_50_in_synpred39_InternalEmfParsleyDsl14757 = new BitSet(new long[]{0x0000000000000002L});
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/serializer/EmfParsleyDslSemanticSequencer.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/serializer/EmfParsleyDslSemanticSequencer.java
new file mode 100644
index 000000000..77e430dc3
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/serializer/EmfParsleyDslSemanticSequencer.java
@@ -0,0 +1,1297 @@
+package org.eclipse.emf.parsley.dsl.serializer;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.parsley.dsl.model.ExtendsClause;
+import org.eclipse.emf.parsley.dsl.model.FeatureSpecification;
+import org.eclipse.emf.parsley.dsl.model.FeaturesProvider;
+import org.eclipse.emf.parsley.dsl.model.FormControlFactory;
+import org.eclipse.emf.parsley.dsl.model.FormControlSpecification;
+import org.eclipse.emf.parsley.dsl.model.LabelProvider;
+import org.eclipse.emf.parsley.dsl.model.LabelSpecification;
+import org.eclipse.emf.parsley.dsl.model.Model;
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+import org.eclipse.emf.parsley.dsl.model.Module;
+import org.eclipse.emf.parsley.dsl.model.PropertyDescriptionProvider;
+import org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification;
+import org.eclipse.emf.parsley.dsl.model.ProposalCreator;
+import org.eclipse.emf.parsley.dsl.model.ProposalSpecification;
+import org.eclipse.emf.parsley.dsl.model.ViewSpecification;
+import org.eclipse.emf.parsley.dsl.model.ViewerContentProvider;
+import org.eclipse.emf.parsley.dsl.services.EmfParsleyDslGrammarAccess;
+import org.eclipse.xtext.common.types.JvmFormalParameter;
+import org.eclipse.xtext.common.types.JvmGenericArrayTypeReference;
+import org.eclipse.xtext.common.types.JvmLowerBound;
+import org.eclipse.xtext.common.types.JvmParameterizedTypeReference;
+import org.eclipse.xtext.common.types.JvmTypeParameter;
+import org.eclipse.xtext.common.types.JvmUpperBound;
+import org.eclipse.xtext.common.types.JvmWildcardTypeReference;
+import org.eclipse.xtext.common.types.TypesPackage;
+import org.eclipse.xtext.serializer.acceptor.ISemanticSequenceAcceptor;
+import org.eclipse.xtext.serializer.acceptor.SequenceFeeder;
+import org.eclipse.xtext.serializer.diagnostic.ISemanticSequencerDiagnosticProvider;
+import org.eclipse.xtext.serializer.diagnostic.ISerializationDiagnostic.Acceptor;
+import org.eclipse.xtext.serializer.sequencer.GenericSequencer;
+import org.eclipse.xtext.serializer.sequencer.ISemanticNodeProvider.INodesForEObjectProvider;
+import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer;
+import org.eclipse.xtext.serializer.sequencer.ITransientValueService;
+import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;
+import org.eclipse.xtext.xbase.XAssignment;
+import org.eclipse.xtext.xbase.XBinaryOperation;
+import org.eclipse.xtext.xbase.XBlockExpression;
+import org.eclipse.xtext.xbase.XBooleanLiteral;
+import org.eclipse.xtext.xbase.XCasePart;
+import org.eclipse.xtext.xbase.XCastedExpression;
+import org.eclipse.xtext.xbase.XCatchClause;
+import org.eclipse.xtext.xbase.XClosure;
+import org.eclipse.xtext.xbase.XConstructorCall;
+import org.eclipse.xtext.xbase.XDoWhileExpression;
+import org.eclipse.xtext.xbase.XFeatureCall;
+import org.eclipse.xtext.xbase.XForLoopExpression;
+import org.eclipse.xtext.xbase.XIfExpression;
+import org.eclipse.xtext.xbase.XInstanceOfExpression;
+import org.eclipse.xtext.xbase.XListLiteral;
+import org.eclipse.xtext.xbase.XMemberFeatureCall;
+import org.eclipse.xtext.xbase.XNullLiteral;
+import org.eclipse.xtext.xbase.XNumberLiteral;
+import org.eclipse.xtext.xbase.XReturnExpression;
+import org.eclipse.xtext.xbase.XSetLiteral;
+import org.eclipse.xtext.xbase.XStringLiteral;
+import org.eclipse.xtext.xbase.XSwitchExpression;
+import org.eclipse.xtext.xbase.XThrowExpression;
+import org.eclipse.xtext.xbase.XTryCatchFinallyExpression;
+import org.eclipse.xtext.xbase.XTypeLiteral;
+import org.eclipse.xtext.xbase.XUnaryOperation;
+import org.eclipse.xtext.xbase.XVariableDeclaration;
+import org.eclipse.xtext.xbase.XWhileExpression;
+import org.eclipse.xtext.xbase.XbasePackage;
+import org.eclipse.xtext.xbase.serializer.XbaseSemanticSequencer;
+import org.eclipse.xtext.xtype.XFunctionTypeRef;
+import org.eclipse.xtext.xtype.XImportDeclaration;
+import org.eclipse.xtext.xtype.XImportSection;
+import org.eclipse.xtext.xtype.XtypePackage;
+
+@SuppressWarnings("all")
+public class EmfParsleyDslSemanticSequencer extends XbaseSemanticSequencer {
+
+ @Inject
+ private EmfParsleyDslGrammarAccess grammarAccess;
+
+ public void createSequence(EObject context, EObject semanticObject) {
+ if(semanticObject.eClass().getEPackage() == ModelPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+ case ModelPackage.EXTENDS_CLAUSE:
+ if(context == grammarAccess.getExtendsClauseRule()) {
+ sequence_ExtendsClause(context, (ExtendsClause) semanticObject);
+ return;
+ }
+ else break;
+ case ModelPackage.FEATURE_SPECIFICATION:
+ if(context == grammarAccess.getEmfFeatureAccessRule() ||
+ context == grammarAccess.getFeatureSpecificationRule()) {
+ sequence_FeatureSpecification(context, (FeatureSpecification) semanticObject);
+ return;
+ }
+ else break;
+ case ModelPackage.FEATURES_PROVIDER:
+ if(context == grammarAccess.getFeaturesProviderRule()) {
+ sequence_FeaturesProvider(context, (FeaturesProvider) semanticObject);
+ return;
+ }
+ else break;
+ case ModelPackage.FORM_CONTROL_FACTORY:
+ if(context == grammarAccess.getFormControlFactoryRule()) {
+ sequence_FormControlFactory(context, (FormControlFactory) semanticObject);
+ return;
+ }
+ else break;
+ case ModelPackage.FORM_CONTROL_SPECIFICATION:
+ if(context == grammarAccess.getEmfFeatureAccessRule() ||
+ context == grammarAccess.getFormControlSpecificationRule()) {
+ sequence_FormControlSpecification(context, (FormControlSpecification) semanticObject);
+ return;
+ }
+ else break;
+ case ModelPackage.LABEL_PROVIDER:
+ if(context == grammarAccess.getLabelProviderRule()) {
+ sequence_LabelProvider(context, (LabelProvider) semanticObject);
+ return;
+ }
+ else break;
+ case ModelPackage.LABEL_SPECIFICATION:
+ if(context == grammarAccess.getLabelSpecificationRule()) {
+ sequence_LabelSpecification(context, (LabelSpecification) semanticObject);
+ return;
+ }
+ else break;
+ case ModelPackage.MODEL:
+ if(context == grammarAccess.getModelRule()) {
+ sequence_Model(context, (Model) semanticObject);
+ return;
+ }
+ else break;
+ case ModelPackage.MODULE:
+ if(context == grammarAccess.getModuleRule() ||
+ context == grammarAccess.getWithExtendsClauseRule()) {
+ sequence_Module(context, (Module) semanticObject);
+ return;
+ }
+ else break;
+ case ModelPackage.PROPERTY_DESCRIPTION_PROVIDER:
+ if(context == grammarAccess.getPropertyDescriptionProviderRule()) {
+ sequence_PropertyDescriptionProvider(context, (PropertyDescriptionProvider) semanticObject);
+ return;
+ }
+ else break;
+ case ModelPackage.PROPERTY_DESCRIPTION_SPECIFICATION:
+ if(context == grammarAccess.getEmfFeatureAccessRule() ||
+ context == grammarAccess.getPropertyDescriptionSpecificationRule()) {
+ sequence_PropertyDescriptionSpecification(context, (PropertyDescriptionSpecification) semanticObject);
+ return;
+ }
+ else break;
+ case ModelPackage.PROPOSAL_CREATOR:
+ if(context == grammarAccess.getProposalCreatorRule()) {
+ sequence_ProposalCreator(context, (ProposalCreator) semanticObject);
+ return;
+ }
+ else break;
+ case ModelPackage.PROPOSAL_SPECIFICATION:
+ if(context == grammarAccess.getEmfFeatureAccessRule() ||
+ context == grammarAccess.getProposalSpecificationRule()) {
+ sequence_ProposalSpecification(context, (ProposalSpecification) semanticObject);
+ return;
+ }
+ else break;
+ case ModelPackage.VIEW_SPECIFICATION:
+ if(context == grammarAccess.getPartSpecificationRule() ||
+ context == grammarAccess.getViewSpecificationRule()) {
+ sequence_ViewSpecification(context, (ViewSpecification) semanticObject);
+ return;
+ }
+ else break;
+ case ModelPackage.VIEWER_CONTENT_PROVIDER:
+ if(context == grammarAccess.getViewerContentProviderRule()) {
+ sequence_ViewerContentProvider(context, (ViewerContentProvider) semanticObject);
+ return;
+ }
+ else break;
+ }
+ else if(semanticObject.eClass().getEPackage() == TypesPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+ case TypesPackage.JVM_FORMAL_PARAMETER:
+ if(context == grammarAccess.getFullJvmFormalParameterRule()) {
+ sequence_FullJvmFormalParameter(context, (JvmFormalParameter) semanticObject);
+ return;
+ }
+ else if(context == grammarAccess.getJvmFormalParameterRule()) {
+ sequence_JvmFormalParameter(context, (JvmFormalParameter) semanticObject);
+ return;
+ }
+ else break;
+ case TypesPackage.JVM_GENERIC_ARRAY_TYPE_REFERENCE:
+ if(context == grammarAccess.getJvmArgumentTypeReferenceRule() ||
+ context == grammarAccess.getJvmTypeReferenceRule() ||
+ context == grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()) {
+ sequence_JvmTypeReference(context, (JvmGenericArrayTypeReference) semanticObject);
+ return;
+ }
+ else break;
+ case TypesPackage.JVM_LOWER_BOUND:
+ if(context == grammarAccess.getJvmLowerBoundRule()) {
+ sequence_JvmLowerBound(context, (JvmLowerBound) semanticObject);
+ return;
+ }
+ else break;
+ case TypesPackage.JVM_PARAMETERIZED_TYPE_REFERENCE:
+ if(context == grammarAccess.getJvmArgumentTypeReferenceRule() ||
+ context == grammarAccess.getJvmParameterizedTypeReferenceRule() ||
+ context == grammarAccess.getJvmTypeReferenceRule() ||
+ context == grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()) {
+ sequence_JvmParameterizedTypeReference(context, (JvmParameterizedTypeReference) semanticObject);
+ return;
+ }
+ else break;
+ case TypesPackage.JVM_TYPE_PARAMETER:
+ if(context == grammarAccess.getJvmTypeParameterRule()) {
+ sequence_JvmTypeParameter(context, (JvmTypeParameter) semanticObject);
+ return;
+ }
+ else break;
+ case TypesPackage.JVM_UPPER_BOUND:
+ if(context == grammarAccess.getJvmUpperBoundAndedRule()) {
+ sequence_JvmUpperBoundAnded(context, (JvmUpperBound) semanticObject);
+ return;
+ }
+ else if(context == grammarAccess.getJvmUpperBoundRule()) {
+ sequence_JvmUpperBound(context, (JvmUpperBound) semanticObject);
+ return;
+ }
+ else break;
+ case TypesPackage.JVM_WILDCARD_TYPE_REFERENCE:
+ if(context == grammarAccess.getJvmArgumentTypeReferenceRule() ||
+ context == grammarAccess.getJvmWildcardTypeReferenceRule()) {
+ sequence_JvmWildcardTypeReference(context, (JvmWildcardTypeReference) semanticObject);
+ return;
+ }
+ else break;
+ }
+ else if(semanticObject.eClass().getEPackage() == XbasePackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+ case XbasePackage.XASSIGNMENT:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XAssignment_XMemberFeatureCall(context, (XAssignment) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XBINARY_OPERATION:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XAdditiveExpression_XAndExpression_XAssignment_XEqualityExpression_XMultiplicativeExpression_XOrExpression_XOtherOperatorExpression_XRelationalExpression(context, (XBinaryOperation) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XBLOCK_EXPRESSION:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXBlockExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XBlockExpression(context, (XBlockExpression) semanticObject);
+ return;
+ }
+ else if(context == grammarAccess.getXExpressionInClosureRule()) {
+ sequence_XExpressionInClosure(context, (XBlockExpression) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XBOOLEAN_LITERAL:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXBooleanLiteralRule() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXLiteralRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XBooleanLiteral(context, (XBooleanLiteral) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XCASE_PART:
+ if(context == grammarAccess.getXCasePartRule()) {
+ sequence_XCasePart(context, (XCasePart) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XCASTED_EXPRESSION:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XCastedExpression(context, (XCastedExpression) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XCATCH_CLAUSE:
+ if(context == grammarAccess.getXCatchClauseRule()) {
+ sequence_XCatchClause(context, (XCatchClause) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XCLOSURE:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXClosureRule() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXLiteralRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XClosure(context, (XClosure) semanticObject);
+ return;
+ }
+ else if(context == grammarAccess.getXShortClosureRule()) {
+ sequence_XShortClosure(context, (XClosure) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XCONSTRUCTOR_CALL:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXConstructorCallRule() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XConstructorCall(context, (XConstructorCall) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XDO_WHILE_EXPRESSION:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXDoWhileExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XDoWhileExpression(context, (XDoWhileExpression) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XFEATURE_CALL:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XFeatureCall(context, (XFeatureCall) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XFOR_LOOP_EXPRESSION:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXForLoopExpressionRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XForLoopExpression(context, (XForLoopExpression) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XIF_EXPRESSION:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXIfExpressionRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XIfExpression(context, (XIfExpression) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XINSTANCE_OF_EXPRESSION:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XRelationalExpression(context, (XInstanceOfExpression) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XLIST_LITERAL:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXCollectionLiteralRule() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXListLiteralRule() ||
+ context == grammarAccess.getXLiteralRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XListLiteral(context, (XListLiteral) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XMEMBER_FEATURE_CALL:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XMemberFeatureCall(context, (XMemberFeatureCall) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XNULL_LITERAL:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXLiteralRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXNullLiteralRule() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XNullLiteral(context, (XNullLiteral) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XNUMBER_LITERAL:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXLiteralRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXNumberLiteralRule() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XNumberLiteral(context, (XNumberLiteral) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XRETURN_EXPRESSION:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXReturnExpressionRule() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XReturnExpression(context, (XReturnExpression) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XSET_LITERAL:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXCollectionLiteralRule() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXLiteralRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXSetLiteralRule() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XSetLiteral(context, (XSetLiteral) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XSTRING_LITERAL:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXLiteralRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXStringLiteralRule() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XStringLiteral(context, (XStringLiteral) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XSWITCH_EXPRESSION:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXSwitchExpressionRule() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XSwitchExpression(context, (XSwitchExpression) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XTHROW_EXPRESSION:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXThrowExpressionRule() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XThrowExpression(context, (XThrowExpression) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XTRY_CATCH_FINALLY_EXPRESSION:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXTryCatchFinallyExpressionRule() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XTryCatchFinallyExpression(context, (XTryCatchFinallyExpression) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XTYPE_LITERAL:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXLiteralRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXTypeLiteralRule() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XTypeLiteral(context, (XTypeLiteral) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XUNARY_OPERATION:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXUnaryOperationRule()) {
+ sequence_XUnaryOperation(context, (XUnaryOperation) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XVARIABLE_DECLARATION:
+ if(context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXVariableDeclarationRule()) {
+ sequence_XVariableDeclaration(context, (XVariableDeclaration) semanticObject);
+ return;
+ }
+ else break;
+ case XbasePackage.XWHILE_EXPRESSION:
+ if(context == grammarAccess.getXAdditiveExpressionRule() ||
+ context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAndExpressionRule() ||
+ context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXAssignmentRule() ||
+ context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXCastedExpressionRule() ||
+ context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
+ context == grammarAccess.getXEqualityExpressionRule() ||
+ context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXExpressionRule() ||
+ context == grammarAccess.getXExpressionInsideBlockRule() ||
+ context == grammarAccess.getXMemberFeatureCallRule() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
+ context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
+ context == grammarAccess.getXMultiplicativeExpressionRule() ||
+ context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOrExpressionRule() ||
+ context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXOtherOperatorExpressionRule() ||
+ context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
+ context == grammarAccess.getXParenthesizedExpressionRule() ||
+ context == grammarAccess.getXPrimaryExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionRule() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
+ context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
+ context == grammarAccess.getXUnaryOperationRule() ||
+ context == grammarAccess.getXWhileExpressionRule()) {
+ sequence_XWhileExpression(context, (XWhileExpression) semanticObject);
+ return;
+ }
+ else break;
+ }
+ else if(semanticObject.eClass().getEPackage() == XtypePackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+ case XtypePackage.XFUNCTION_TYPE_REF:
+ if(context == grammarAccess.getJvmArgumentTypeReferenceRule() ||
+ context == grammarAccess.getJvmTypeReferenceRule() ||
+ context == grammarAccess.getXFunctionTypeRefRule()) {
+ sequence_XFunctionTypeRef(context, (XFunctionTypeRef) semanticObject);
+ return;
+ }
+ else break;
+ case XtypePackage.XIMPORT_DECLARATION:
+ if(context == grammarAccess.getXImportDeclarationRule()) {
+ sequence_XImportDeclaration(context, (XImportDeclaration) semanticObject);
+ return;
+ }
+ else break;
+ case XtypePackage.XIMPORT_SECTION:
+ if(context == grammarAccess.getXImportSectionRule()) {
+ sequence_XImportSection(context, (XImportSection) semanticObject);
+ return;
+ }
+ else break;
+ }
+ if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
+ }
+
+ /**
+ * Constraint:
+ * superType=JvmTypeReference
+ */
+ protected void sequence_ExtendsClause(EObject context, ExtendsClause semanticObject) {
+ if(errorAcceptor != null) {
+ if(transientValues.isValueTransient(semanticObject, ModelPackage.Literals.EXTENDS_CLAUSE__SUPER_TYPE) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ModelPackage.Literals.EXTENDS_CLAUSE__SUPER_TYPE));
+ }
+ INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+ SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+ feeder.accept(grammarAccess.getExtendsClauseAccess().getSuperTypeJvmTypeReferenceParserRuleCall_1_0(), semanticObject.getSuperType());
+ feeder.finish();
+ }
+
+
+ /**
+ * Constraint:
+ * (parameterType=JvmTypeReference features+=[JvmMember|ID] features+=[JvmMember|ID]*)
+ */
+ protected void sequence_FeatureSpecification(EObject context, FeatureSpecification semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Constraint:
+ * (featureSpecifications+=FeatureSpecification*)
+ */
+ protected void sequence_FeaturesProvider(EObject context, FeaturesProvider semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Constraint:
+ * (controlSpecifications+=FormControlSpecification*)
+ */
+ protected void sequence_FormControlFactory(EObject context, FormControlFactory semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Constraint:
+ * (parameterType=JvmTypeReference feature=[JvmMember|ID] expression=XExpression target=XExpression?)
+ */
+ protected void sequence_FormControlSpecification(EObject context, FormControlSpecification semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Constraint:
+ * (labelSpecifications+=LabelSpecification* imageSpecifications+=LabelSpecification*)
+ */
+ protected void sequence_LabelProvider(EObject context, LabelProvider semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Constraint:
+ * (parameterType=JvmTypeReference name=ValidID? expression=XExpression)
+ */
+ protected void sequence_LabelSpecification(EObject context, LabelSpecification semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Constraint:
+ * (importSection=XImportSection? module=Module)
+ */
+ protected void sequence_Model(EObject context, Model semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Constraint:
+ * (
+ * name=QualifiedName
+ * extendsClause=ExtendsClause?
+ * labelProvider=LabelProvider?
+ * propertyDescriptionProvider=PropertyDescriptionProvider?
+ * featuresProvider=FeaturesProvider?
+ * formControlFactory=FormControlFactory?
+ * proposalCreator=ProposalCreator?
+ * viewerContentProvider=ViewerContentProvider?
+ * parts+=PartSpecification*
+ * )
+ */
+ protected void sequence_Module(EObject context, Module semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Constraint:
+ * (labelSpecifications+=PropertyDescriptionSpecification*)
+ */
+ protected void sequence_PropertyDescriptionProvider(EObject context, PropertyDescriptionProvider semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Constraint:
+ * (parameterType=JvmTypeReference feature=[JvmMember|ID] expression=XExpression)
+ */
+ protected void sequence_PropertyDescriptionSpecification(EObject context, PropertyDescriptionSpecification semanticObject) {
+ if(errorAcceptor != null) {
+ if(transientValues.isValueTransient(semanticObject, ModelPackage.Literals.EMF_FEATURE_ACCESS__PARAMETER_TYPE) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ModelPackage.Literals.EMF_FEATURE_ACCESS__PARAMETER_TYPE));
+ if(transientValues.isValueTransient(semanticObject, ModelPackage.Literals.PROPERTY_DESCRIPTION_SPECIFICATION__FEATURE) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ModelPackage.Literals.PROPERTY_DESCRIPTION_SPECIFICATION__FEATURE));
+ if(transientValues.isValueTransient(semanticObject, ModelPackage.Literals.PROPERTY_DESCRIPTION_SPECIFICATION__EXPRESSION) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ModelPackage.Literals.PROPERTY_DESCRIPTION_SPECIFICATION__EXPRESSION));
+ }
+ INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+ SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+ feeder.accept(grammarAccess.getPropertyDescriptionSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0(), semanticObject.getParameterType());
+ feeder.accept(grammarAccess.getPropertyDescriptionSpecificationAccess().getFeatureJvmMemberIDTerminalRuleCall_2_0_1(), semanticObject.getFeature());
+ feeder.accept(grammarAccess.getPropertyDescriptionSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0(), semanticObject.getExpression());
+ feeder.finish();
+ }
+
+
+ /**
+ * Constraint:
+ * (proposalsSpecifications+=ProposalSpecification*)
+ */
+ protected void sequence_ProposalCreator(EObject context, ProposalCreator semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Constraint:
+ * (parameterType=JvmTypeReference feature=[JvmMember|ID] expression=XExpression)
+ */
+ protected void sequence_ProposalSpecification(EObject context, ProposalSpecification semanticObject) {
+ if(errorAcceptor != null) {
+ if(transientValues.isValueTransient(semanticObject, ModelPackage.Literals.EMF_FEATURE_ACCESS__PARAMETER_TYPE) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ModelPackage.Literals.EMF_FEATURE_ACCESS__PARAMETER_TYPE));
+ if(transientValues.isValueTransient(semanticObject, ModelPackage.Literals.PROPOSAL_SPECIFICATION__FEATURE) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ModelPackage.Literals.PROPOSAL_SPECIFICATION__FEATURE));
+ if(transientValues.isValueTransient(semanticObject, ModelPackage.Literals.PROPOSAL_SPECIFICATION__EXPRESSION) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ModelPackage.Literals.PROPOSAL_SPECIFICATION__EXPRESSION));
+ }
+ INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+ SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+ feeder.accept(grammarAccess.getProposalSpecificationAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0(), semanticObject.getParameterType());
+ feeder.accept(grammarAccess.getProposalSpecificationAccess().getFeatureJvmMemberIDTerminalRuleCall_2_0_1(), semanticObject.getFeature());
+ feeder.accept(grammarAccess.getProposalSpecificationAccess().getExpressionXExpressionParserRuleCall_4_0(), semanticObject.getExpression());
+ feeder.finish();
+ }
+
+
+ /**
+ * Constraint:
+ * (id=QualifiedName viewName=STRING type=JvmTypeReference category=QualifiedName?)
+ */
+ protected void sequence_ViewSpecification(EObject context, ViewSpecification semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Constraint:
+ * (childrenSpecifications+=LabelSpecification*)
+ */
+ protected void sequence_ViewerContentProvider(EObject context, ViewerContentProvider semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/serializer/EmfParsleyDslSyntacticSequencer.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/serializer/EmfParsleyDslSyntacticSequencer.java
new file mode 100644
index 000000000..33f116f0f
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/serializer/EmfParsleyDslSyntacticSequencer.java
@@ -0,0 +1,353 @@
+package org.eclipse.emf.parsley.dsl.serializer;
+
+import com.google.inject.Inject;
+import java.util.List;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.parsley.dsl.services.EmfParsleyDslGrammarAccess;
+import org.eclipse.xtext.IGrammarAccess;
+import org.eclipse.xtext.RuleCall;
+import org.eclipse.xtext.nodemodel.INode;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.AlternativeAlias;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.GroupAlias;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias;
+import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable;
+import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition;
+import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer;
+
+@SuppressWarnings("all")
+public class EmfParsleyDslSyntacticSequencer extends AbstractSyntacticSequencer {
+
+ protected EmfParsleyDslGrammarAccess grammarAccess;
+ protected AbstractElementAlias match_FeaturesProvider___FeaturesKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q;
+ protected AbstractElementAlias match_FormControlFactory___ControlKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q;
+ protected AbstractElementAlias match_LabelProvider___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__a__a;
+ protected AbstractElementAlias match_LabelProvider___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__a;
+ protected AbstractElementAlias match_LabelProvider___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a___or_____ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a_RightCurlyBracketKeyword_3_1_3__q___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__p_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a___RightCurlyBracketKeyword_3_1_3___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__p_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a__a__;
+ protected AbstractElementAlias match_LabelProvider___RightCurlyBracketKeyword_3_0_3___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__a_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a;
+ protected AbstractElementAlias match_LabelProvider___RightCurlyBracketKeyword_3_1_3___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__a_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a;
+ protected AbstractElementAlias match_LabelProvider___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__a__a;
+ protected AbstractElementAlias match_LabelProvider___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__a;
+ protected AbstractElementAlias match_LabelProvider___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a___or_____TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a_RightCurlyBracketKeyword_3_0_3__q___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__p_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a___RightCurlyBracketKeyword_3_0_3___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__p_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a__a__;
+ protected AbstractElementAlias match_LabelProvider_____ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3___or___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3____a;
+ protected AbstractElementAlias match_Module___PartsKeyword_4_6_0_LeftCurlyBracketKeyword_4_6_1_RightCurlyBracketKeyword_4_6_3__a;
+ protected AbstractElementAlias match_Module___RightCurlyBracketKeyword_4_6_3_PartsKeyword_4_6_0_LeftCurlyBracketKeyword_4_6_1__a;
+ protected AbstractElementAlias match_PropertyDescriptionProvider___TextKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q;
+ protected AbstractElementAlias match_ViewerContentProvider___ChildrenKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q;
+ protected AbstractElementAlias match_XBlockExpression_SemicolonKeyword_2_1_q;
+ protected AbstractElementAlias match_XConstructorCall___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_2__q;
+ protected AbstractElementAlias match_XExpressionInClosure_SemicolonKeyword_1_1_q;
+ protected AbstractElementAlias match_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q;
+ protected AbstractElementAlias match_XImportDeclaration_SemicolonKeyword_2_q;
+ protected AbstractElementAlias match_XParenthesizedExpression_LeftParenthesisKeyword_0_a;
+ protected AbstractElementAlias match_XParenthesizedExpression_LeftParenthesisKeyword_0_p;
+
+ @Inject
+ protected void init(IGrammarAccess access) {
+ grammarAccess = (EmfParsleyDslGrammarAccess) access;
+ match_FeaturesProvider___FeaturesKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getFeaturesProviderAccess().getFeaturesKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getFeaturesProviderAccess().getLeftCurlyBracketKeyword_3_1()), new TokenAlias(false, false, grammarAccess.getFeaturesProviderAccess().getRightCurlyBracketKeyword_3_3()));
+ match_FormControlFactory___ControlKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getFormControlFactoryAccess().getControlKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getFormControlFactoryAccess().getLeftCurlyBracketKeyword_3_1()), new TokenAlias(false, false, grammarAccess.getFormControlFactoryAccess().getRightCurlyBracketKeyword_3_3()));
+ match_LabelProvider___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__a__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3())));
+ match_LabelProvider___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3()));
+ match_LabelProvider___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a___or_____ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a_RightCurlyBracketKeyword_3_1_3__q___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__p_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a___RightCurlyBracketKeyword_3_1_3___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__p_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a__a__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1())), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3())), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3())), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3()), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3())), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1())))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1()))));
+ match_LabelProvider___RightCurlyBracketKeyword_3_0_3___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__a_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3())), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1()));
+ match_LabelProvider___RightCurlyBracketKeyword_3_1_3___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__a_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3())), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1()));
+ match_LabelProvider___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__a__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3())));
+ match_LabelProvider___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3()));
+ match_LabelProvider___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a___or_____TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a_RightCurlyBracketKeyword_3_0_3__q___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__p_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a___RightCurlyBracketKeyword_3_0_3___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__p_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a__a__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1())), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3())), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3())), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3()), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3())), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1())))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1()))));
+ match_LabelProvider_____ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3___or___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3____a = new AlternativeAlias(true, true, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getImageKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_1_1()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_1_3())), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getTextKeyword_3_0_0()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getLeftCurlyBracketKeyword_3_0_1()), new TokenAlias(false, false, grammarAccess.getLabelProviderAccess().getRightCurlyBracketKeyword_3_0_3())));
+ match_Module___PartsKeyword_4_6_0_LeftCurlyBracketKeyword_4_6_1_RightCurlyBracketKeyword_4_6_3__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getModuleAccess().getPartsKeyword_4_6_0()), new TokenAlias(false, false, grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_4_6_1()), new TokenAlias(false, false, grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_4_6_3()));
+ match_Module___RightCurlyBracketKeyword_4_6_3_PartsKeyword_4_6_0_LeftCurlyBracketKeyword_4_6_1__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_4_6_3()), new TokenAlias(false, false, grammarAccess.getModuleAccess().getPartsKeyword_4_6_0()), new TokenAlias(false, false, grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_4_6_1()));
+ match_PropertyDescriptionProvider___TextKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getPropertyDescriptionProviderAccess().getTextKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getPropertyDescriptionProviderAccess().getLeftCurlyBracketKeyword_3_1()), new TokenAlias(false, false, grammarAccess.getPropertyDescriptionProviderAccess().getRightCurlyBracketKeyword_3_3()));
+ match_ViewerContentProvider___ChildrenKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getViewerContentProviderAccess().getChildrenKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getViewerContentProviderAccess().getLeftCurlyBracketKeyword_3_1()), new TokenAlias(false, false, grammarAccess.getViewerContentProviderAccess().getRightCurlyBracketKeyword_3_3()));
+ match_XBlockExpression_SemicolonKeyword_2_1_q = new TokenAlias(false, true, grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
+ match_XConstructorCall___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getXConstructorCallAccess().getLeftParenthesisKeyword_4_0()), new TokenAlias(false, false, grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()));
+ match_XExpressionInClosure_SemicolonKeyword_1_1_q = new TokenAlias(false, true, grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
+ match_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()), new TokenAlias(false, false, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()));
+ match_XImportDeclaration_SemicolonKeyword_2_q = new TokenAlias(false, true, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2());
+ match_XParenthesizedExpression_LeftParenthesisKeyword_0_a = new TokenAlias(true, true, grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
+ match_XParenthesizedExpression_LeftParenthesisKeyword_0_p = new TokenAlias(true, false, grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
+ }
+
+ @Override
+ protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if(ruleCall.getRule() == grammarAccess.getArrayBracketsRule())
+ return getArrayBracketsToken(semanticObject, ruleCall, node);
+ else if(ruleCall.getRule() == grammarAccess.getOpSingleAssignRule())
+ return getOpSingleAssignToken(semanticObject, ruleCall, node);
+ return "";
+ }
+
+ /**
+ * ArrayBrackets :
+ * '[' ']'
+ * ;
+ */
+ protected String getArrayBracketsToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "[]";
+ }
+
+ /**
+ * OpSingleAssign:
+ * '='
+ * ;
+ */
+ protected String getOpSingleAssignToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ if (node != null)
+ return getTokenText(node);
+ return "=";
+ }
+
+ @Override
+ protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) {
+ if (transition.getAmbiguousSyntaxes().isEmpty()) return;
+ List<INode> transitionNodes = collectNodes(fromNode, toNode);
+ for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
+ List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
+ if(match_FeaturesProvider___FeaturesKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q.equals(syntax))
+ emit_FeaturesProvider___FeaturesKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_FormControlFactory___ControlKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q.equals(syntax))
+ emit_FormControlFactory___ControlKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_LabelProvider___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__a__a.equals(syntax))
+ emit_LabelProvider___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__a__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_LabelProvider___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__a.equals(syntax))
+ emit_LabelProvider___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_LabelProvider___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a___or_____ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a_RightCurlyBracketKeyword_3_1_3__q___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__p_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a___RightCurlyBracketKeyword_3_1_3___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__p_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a__a__.equals(syntax))
+ emit_LabelProvider___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a___or_____ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a_RightCurlyBracketKeyword_3_1_3__q___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__p_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a___RightCurlyBracketKeyword_3_1_3___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__p_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a__a__(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_LabelProvider___RightCurlyBracketKeyword_3_0_3___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__a_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a.equals(syntax))
+ emit_LabelProvider___RightCurlyBracketKeyword_3_0_3___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__a_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_LabelProvider___RightCurlyBracketKeyword_3_1_3___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__a_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a.equals(syntax))
+ emit_LabelProvider___RightCurlyBracketKeyword_3_1_3___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__a_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_LabelProvider___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__a__a.equals(syntax))
+ emit_LabelProvider___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__a__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_LabelProvider___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__a.equals(syntax))
+ emit_LabelProvider___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_LabelProvider___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a___or_____TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a_RightCurlyBracketKeyword_3_0_3__q___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__p_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a___RightCurlyBracketKeyword_3_0_3___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__p_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a__a__.equals(syntax))
+ emit_LabelProvider___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a___or_____TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a_RightCurlyBracketKeyword_3_0_3__q___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__p_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a___RightCurlyBracketKeyword_3_0_3___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__p_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a__a__(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_LabelProvider_____ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3___or___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3____a.equals(syntax))
+ emit_LabelProvider_____ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3___or___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3____a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_Module___PartsKeyword_4_6_0_LeftCurlyBracketKeyword_4_6_1_RightCurlyBracketKeyword_4_6_3__a.equals(syntax))
+ emit_Module___PartsKeyword_4_6_0_LeftCurlyBracketKeyword_4_6_1_RightCurlyBracketKeyword_4_6_3__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_Module___RightCurlyBracketKeyword_4_6_3_PartsKeyword_4_6_0_LeftCurlyBracketKeyword_4_6_1__a.equals(syntax))
+ emit_Module___RightCurlyBracketKeyword_4_6_3_PartsKeyword_4_6_0_LeftCurlyBracketKeyword_4_6_1__a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_PropertyDescriptionProvider___TextKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q.equals(syntax))
+ emit_PropertyDescriptionProvider___TextKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_ViewerContentProvider___ChildrenKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q.equals(syntax))
+ emit_ViewerContentProvider___ChildrenKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_XBlockExpression_SemicolonKeyword_2_1_q.equals(syntax))
+ emit_XBlockExpression_SemicolonKeyword_2_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_XConstructorCall___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_2__q.equals(syntax))
+ emit_XConstructorCall___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_XExpressionInClosure_SemicolonKeyword_1_1_q.equals(syntax))
+ emit_XExpressionInClosure_SemicolonKeyword_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q.equals(syntax))
+ emit_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_XImportDeclaration_SemicolonKeyword_2_q.equals(syntax))
+ emit_XImportDeclaration_SemicolonKeyword_2_q(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_XParenthesizedExpression_LeftParenthesisKeyword_0_a.equals(syntax))
+ emit_XParenthesizedExpression_LeftParenthesisKeyword_0_a(semanticObject, getLastNavigableState(), syntaxNodes);
+ else if(match_XParenthesizedExpression_LeftParenthesisKeyword_0_p.equals(syntax))
+ emit_XParenthesizedExpression_LeftParenthesisKeyword_0_p(semanticObject, getLastNavigableState(), syntaxNodes);
+ else acceptNodes(getLastNavigableState(), syntaxNodes);
+ }
+ }
+
+ /**
+ * Syntax:
+ * ('features' '{' '}')?
+ */
+ protected void emit_FeaturesProvider___FeaturesKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * ('control' '{' '}')?
+ */
+ protected void emit_FormControlFactory___ControlKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * ('image' '{' '}' ('text' '{' '}')*)*
+ */
+ protected void emit_LabelProvider___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__a__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * ('image' '{' '}')*
+ */
+ protected void emit_LabelProvider___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * (
+ ('image' '{' ('}' 'image' '{')*) |
+ (
+ ('image' '{' ('}' 'image' '{')* '}')?
+ ('text' '{' '}')+
+ 'image'
+ '{'
+ ('}' 'image' '{')*
+ ('}' ('text' '{' '}')+ 'image' '{' ('}' 'image' '{')*)*
+ )
+ )
+ */
+ protected void emit_LabelProvider___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a___or_____ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a_RightCurlyBracketKeyword_3_1_3__q___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__p_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a___RightCurlyBracketKeyword_3_1_3___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__p_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1___RightCurlyBracketKeyword_3_1_3_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a__a__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * ('}' ('image' '{' '}')* 'text' '{')*
+ */
+ protected void emit_LabelProvider___RightCurlyBracketKeyword_3_0_3___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__a_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * ('}' ('text' '{' '}')* 'image' '{')*
+ */
+ protected void emit_LabelProvider___RightCurlyBracketKeyword_3_1_3___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__a_ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * ('text' '{' '}' ('image' '{' '}')*)*
+ */
+ protected void emit_LabelProvider___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__a__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * ('text' '{' '}')*
+ */
+ protected void emit_LabelProvider___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * (
+ (
+ ('text' '{' ('}' 'text' '{')* '}')?
+ ('image' '{' '}')+
+ 'text'
+ '{'
+ ('}' 'text' '{')*
+ ('}' ('image' '{' '}')+ 'text' '{' ('}' 'text' '{')*)*
+ ) |
+ ('text' '{' ('}' 'text' '{')*)
+ )
+ */
+ protected void emit_LabelProvider___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a___or_____TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a_RightCurlyBracketKeyword_3_0_3__q___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__p_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a___RightCurlyBracketKeyword_3_0_3___ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3__p_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1___RightCurlyBracketKeyword_3_0_3_TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1__a__a__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * (('image' '{' '}') | ('text' '{' '}'))*
+ */
+ protected void emit_LabelProvider_____ImageKeyword_3_1_0_LeftCurlyBracketKeyword_3_1_1_RightCurlyBracketKeyword_3_1_3___or___TextKeyword_3_0_0_LeftCurlyBracketKeyword_3_0_1_RightCurlyBracketKeyword_3_0_3____a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * ('parts' '{' '}')*
+ */
+ protected void emit_Module___PartsKeyword_4_6_0_LeftCurlyBracketKeyword_4_6_1_RightCurlyBracketKeyword_4_6_3__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * ('}' 'parts' '{')*
+ */
+ protected void emit_Module___RightCurlyBracketKeyword_4_6_3_PartsKeyword_4_6_0_LeftCurlyBracketKeyword_4_6_1__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * ('text' '{' '}')?
+ */
+ protected void emit_PropertyDescriptionProvider___TextKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * ('children' '{' '}')?
+ */
+ protected void emit_ViewerContentProvider___ChildrenKeyword_3_0_LeftCurlyBracketKeyword_3_1_RightCurlyBracketKeyword_3_3__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * ';'?
+ */
+ protected void emit_XBlockExpression_SemicolonKeyword_2_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * ('(' ')')?
+ */
+ protected void emit_XConstructorCall___LeftParenthesisKeyword_4_0_RightParenthesisKeyword_4_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * ';'?
+ */
+ protected void emit_XExpressionInClosure_SemicolonKeyword_1_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * ('(' ')')?
+ */
+ protected void emit_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * ';'?
+ */
+ protected void emit_XImportDeclaration_SemicolonKeyword_2_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * '('*
+ */
+ protected void emit_XParenthesizedExpression_LeftParenthesisKeyword_0_a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+ /**
+ * Syntax:
+ * '('+
+ */
+ protected void emit_XParenthesizedExpression_LeftParenthesisKeyword_0_p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+ acceptNodes(transition, nodes);
+ }
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/services/EmfParsleyDslGrammarAccess.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/services/EmfParsleyDslGrammarAccess.java
new file mode 100644
index 000000000..6dd26d469
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/services/EmfParsleyDslGrammarAccess.java
@@ -0,0 +1,1975 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.dsl.services;
+
+import com.google.inject.Singleton;
+import com.google.inject.Inject;
+
+import java.util.List;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.service.GrammarProvider;
+import org.eclipse.xtext.service.AbstractElementFinder.*;
+
+import org.eclipse.xtext.xbase.services.XbaseGrammarAccess;
+import org.eclipse.xtext.xbase.services.XtypeGrammarAccess;
+
+@Singleton
+public class EmfParsleyDslGrammarAccess extends AbstractGrammarElementFinder {
+
+
+ public class ModelElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Model");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cImportSectionAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cImportSectionXImportSectionParserRuleCall_0_0 = (RuleCall)cImportSectionAssignment_0.eContents().get(0);
+ private final Assignment cModuleAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cModuleModuleParserRuleCall_1_0 = (RuleCall)cModuleAssignment_1.eContents().get(0);
+
+ //Model:
+ // importSection=XImportSection? module=Module;
+ public ParserRule getRule() { return rule; }
+
+ //importSection=XImportSection? module=Module
+ public Group getGroup() { return cGroup; }
+
+ //importSection=XImportSection?
+ public Assignment getImportSectionAssignment_0() { return cImportSectionAssignment_0; }
+
+ //XImportSection
+ public RuleCall getImportSectionXImportSectionParserRuleCall_0_0() { return cImportSectionXImportSectionParserRuleCall_0_0; }
+
+ //module=Module
+ public Assignment getModuleAssignment_1() { return cModuleAssignment_1; }
+
+ //Module
+ public RuleCall getModuleModuleParserRuleCall_1_0() { return cModuleModuleParserRuleCall_1_0; }
+ }
+
+ public class ModuleElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Module");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cModuleKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cNameQualifiedNameParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+ private final Assignment cExtendsClauseAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cExtendsClauseExtendsClauseParserRuleCall_2_0 = (RuleCall)cExtendsClauseAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
+ private final Assignment cLabelProviderAssignment_4_0 = (Assignment)cUnorderedGroup_4.eContents().get(0);
+ private final RuleCall cLabelProviderLabelProviderParserRuleCall_4_0_0 = (RuleCall)cLabelProviderAssignment_4_0.eContents().get(0);
+ private final Assignment cPropertyDescriptionProviderAssignment_4_1 = (Assignment)cUnorderedGroup_4.eContents().get(1);
+ private final RuleCall cPropertyDescriptionProviderPropertyDescriptionProviderParserRuleCall_4_1_0 = (RuleCall)cPropertyDescriptionProviderAssignment_4_1.eContents().get(0);
+ private final Assignment cFeaturesProviderAssignment_4_2 = (Assignment)cUnorderedGroup_4.eContents().get(2);
+ private final RuleCall cFeaturesProviderFeaturesProviderParserRuleCall_4_2_0 = (RuleCall)cFeaturesProviderAssignment_4_2.eContents().get(0);
+ private final Assignment cFormControlFactoryAssignment_4_3 = (Assignment)cUnorderedGroup_4.eContents().get(3);
+ private final RuleCall cFormControlFactoryFormControlFactoryParserRuleCall_4_3_0 = (RuleCall)cFormControlFactoryAssignment_4_3.eContents().get(0);
+ private final Assignment cProposalCreatorAssignment_4_4 = (Assignment)cUnorderedGroup_4.eContents().get(4);
+ private final RuleCall cProposalCreatorProposalCreatorParserRuleCall_4_4_0 = (RuleCall)cProposalCreatorAssignment_4_4.eContents().get(0);
+ private final Assignment cViewerContentProviderAssignment_4_5 = (Assignment)cUnorderedGroup_4.eContents().get(5);
+ private final RuleCall cViewerContentProviderViewerContentProviderParserRuleCall_4_5_0 = (RuleCall)cViewerContentProviderAssignment_4_5.eContents().get(0);
+ private final Group cGroup_4_6 = (Group)cUnorderedGroup_4.eContents().get(6);
+ private final Keyword cPartsKeyword_4_6_0 = (Keyword)cGroup_4_6.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_4_6_1 = (Keyword)cGroup_4_6.eContents().get(1);
+ private final Assignment cPartsAssignment_4_6_2 = (Assignment)cGroup_4_6.eContents().get(2);
+ private final RuleCall cPartsPartSpecificationParserRuleCall_4_6_2_0 = (RuleCall)cPartsAssignment_4_6_2.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_4_6_3 = (Keyword)cGroup_4_6.eContents().get(3);
+ private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+
+ //Module:
+ // "module" name=QualifiedName extendsClause=ExtendsClause? "{" (labelProvider=LabelProvider? &
+ // propertyDescriptionProvider=PropertyDescriptionProvider? & featuresProvider=FeaturesProvider? &
+ // formControlFactory=FormControlFactory? & proposalCreator=ProposalCreator? &
+ // viewerContentProvider=ViewerContentProvider? & ("parts" "{" parts+=PartSpecification* "}")?) "}";
+ public ParserRule getRule() { return rule; }
+
+ //"module" name=QualifiedName extendsClause=ExtendsClause? "{" (labelProvider=LabelProvider? &
+ //propertyDescriptionProvider=PropertyDescriptionProvider? & featuresProvider=FeaturesProvider? &
+ //formControlFactory=FormControlFactory? & proposalCreator=ProposalCreator? &
+ //viewerContentProvider=ViewerContentProvider? & ("parts" "{" parts+=PartSpecification* "}")?) "}"
+ public Group getGroup() { return cGroup; }
+
+ //"module"
+ public Keyword getModuleKeyword_0() { return cModuleKeyword_0; }
+
+ //name=QualifiedName
+ public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+ //QualifiedName
+ public RuleCall getNameQualifiedNameParserRuleCall_1_0() { return cNameQualifiedNameParserRuleCall_1_0; }
+
+ //extendsClause=ExtendsClause?
+ public Assignment getExtendsClauseAssignment_2() { return cExtendsClauseAssignment_2; }
+
+ //ExtendsClause
+ public RuleCall getExtendsClauseExtendsClauseParserRuleCall_2_0() { return cExtendsClauseExtendsClauseParserRuleCall_2_0; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //labelProvider=LabelProvider? & propertyDescriptionProvider=PropertyDescriptionProvider? &
+ //featuresProvider=FeaturesProvider? & formControlFactory=FormControlFactory? & proposalCreator=ProposalCreator? &
+ //viewerContentProvider=ViewerContentProvider? & ("parts" "{" parts+=PartSpecification* "}")?
+ public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
+
+ //labelProvider=LabelProvider?
+ public Assignment getLabelProviderAssignment_4_0() { return cLabelProviderAssignment_4_0; }
+
+ //LabelProvider
+ public RuleCall getLabelProviderLabelProviderParserRuleCall_4_0_0() { return cLabelProviderLabelProviderParserRuleCall_4_0_0; }
+
+ //propertyDescriptionProvider=PropertyDescriptionProvider?
+ public Assignment getPropertyDescriptionProviderAssignment_4_1() { return cPropertyDescriptionProviderAssignment_4_1; }
+
+ //PropertyDescriptionProvider
+ public RuleCall getPropertyDescriptionProviderPropertyDescriptionProviderParserRuleCall_4_1_0() { return cPropertyDescriptionProviderPropertyDescriptionProviderParserRuleCall_4_1_0; }
+
+ //featuresProvider=FeaturesProvider?
+ public Assignment getFeaturesProviderAssignment_4_2() { return cFeaturesProviderAssignment_4_2; }
+
+ //FeaturesProvider
+ public RuleCall getFeaturesProviderFeaturesProviderParserRuleCall_4_2_0() { return cFeaturesProviderFeaturesProviderParserRuleCall_4_2_0; }
+
+ //formControlFactory=FormControlFactory?
+ public Assignment getFormControlFactoryAssignment_4_3() { return cFormControlFactoryAssignment_4_3; }
+
+ //FormControlFactory
+ public RuleCall getFormControlFactoryFormControlFactoryParserRuleCall_4_3_0() { return cFormControlFactoryFormControlFactoryParserRuleCall_4_3_0; }
+
+ //proposalCreator=ProposalCreator?
+ public Assignment getProposalCreatorAssignment_4_4() { return cProposalCreatorAssignment_4_4; }
+
+ //ProposalCreator
+ public RuleCall getProposalCreatorProposalCreatorParserRuleCall_4_4_0() { return cProposalCreatorProposalCreatorParserRuleCall_4_4_0; }
+
+ //viewerContentProvider=ViewerContentProvider?
+ public Assignment getViewerContentProviderAssignment_4_5() { return cViewerContentProviderAssignment_4_5; }
+
+ //ViewerContentProvider
+ public RuleCall getViewerContentProviderViewerContentProviderParserRuleCall_4_5_0() { return cViewerContentProviderViewerContentProviderParserRuleCall_4_5_0; }
+
+ //("parts" "{" parts+=PartSpecification* "}")?
+ public Group getGroup_4_6() { return cGroup_4_6; }
+
+ //"parts"
+ public Keyword getPartsKeyword_4_6_0() { return cPartsKeyword_4_6_0; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_4_6_1() { return cLeftCurlyBracketKeyword_4_6_1; }
+
+ //parts+=PartSpecification*
+ public Assignment getPartsAssignment_4_6_2() { return cPartsAssignment_4_6_2; }
+
+ //PartSpecification
+ public RuleCall getPartsPartSpecificationParserRuleCall_4_6_2_0() { return cPartsPartSpecificationParserRuleCall_4_6_2_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_4_6_3() { return cRightCurlyBracketKeyword_4_6_3; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+ }
+
+ public class ExtendsClauseElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ExtendsClause");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cExtendsKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cSuperTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cSuperTypeJvmTypeReferenceParserRuleCall_1_0 = (RuleCall)cSuperTypeAssignment_1.eContents().get(0);
+
+ //ExtendsClause:
+ // "extends" superType=JvmTypeReference;
+ public ParserRule getRule() { return rule; }
+
+ //"extends" superType=JvmTypeReference
+ public Group getGroup() { return cGroup; }
+
+ //"extends"
+ public Keyword getExtendsKeyword_0() { return cExtendsKeyword_0; }
+
+ //superType=JvmTypeReference
+ public Assignment getSuperTypeAssignment_1() { return cSuperTypeAssignment_1; }
+
+ //JvmTypeReference
+ public RuleCall getSuperTypeJvmTypeReferenceParserRuleCall_1_0() { return cSuperTypeJvmTypeReferenceParserRuleCall_1_0; }
+ }
+
+ public class LabelProviderElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LabelProvider");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cLabelProviderAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cLabelProviderKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final UnorderedGroup cUnorderedGroup_3 = (UnorderedGroup)cGroup.eContents().get(3);
+ private final Group cGroup_3_0 = (Group)cUnorderedGroup_3.eContents().get(0);
+ private final Keyword cTextKeyword_3_0_0 = (Keyword)cGroup_3_0.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3_0_1 = (Keyword)cGroup_3_0.eContents().get(1);
+ private final Assignment cLabelSpecificationsAssignment_3_0_2 = (Assignment)cGroup_3_0.eContents().get(2);
+ private final RuleCall cLabelSpecificationsLabelSpecificationParserRuleCall_3_0_2_0 = (RuleCall)cLabelSpecificationsAssignment_3_0_2.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_3_0_3 = (Keyword)cGroup_3_0.eContents().get(3);
+ private final Group cGroup_3_1 = (Group)cUnorderedGroup_3.eContents().get(1);
+ private final Keyword cImageKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3_1_1 = (Keyword)cGroup_3_1.eContents().get(1);
+ private final Assignment cImageSpecificationsAssignment_3_1_2 = (Assignment)cGroup_3_1.eContents().get(2);
+ private final RuleCall cImageSpecificationsLabelSpecificationParserRuleCall_3_1_2_0 = (RuleCall)cImageSpecificationsAssignment_3_1_2.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_3_1_3 = (Keyword)cGroup_3_1.eContents().get(3);
+ private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+
+ //LabelProvider:
+ // {LabelProvider} "labelProvider" "{" (("text" "{" labelSpecifications+=LabelSpecification* "}")? & ("image" "{"
+ // imageSpecifications+=LabelSpecification* "}")?) "}";
+ public ParserRule getRule() { return rule; }
+
+ //{LabelProvider} "labelProvider" "{" (("text" "{" labelSpecifications+=LabelSpecification* "}")? & ("image" "{"
+ //imageSpecifications+=LabelSpecification* "}")?) "}"
+ public Group getGroup() { return cGroup; }
+
+ //{LabelProvider}
+ public Action getLabelProviderAction_0() { return cLabelProviderAction_0; }
+
+ //"labelProvider"
+ public Keyword getLabelProviderKeyword_1() { return cLabelProviderKeyword_1; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+ //("text" "{" labelSpecifications+=LabelSpecification* "}")? & ("image" "{" imageSpecifications+=LabelSpecification* "}")?
+ public UnorderedGroup getUnorderedGroup_3() { return cUnorderedGroup_3; }
+
+ //("text" "{" labelSpecifications+=LabelSpecification* "}")?
+ public Group getGroup_3_0() { return cGroup_3_0; }
+
+ //"text"
+ public Keyword getTextKeyword_3_0_0() { return cTextKeyword_3_0_0; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_3_0_1() { return cLeftCurlyBracketKeyword_3_0_1; }
+
+ //labelSpecifications+=LabelSpecification*
+ public Assignment getLabelSpecificationsAssignment_3_0_2() { return cLabelSpecificationsAssignment_3_0_2; }
+
+ //LabelSpecification
+ public RuleCall getLabelSpecificationsLabelSpecificationParserRuleCall_3_0_2_0() { return cLabelSpecificationsLabelSpecificationParserRuleCall_3_0_2_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_3_0_3() { return cRightCurlyBracketKeyword_3_0_3; }
+
+ //("image" "{" imageSpecifications+=LabelSpecification* "}")?
+ public Group getGroup_3_1() { return cGroup_3_1; }
+
+ //"image"
+ public Keyword getImageKeyword_3_1_0() { return cImageKeyword_3_1_0; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_3_1_1() { return cLeftCurlyBracketKeyword_3_1_1; }
+
+ //imageSpecifications+=LabelSpecification*
+ public Assignment getImageSpecificationsAssignment_3_1_2() { return cImageSpecificationsAssignment_3_1_2; }
+
+ //LabelSpecification
+ public RuleCall getImageSpecificationsLabelSpecificationParserRuleCall_3_1_2_0() { return cImageSpecificationsLabelSpecificationParserRuleCall_3_1_2_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_3_1_3() { return cRightCurlyBracketKeyword_3_1_3; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+ }
+
+ public class LabelSpecificationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "LabelSpecification");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cParameterTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cParameterTypeJvmTypeReferenceParserRuleCall_0_0 = (RuleCall)cParameterTypeAssignment_0.eContents().get(0);
+ private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cNameValidIDParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+ private final Keyword cHyphenMinusGreaterThanSignKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Assignment cExpressionAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cExpressionXExpressionParserRuleCall_3_0 = (RuleCall)cExpressionAssignment_3.eContents().get(0);
+
+ //LabelSpecification:
+ // parameterType=JvmTypeReference name=ValidID? "->" expression=XExpression;
+ public ParserRule getRule() { return rule; }
+
+ //parameterType=JvmTypeReference name=ValidID? "->" expression=XExpression
+ public Group getGroup() { return cGroup; }
+
+ //parameterType=JvmTypeReference
+ public Assignment getParameterTypeAssignment_0() { return cParameterTypeAssignment_0; }
+
+ //JvmTypeReference
+ public RuleCall getParameterTypeJvmTypeReferenceParserRuleCall_0_0() { return cParameterTypeJvmTypeReferenceParserRuleCall_0_0; }
+
+ //name=ValidID?
+ public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+ //ValidID
+ public RuleCall getNameValidIDParserRuleCall_1_0() { return cNameValidIDParserRuleCall_1_0; }
+
+ //"->"
+ public Keyword getHyphenMinusGreaterThanSignKeyword_2() { return cHyphenMinusGreaterThanSignKeyword_2; }
+
+ //expression=XExpression
+ public Assignment getExpressionAssignment_3() { return cExpressionAssignment_3; }
+
+ //XExpression
+ public RuleCall getExpressionXExpressionParserRuleCall_3_0() { return cExpressionXExpressionParserRuleCall_3_0; }
+ }
+
+ public class PropertyDescriptionProviderElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PropertyDescriptionProvider");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cPropertyDescriptionProviderAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cPropertyDescriptionProviderKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+ private final Keyword cTextKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
+ private final Assignment cLabelSpecificationsAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2);
+ private final RuleCall cLabelSpecificationsPropertyDescriptionSpecificationParserRuleCall_3_2_0 = (RuleCall)cLabelSpecificationsAssignment_3_2.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3);
+ private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+
+ //PropertyDescriptionProvider:
+ // {PropertyDescriptionProvider} "propertyDescriptionProvider" "{" ("text" "{"
+ // labelSpecifications+=PropertyDescriptionSpecification* "}")? "}";
+ public ParserRule getRule() { return rule; }
+
+ //{PropertyDescriptionProvider} "propertyDescriptionProvider" "{" ("text" "{"
+ //labelSpecifications+=PropertyDescriptionSpecification* "}")? "}"
+ public Group getGroup() { return cGroup; }
+
+ //{PropertyDescriptionProvider}
+ public Action getPropertyDescriptionProviderAction_0() { return cPropertyDescriptionProviderAction_0; }
+
+ //"propertyDescriptionProvider"
+ public Keyword getPropertyDescriptionProviderKeyword_1() { return cPropertyDescriptionProviderKeyword_1; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+ //("text" "{" labelSpecifications+=PropertyDescriptionSpecification* "}")?
+ public Group getGroup_3() { return cGroup_3; }
+
+ //"text"
+ public Keyword getTextKeyword_3_0() { return cTextKeyword_3_0; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_3_1() { return cLeftCurlyBracketKeyword_3_1; }
+
+ //labelSpecifications+=PropertyDescriptionSpecification*
+ public Assignment getLabelSpecificationsAssignment_3_2() { return cLabelSpecificationsAssignment_3_2; }
+
+ //PropertyDescriptionSpecification
+ public RuleCall getLabelSpecificationsPropertyDescriptionSpecificationParserRuleCall_3_2_0() { return cLabelSpecificationsPropertyDescriptionSpecificationParserRuleCall_3_2_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_3_3() { return cRightCurlyBracketKeyword_3_3; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+ }
+
+ public class PropertyDescriptionSpecificationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PropertyDescriptionSpecification");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cParameterTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cParameterTypeJvmTypeReferenceParserRuleCall_0_0 = (RuleCall)cParameterTypeAssignment_0.eContents().get(0);
+ private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cFeatureAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final CrossReference cFeatureJvmMemberCrossReference_2_0 = (CrossReference)cFeatureAssignment_2.eContents().get(0);
+ private final RuleCall cFeatureJvmMemberIDTerminalRuleCall_2_0_1 = (RuleCall)cFeatureJvmMemberCrossReference_2_0.eContents().get(1);
+ private final Keyword cHyphenMinusGreaterThanSignKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final Assignment cExpressionAssignment_4 = (Assignment)cGroup.eContents().get(4);
+ private final RuleCall cExpressionXExpressionParserRuleCall_4_0 = (RuleCall)cExpressionAssignment_4.eContents().get(0);
+
+ //PropertyDescriptionSpecification:
+ // parameterType=JvmTypeReference ":" feature=[types::JvmMember] "->" expression=XExpression;
+ public ParserRule getRule() { return rule; }
+
+ //parameterType=JvmTypeReference ":" feature=[types::JvmMember] "->" expression=XExpression
+ public Group getGroup() { return cGroup; }
+
+ //parameterType=JvmTypeReference
+ public Assignment getParameterTypeAssignment_0() { return cParameterTypeAssignment_0; }
+
+ //JvmTypeReference
+ public RuleCall getParameterTypeJvmTypeReferenceParserRuleCall_0_0() { return cParameterTypeJvmTypeReferenceParserRuleCall_0_0; }
+
+ //":"
+ public Keyword getColonKeyword_1() { return cColonKeyword_1; }
+
+ //feature=[types::JvmMember]
+ public Assignment getFeatureAssignment_2() { return cFeatureAssignment_2; }
+
+ //[types::JvmMember]
+ public CrossReference getFeatureJvmMemberCrossReference_2_0() { return cFeatureJvmMemberCrossReference_2_0; }
+
+ //ID
+ public RuleCall getFeatureJvmMemberIDTerminalRuleCall_2_0_1() { return cFeatureJvmMemberIDTerminalRuleCall_2_0_1; }
+
+ //"->"
+ public Keyword getHyphenMinusGreaterThanSignKeyword_3() { return cHyphenMinusGreaterThanSignKeyword_3; }
+
+ //expression=XExpression
+ public Assignment getExpressionAssignment_4() { return cExpressionAssignment_4; }
+
+ //XExpression
+ public RuleCall getExpressionXExpressionParserRuleCall_4_0() { return cExpressionXExpressionParserRuleCall_4_0; }
+ }
+
+ public class FeaturesProviderElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "FeaturesProvider");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cFeaturesProviderAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cFeaturesProviderKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+ private final Keyword cFeaturesKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
+ private final Assignment cFeatureSpecificationsAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2);
+ private final RuleCall cFeatureSpecificationsFeatureSpecificationParserRuleCall_3_2_0 = (RuleCall)cFeatureSpecificationsAssignment_3_2.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3);
+ private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+
+ //FeaturesProvider:
+ // {FeaturesProvider} "featuresProvider" "{" ("features" "{" featureSpecifications+=FeatureSpecification* "}")? "}";
+ public ParserRule getRule() { return rule; }
+
+ //{FeaturesProvider} "featuresProvider" "{" ("features" "{" featureSpecifications+=FeatureSpecification* "}")? "}"
+ public Group getGroup() { return cGroup; }
+
+ //{FeaturesProvider}
+ public Action getFeaturesProviderAction_0() { return cFeaturesProviderAction_0; }
+
+ //"featuresProvider"
+ public Keyword getFeaturesProviderKeyword_1() { return cFeaturesProviderKeyword_1; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+ //("features" "{" featureSpecifications+=FeatureSpecification* "}")?
+ public Group getGroup_3() { return cGroup_3; }
+
+ //"features"
+ public Keyword getFeaturesKeyword_3_0() { return cFeaturesKeyword_3_0; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_3_1() { return cLeftCurlyBracketKeyword_3_1; }
+
+ //featureSpecifications+=FeatureSpecification*
+ public Assignment getFeatureSpecificationsAssignment_3_2() { return cFeatureSpecificationsAssignment_3_2; }
+
+ //FeatureSpecification
+ public RuleCall getFeatureSpecificationsFeatureSpecificationParserRuleCall_3_2_0() { return cFeatureSpecificationsFeatureSpecificationParserRuleCall_3_2_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_3_3() { return cRightCurlyBracketKeyword_3_3; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+ }
+
+ public class FeatureSpecificationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "FeatureSpecification");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cParameterTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cParameterTypeJvmTypeReferenceParserRuleCall_0_0 = (RuleCall)cParameterTypeAssignment_0.eContents().get(0);
+ private final Keyword cHyphenMinusGreaterThanSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cFeaturesAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final CrossReference cFeaturesJvmMemberCrossReference_2_0 = (CrossReference)cFeaturesAssignment_2.eContents().get(0);
+ private final RuleCall cFeaturesJvmMemberIDTerminalRuleCall_2_0_1 = (RuleCall)cFeaturesJvmMemberCrossReference_2_0.eContents().get(1);
+ private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+ private final Keyword cCommaKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+ private final Assignment cFeaturesAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+ private final CrossReference cFeaturesJvmMemberCrossReference_3_1_0 = (CrossReference)cFeaturesAssignment_3_1.eContents().get(0);
+ private final RuleCall cFeaturesJvmMemberIDTerminalRuleCall_3_1_0_1 = (RuleCall)cFeaturesJvmMemberCrossReference_3_1_0.eContents().get(1);
+
+ //FeatureSpecification:
+ // parameterType=JvmTypeReference "->" features+=[types::JvmMember] ("," features+=[types::JvmMember])*;
+ public ParserRule getRule() { return rule; }
+
+ //parameterType=JvmTypeReference "->" features+=[types::JvmMember] ("," features+=[types::JvmMember])*
+ public Group getGroup() { return cGroup; }
+
+ //parameterType=JvmTypeReference
+ public Assignment getParameterTypeAssignment_0() { return cParameterTypeAssignment_0; }
+
+ //JvmTypeReference
+ public RuleCall getParameterTypeJvmTypeReferenceParserRuleCall_0_0() { return cParameterTypeJvmTypeReferenceParserRuleCall_0_0; }
+
+ //"->"
+ public Keyword getHyphenMinusGreaterThanSignKeyword_1() { return cHyphenMinusGreaterThanSignKeyword_1; }
+
+ //features+=[types::JvmMember]
+ public Assignment getFeaturesAssignment_2() { return cFeaturesAssignment_2; }
+
+ //[types::JvmMember]
+ public CrossReference getFeaturesJvmMemberCrossReference_2_0() { return cFeaturesJvmMemberCrossReference_2_0; }
+
+ //ID
+ public RuleCall getFeaturesJvmMemberIDTerminalRuleCall_2_0_1() { return cFeaturesJvmMemberIDTerminalRuleCall_2_0_1; }
+
+ //("," features+=[types::JvmMember])*
+ public Group getGroup_3() { return cGroup_3; }
+
+ //","
+ public Keyword getCommaKeyword_3_0() { return cCommaKeyword_3_0; }
+
+ //features+=[types::JvmMember]
+ public Assignment getFeaturesAssignment_3_1() { return cFeaturesAssignment_3_1; }
+
+ //[types::JvmMember]
+ public CrossReference getFeaturesJvmMemberCrossReference_3_1_0() { return cFeaturesJvmMemberCrossReference_3_1_0; }
+
+ //ID
+ public RuleCall getFeaturesJvmMemberIDTerminalRuleCall_3_1_0_1() { return cFeaturesJvmMemberIDTerminalRuleCall_3_1_0_1; }
+ }
+
+ public class FormControlFactoryElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "FormControlFactory");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cFormControlFactoryAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cFormControlFactoryKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+ private final Keyword cControlKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
+ private final Assignment cControlSpecificationsAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2);
+ private final RuleCall cControlSpecificationsFormControlSpecificationParserRuleCall_3_2_0 = (RuleCall)cControlSpecificationsAssignment_3_2.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3);
+ private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+
+ //FormControlFactory:
+ // {FormControlFactory} "formControlFactory" "{" ("control" "{" controlSpecifications+=FormControlSpecification* "}")?
+ // "}";
+ public ParserRule getRule() { return rule; }
+
+ //{FormControlFactory} "formControlFactory" "{" ("control" "{" controlSpecifications+=FormControlSpecification* "}")? "}"
+ public Group getGroup() { return cGroup; }
+
+ //{FormControlFactory}
+ public Action getFormControlFactoryAction_0() { return cFormControlFactoryAction_0; }
+
+ //"formControlFactory"
+ public Keyword getFormControlFactoryKeyword_1() { return cFormControlFactoryKeyword_1; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+ //("control" "{" controlSpecifications+=FormControlSpecification* "}")?
+ public Group getGroup_3() { return cGroup_3; }
+
+ //"control"
+ public Keyword getControlKeyword_3_0() { return cControlKeyword_3_0; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_3_1() { return cLeftCurlyBracketKeyword_3_1; }
+
+ //controlSpecifications+=FormControlSpecification*
+ public Assignment getControlSpecificationsAssignment_3_2() { return cControlSpecificationsAssignment_3_2; }
+
+ //FormControlSpecification
+ public RuleCall getControlSpecificationsFormControlSpecificationParserRuleCall_3_2_0() { return cControlSpecificationsFormControlSpecificationParserRuleCall_3_2_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_3_3() { return cRightCurlyBracketKeyword_3_3; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+ }
+
+ public class FormControlSpecificationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "FormControlSpecification");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cParameterTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cParameterTypeJvmTypeReferenceParserRuleCall_0_0 = (RuleCall)cParameterTypeAssignment_0.eContents().get(0);
+ private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cFeatureAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final CrossReference cFeatureJvmMemberCrossReference_2_0 = (CrossReference)cFeatureAssignment_2.eContents().get(0);
+ private final RuleCall cFeatureJvmMemberIDTerminalRuleCall_2_0_1 = (RuleCall)cFeatureJvmMemberCrossReference_2_0.eContents().get(1);
+ private final Keyword cHyphenMinusGreaterThanSignKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final Assignment cExpressionAssignment_4 = (Assignment)cGroup.eContents().get(4);
+ private final RuleCall cExpressionXExpressionParserRuleCall_4_0 = (RuleCall)cExpressionAssignment_4.eContents().get(0);
+ private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
+ private final Keyword cTargetKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
+ private final Assignment cTargetAssignment_5_1 = (Assignment)cGroup_5.eContents().get(1);
+ private final RuleCall cTargetXExpressionParserRuleCall_5_1_0 = (RuleCall)cTargetAssignment_5_1.eContents().get(0);
+
+ //FormControlSpecification:
+ // parameterType=JvmTypeReference ":" feature=[types::JvmMember] "->" expression=XExpression ("target"
+ // target=XExpression)?;
+ public ParserRule getRule() { return rule; }
+
+ //parameterType=JvmTypeReference ":" feature=[types::JvmMember] "->" expression=XExpression ("target" target=XExpression)?
+ public Group getGroup() { return cGroup; }
+
+ //parameterType=JvmTypeReference
+ public Assignment getParameterTypeAssignment_0() { return cParameterTypeAssignment_0; }
+
+ //JvmTypeReference
+ public RuleCall getParameterTypeJvmTypeReferenceParserRuleCall_0_0() { return cParameterTypeJvmTypeReferenceParserRuleCall_0_0; }
+
+ //":"
+ public Keyword getColonKeyword_1() { return cColonKeyword_1; }
+
+ //feature=[types::JvmMember]
+ public Assignment getFeatureAssignment_2() { return cFeatureAssignment_2; }
+
+ //[types::JvmMember]
+ public CrossReference getFeatureJvmMemberCrossReference_2_0() { return cFeatureJvmMemberCrossReference_2_0; }
+
+ //ID
+ public RuleCall getFeatureJvmMemberIDTerminalRuleCall_2_0_1() { return cFeatureJvmMemberIDTerminalRuleCall_2_0_1; }
+
+ //"->"
+ public Keyword getHyphenMinusGreaterThanSignKeyword_3() { return cHyphenMinusGreaterThanSignKeyword_3; }
+
+ //expression=XExpression
+ public Assignment getExpressionAssignment_4() { return cExpressionAssignment_4; }
+
+ //XExpression
+ public RuleCall getExpressionXExpressionParserRuleCall_4_0() { return cExpressionXExpressionParserRuleCall_4_0; }
+
+ //("target" target=XExpression)?
+ public Group getGroup_5() { return cGroup_5; }
+
+ //"target"
+ public Keyword getTargetKeyword_5_0() { return cTargetKeyword_5_0; }
+
+ //target=XExpression
+ public Assignment getTargetAssignment_5_1() { return cTargetAssignment_5_1; }
+
+ //XExpression
+ public RuleCall getTargetXExpressionParserRuleCall_5_1_0() { return cTargetXExpressionParserRuleCall_5_1_0; }
+ }
+
+ public class ProposalCreatorElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ProposalCreator");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cProposalCreatorAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cProposalsKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Assignment cProposalsSpecificationsAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cProposalsSpecificationsProposalSpecificationParserRuleCall_3_0 = (RuleCall)cProposalsSpecificationsAssignment_3.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+
+ //ProposalCreator:
+ // {ProposalCreator} "proposals" "{" proposalsSpecifications+=ProposalSpecification* "}";
+ public ParserRule getRule() { return rule; }
+
+ //{ProposalCreator} "proposals" "{" proposalsSpecifications+=ProposalSpecification* "}"
+ public Group getGroup() { return cGroup; }
+
+ //{ProposalCreator}
+ public Action getProposalCreatorAction_0() { return cProposalCreatorAction_0; }
+
+ //"proposals"
+ public Keyword getProposalsKeyword_1() { return cProposalsKeyword_1; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+ //proposalsSpecifications+=ProposalSpecification*
+ public Assignment getProposalsSpecificationsAssignment_3() { return cProposalsSpecificationsAssignment_3; }
+
+ //ProposalSpecification
+ public RuleCall getProposalsSpecificationsProposalSpecificationParserRuleCall_3_0() { return cProposalsSpecificationsProposalSpecificationParserRuleCall_3_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+ }
+
+ public class ProposalSpecificationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ProposalSpecification");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cParameterTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cParameterTypeJvmTypeReferenceParserRuleCall_0_0 = (RuleCall)cParameterTypeAssignment_0.eContents().get(0);
+ private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cFeatureAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final CrossReference cFeatureJvmMemberCrossReference_2_0 = (CrossReference)cFeatureAssignment_2.eContents().get(0);
+ private final RuleCall cFeatureJvmMemberIDTerminalRuleCall_2_0_1 = (RuleCall)cFeatureJvmMemberCrossReference_2_0.eContents().get(1);
+ private final Keyword cHyphenMinusGreaterThanSignKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final Assignment cExpressionAssignment_4 = (Assignment)cGroup.eContents().get(4);
+ private final RuleCall cExpressionXExpressionParserRuleCall_4_0 = (RuleCall)cExpressionAssignment_4.eContents().get(0);
+
+ //ProposalSpecification:
+ // parameterType=JvmTypeReference ":" feature=[types::JvmMember] "->" expression=XExpression;
+ public ParserRule getRule() { return rule; }
+
+ //parameterType=JvmTypeReference ":" feature=[types::JvmMember] "->" expression=XExpression
+ public Group getGroup() { return cGroup; }
+
+ //parameterType=JvmTypeReference
+ public Assignment getParameterTypeAssignment_0() { return cParameterTypeAssignment_0; }
+
+ //JvmTypeReference
+ public RuleCall getParameterTypeJvmTypeReferenceParserRuleCall_0_0() { return cParameterTypeJvmTypeReferenceParserRuleCall_0_0; }
+
+ //":"
+ public Keyword getColonKeyword_1() { return cColonKeyword_1; }
+
+ //feature=[types::JvmMember]
+ public Assignment getFeatureAssignment_2() { return cFeatureAssignment_2; }
+
+ //[types::JvmMember]
+ public CrossReference getFeatureJvmMemberCrossReference_2_0() { return cFeatureJvmMemberCrossReference_2_0; }
+
+ //ID
+ public RuleCall getFeatureJvmMemberIDTerminalRuleCall_2_0_1() { return cFeatureJvmMemberIDTerminalRuleCall_2_0_1; }
+
+ //"->"
+ public Keyword getHyphenMinusGreaterThanSignKeyword_3() { return cHyphenMinusGreaterThanSignKeyword_3; }
+
+ //expression=XExpression
+ public Assignment getExpressionAssignment_4() { return cExpressionAssignment_4; }
+
+ //XExpression
+ public RuleCall getExpressionXExpressionParserRuleCall_4_0() { return cExpressionXExpressionParserRuleCall_4_0; }
+ }
+
+ public class ViewerContentProviderElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ViewerContentProvider");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cViewerContentProviderAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cViewerContentProviderKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+ private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+ private final Keyword cChildrenKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
+ private final Assignment cChildrenSpecificationsAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2);
+ private final RuleCall cChildrenSpecificationsLabelSpecificationParserRuleCall_3_2_0 = (RuleCall)cChildrenSpecificationsAssignment_3_2.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3);
+ private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+
+ //ViewerContentProvider:
+ // {ViewerContentProvider} "viewerContentProvider" "{" ("children" "{" childrenSpecifications+=LabelSpecification* "}")?
+ // "}";
+ public ParserRule getRule() { return rule; }
+
+ //{ViewerContentProvider} "viewerContentProvider" "{" ("children" "{" childrenSpecifications+=LabelSpecification* "}")?
+ //"}"
+ public Group getGroup() { return cGroup; }
+
+ //{ViewerContentProvider}
+ public Action getViewerContentProviderAction_0() { return cViewerContentProviderAction_0; }
+
+ //"viewerContentProvider"
+ public Keyword getViewerContentProviderKeyword_1() { return cViewerContentProviderKeyword_1; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+ //("children" "{" childrenSpecifications+=LabelSpecification* "}")?
+ public Group getGroup_3() { return cGroup_3; }
+
+ //"children"
+ public Keyword getChildrenKeyword_3_0() { return cChildrenKeyword_3_0; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_3_1() { return cLeftCurlyBracketKeyword_3_1; }
+
+ //childrenSpecifications+=LabelSpecification*
+ public Assignment getChildrenSpecificationsAssignment_3_2() { return cChildrenSpecificationsAssignment_3_2; }
+
+ //LabelSpecification
+ public RuleCall getChildrenSpecificationsLabelSpecificationParserRuleCall_3_2_0() { return cChildrenSpecificationsLabelSpecificationParserRuleCall_3_2_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_3_3() { return cRightCurlyBracketKeyword_3_3; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+ }
+
+ public class EmfFeatureAccessElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "EmfFeatureAccess");
+ private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+ private final RuleCall cPropertyDescriptionSpecificationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+ private final RuleCall cFeatureSpecificationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+ private final RuleCall cFormControlSpecificationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+ private final RuleCall cProposalSpecificationParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+
+ //// a utility base class for rules which access features of an EClass
+ //EmfFeatureAccess:
+ // PropertyDescriptionSpecification | FeatureSpecification | FormControlSpecification | ProposalSpecification;
+ public ParserRule getRule() { return rule; }
+
+ //PropertyDescriptionSpecification | FeatureSpecification | FormControlSpecification | ProposalSpecification
+ public Alternatives getAlternatives() { return cAlternatives; }
+
+ //PropertyDescriptionSpecification
+ public RuleCall getPropertyDescriptionSpecificationParserRuleCall_0() { return cPropertyDescriptionSpecificationParserRuleCall_0; }
+
+ //FeatureSpecification
+ public RuleCall getFeatureSpecificationParserRuleCall_1() { return cFeatureSpecificationParserRuleCall_1; }
+
+ //FormControlSpecification
+ public RuleCall getFormControlSpecificationParserRuleCall_2() { return cFormControlSpecificationParserRuleCall_2; }
+
+ //ProposalSpecification
+ public RuleCall getProposalSpecificationParserRuleCall_3() { return cProposalSpecificationParserRuleCall_3; }
+ }
+
+ public class WithExtendsClauseElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "WithExtendsClause");
+ private final RuleCall cModuleParserRuleCall = (RuleCall)rule.eContents().get(1);
+
+ //// a utility base class for rules with 'extends' clause
+ //WithExtendsClause:
+ // Module;
+ public ParserRule getRule() { return rule; }
+
+ //Module
+ public RuleCall getModuleParserRuleCall() { return cModuleParserRuleCall; }
+ }
+
+ public class PartSpecificationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PartSpecification");
+ private final RuleCall cViewSpecificationParserRuleCall = (RuleCall)rule.eContents().get(1);
+
+ //PartSpecification:
+ // ViewSpecification;
+ public ParserRule getRule() { return rule; }
+
+ //ViewSpecification
+ public RuleCall getViewSpecificationParserRuleCall() { return cViewSpecificationParserRuleCall; }
+ }
+
+ public class ViewSpecificationElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ViewSpecification");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cViewSpecificationAction_0 = (Action)cGroup.eContents().get(0);
+ private final Keyword cViewpartKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cIdAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final RuleCall cIdQualifiedNameParserRuleCall_2_0 = (RuleCall)cIdAssignment_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+ private final Keyword cViewnameKeyword_4 = (Keyword)cGroup.eContents().get(4);
+ private final Assignment cViewNameAssignment_5 = (Assignment)cGroup.eContents().get(5);
+ private final RuleCall cViewNameSTRINGTerminalRuleCall_5_0 = (RuleCall)cViewNameAssignment_5.eContents().get(0);
+ private final Keyword cViewclassKeyword_6 = (Keyword)cGroup.eContents().get(6);
+ private final Assignment cTypeAssignment_7 = (Assignment)cGroup.eContents().get(7);
+ private final RuleCall cTypeJvmTypeReferenceParserRuleCall_7_0 = (RuleCall)cTypeAssignment_7.eContents().get(0);
+ private final Group cGroup_8 = (Group)cGroup.eContents().get(8);
+ private final Keyword cViewcategoryKeyword_8_0 = (Keyword)cGroup_8.eContents().get(0);
+ private final Assignment cCategoryAssignment_8_1 = (Assignment)cGroup_8.eContents().get(1);
+ private final RuleCall cCategoryQualifiedNameParserRuleCall_8_1_0 = (RuleCall)cCategoryAssignment_8_1.eContents().get(0);
+ private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
+
+ //ViewSpecification:
+ // {ViewSpecification} "viewpart" id=QualifiedName "{" "viewname" viewName=STRING "viewclass" type=JvmTypeReference
+ // ("viewcategory" category=QualifiedName)? "}";
+ public ParserRule getRule() { return rule; }
+
+ //{ViewSpecification} "viewpart" id=QualifiedName "{" "viewname" viewName=STRING "viewclass" type=JvmTypeReference
+ //("viewcategory" category=QualifiedName)? "}"
+ public Group getGroup() { return cGroup; }
+
+ //{ViewSpecification}
+ public Action getViewSpecificationAction_0() { return cViewSpecificationAction_0; }
+
+ //"viewpart"
+ public Keyword getViewpartKeyword_1() { return cViewpartKeyword_1; }
+
+ //id=QualifiedName
+ public Assignment getIdAssignment_2() { return cIdAssignment_2; }
+
+ //QualifiedName
+ public RuleCall getIdQualifiedNameParserRuleCall_2_0() { return cIdQualifiedNameParserRuleCall_2_0; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+ //"viewname"
+ public Keyword getViewnameKeyword_4() { return cViewnameKeyword_4; }
+
+ //viewName=STRING
+ public Assignment getViewNameAssignment_5() { return cViewNameAssignment_5; }
+
+ //STRING
+ public RuleCall getViewNameSTRINGTerminalRuleCall_5_0() { return cViewNameSTRINGTerminalRuleCall_5_0; }
+
+ //"viewclass"
+ public Keyword getViewclassKeyword_6() { return cViewclassKeyword_6; }
+
+ //type=JvmTypeReference
+ public Assignment getTypeAssignment_7() { return cTypeAssignment_7; }
+
+ //JvmTypeReference
+ public RuleCall getTypeJvmTypeReferenceParserRuleCall_7_0() { return cTypeJvmTypeReferenceParserRuleCall_7_0; }
+
+ //("viewcategory" category=QualifiedName)?
+ public Group getGroup_8() { return cGroup_8; }
+
+ //"viewcategory"
+ public Keyword getViewcategoryKeyword_8_0() { return cViewcategoryKeyword_8_0; }
+
+ //category=QualifiedName
+ public Assignment getCategoryAssignment_8_1() { return cCategoryAssignment_8_1; }
+
+ //QualifiedName
+ public RuleCall getCategoryQualifiedNameParserRuleCall_8_1_0() { return cCategoryQualifiedNameParserRuleCall_8_1_0; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; }
+ }
+
+
+ private ModelElements pModel;
+ private ModuleElements pModule;
+ private ExtendsClauseElements pExtendsClause;
+ private LabelProviderElements pLabelProvider;
+ private LabelSpecificationElements pLabelSpecification;
+ private PropertyDescriptionProviderElements pPropertyDescriptionProvider;
+ private PropertyDescriptionSpecificationElements pPropertyDescriptionSpecification;
+ private FeaturesProviderElements pFeaturesProvider;
+ private FeatureSpecificationElements pFeatureSpecification;
+ private FormControlFactoryElements pFormControlFactory;
+ private FormControlSpecificationElements pFormControlSpecification;
+ private ProposalCreatorElements pProposalCreator;
+ private ProposalSpecificationElements pProposalSpecification;
+ private ViewerContentProviderElements pViewerContentProvider;
+ private EmfFeatureAccessElements pEmfFeatureAccess;
+ private WithExtendsClauseElements pWithExtendsClause;
+ private PartSpecificationElements pPartSpecification;
+ private ViewSpecificationElements pViewSpecification;
+
+ private final Grammar grammar;
+
+ private XbaseGrammarAccess gaXbase;
+
+ @Inject
+ public EmfParsleyDslGrammarAccess(GrammarProvider grammarProvider,
+ XbaseGrammarAccess gaXbase) {
+ this.grammar = internalFindGrammar(grammarProvider);
+ this.gaXbase = gaXbase;
+ }
+
+ protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
+ Grammar grammar = grammarProvider.getGrammar(this);
+ while (grammar != null) {
+ if ("org.eclipse.emf.parsley.dsl.EmfParsleyDsl".equals(grammar.getName())) {
+ return grammar;
+ }
+ List<Grammar> grammars = grammar.getUsedGrammars();
+ if (!grammars.isEmpty()) {
+ grammar = grammars.iterator().next();
+ } else {
+ return null;
+ }
+ }
+ return grammar;
+ }
+
+
+ public Grammar getGrammar() {
+ return grammar;
+ }
+
+
+ public XbaseGrammarAccess getXbaseGrammarAccess() {
+ return gaXbase;
+ }
+
+
+ //Model:
+ // importSection=XImportSection? module=Module;
+ public ModelElements getModelAccess() {
+ return (pModel != null) ? pModel : (pModel = new ModelElements());
+ }
+
+ public ParserRule getModelRule() {
+ return getModelAccess().getRule();
+ }
+
+ //Module:
+ // "module" name=QualifiedName extendsClause=ExtendsClause? "{" (labelProvider=LabelProvider? &
+ // propertyDescriptionProvider=PropertyDescriptionProvider? & featuresProvider=FeaturesProvider? &
+ // formControlFactory=FormControlFactory? & proposalCreator=ProposalCreator? &
+ // viewerContentProvider=ViewerContentProvider? & ("parts" "{" parts+=PartSpecification* "}")?) "}";
+ public ModuleElements getModuleAccess() {
+ return (pModule != null) ? pModule : (pModule = new ModuleElements());
+ }
+
+ public ParserRule getModuleRule() {
+ return getModuleAccess().getRule();
+ }
+
+ //ExtendsClause:
+ // "extends" superType=JvmTypeReference;
+ public ExtendsClauseElements getExtendsClauseAccess() {
+ return (pExtendsClause != null) ? pExtendsClause : (pExtendsClause = new ExtendsClauseElements());
+ }
+
+ public ParserRule getExtendsClauseRule() {
+ return getExtendsClauseAccess().getRule();
+ }
+
+ //LabelProvider:
+ // {LabelProvider} "labelProvider" "{" (("text" "{" labelSpecifications+=LabelSpecification* "}")? & ("image" "{"
+ // imageSpecifications+=LabelSpecification* "}")?) "}";
+ public LabelProviderElements getLabelProviderAccess() {
+ return (pLabelProvider != null) ? pLabelProvider : (pLabelProvider = new LabelProviderElements());
+ }
+
+ public ParserRule getLabelProviderRule() {
+ return getLabelProviderAccess().getRule();
+ }
+
+ //LabelSpecification:
+ // parameterType=JvmTypeReference name=ValidID? "->" expression=XExpression;
+ public LabelSpecificationElements getLabelSpecificationAccess() {
+ return (pLabelSpecification != null) ? pLabelSpecification : (pLabelSpecification = new LabelSpecificationElements());
+ }
+
+ public ParserRule getLabelSpecificationRule() {
+ return getLabelSpecificationAccess().getRule();
+ }
+
+ //PropertyDescriptionProvider:
+ // {PropertyDescriptionProvider} "propertyDescriptionProvider" "{" ("text" "{"
+ // labelSpecifications+=PropertyDescriptionSpecification* "}")? "}";
+ public PropertyDescriptionProviderElements getPropertyDescriptionProviderAccess() {
+ return (pPropertyDescriptionProvider != null) ? pPropertyDescriptionProvider : (pPropertyDescriptionProvider = new PropertyDescriptionProviderElements());
+ }
+
+ public ParserRule getPropertyDescriptionProviderRule() {
+ return getPropertyDescriptionProviderAccess().getRule();
+ }
+
+ //PropertyDescriptionSpecification:
+ // parameterType=JvmTypeReference ":" feature=[types::JvmMember] "->" expression=XExpression;
+ public PropertyDescriptionSpecificationElements getPropertyDescriptionSpecificationAccess() {
+ return (pPropertyDescriptionSpecification != null) ? pPropertyDescriptionSpecification : (pPropertyDescriptionSpecification = new PropertyDescriptionSpecificationElements());
+ }
+
+ public ParserRule getPropertyDescriptionSpecificationRule() {
+ return getPropertyDescriptionSpecificationAccess().getRule();
+ }
+
+ //FeaturesProvider:
+ // {FeaturesProvider} "featuresProvider" "{" ("features" "{" featureSpecifications+=FeatureSpecification* "}")? "}";
+ public FeaturesProviderElements getFeaturesProviderAccess() {
+ return (pFeaturesProvider != null) ? pFeaturesProvider : (pFeaturesProvider = new FeaturesProviderElements());
+ }
+
+ public ParserRule getFeaturesProviderRule() {
+ return getFeaturesProviderAccess().getRule();
+ }
+
+ //FeatureSpecification:
+ // parameterType=JvmTypeReference "->" features+=[types::JvmMember] ("," features+=[types::JvmMember])*;
+ public FeatureSpecificationElements getFeatureSpecificationAccess() {
+ return (pFeatureSpecification != null) ? pFeatureSpecification : (pFeatureSpecification = new FeatureSpecificationElements());
+ }
+
+ public ParserRule getFeatureSpecificationRule() {
+ return getFeatureSpecificationAccess().getRule();
+ }
+
+ //FormControlFactory:
+ // {FormControlFactory} "formControlFactory" "{" ("control" "{" controlSpecifications+=FormControlSpecification* "}")?
+ // "}";
+ public FormControlFactoryElements getFormControlFactoryAccess() {
+ return (pFormControlFactory != null) ? pFormControlFactory : (pFormControlFactory = new FormControlFactoryElements());
+ }
+
+ public ParserRule getFormControlFactoryRule() {
+ return getFormControlFactoryAccess().getRule();
+ }
+
+ //FormControlSpecification:
+ // parameterType=JvmTypeReference ":" feature=[types::JvmMember] "->" expression=XExpression ("target"
+ // target=XExpression)?;
+ public FormControlSpecificationElements getFormControlSpecificationAccess() {
+ return (pFormControlSpecification != null) ? pFormControlSpecification : (pFormControlSpecification = new FormControlSpecificationElements());
+ }
+
+ public ParserRule getFormControlSpecificationRule() {
+ return getFormControlSpecificationAccess().getRule();
+ }
+
+ //ProposalCreator:
+ // {ProposalCreator} "proposals" "{" proposalsSpecifications+=ProposalSpecification* "}";
+ public ProposalCreatorElements getProposalCreatorAccess() {
+ return (pProposalCreator != null) ? pProposalCreator : (pProposalCreator = new ProposalCreatorElements());
+ }
+
+ public ParserRule getProposalCreatorRule() {
+ return getProposalCreatorAccess().getRule();
+ }
+
+ //ProposalSpecification:
+ // parameterType=JvmTypeReference ":" feature=[types::JvmMember] "->" expression=XExpression;
+ public ProposalSpecificationElements getProposalSpecificationAccess() {
+ return (pProposalSpecification != null) ? pProposalSpecification : (pProposalSpecification = new ProposalSpecificationElements());
+ }
+
+ public ParserRule getProposalSpecificationRule() {
+ return getProposalSpecificationAccess().getRule();
+ }
+
+ //ViewerContentProvider:
+ // {ViewerContentProvider} "viewerContentProvider" "{" ("children" "{" childrenSpecifications+=LabelSpecification* "}")?
+ // "}";
+ public ViewerContentProviderElements getViewerContentProviderAccess() {
+ return (pViewerContentProvider != null) ? pViewerContentProvider : (pViewerContentProvider = new ViewerContentProviderElements());
+ }
+
+ public ParserRule getViewerContentProviderRule() {
+ return getViewerContentProviderAccess().getRule();
+ }
+
+ //// a utility base class for rules which access features of an EClass
+ //EmfFeatureAccess:
+ // PropertyDescriptionSpecification | FeatureSpecification | FormControlSpecification | ProposalSpecification;
+ public EmfFeatureAccessElements getEmfFeatureAccessAccess() {
+ return (pEmfFeatureAccess != null) ? pEmfFeatureAccess : (pEmfFeatureAccess = new EmfFeatureAccessElements());
+ }
+
+ public ParserRule getEmfFeatureAccessRule() {
+ return getEmfFeatureAccessAccess().getRule();
+ }
+
+ //// a utility base class for rules with 'extends' clause
+ //WithExtendsClause:
+ // Module;
+ public WithExtendsClauseElements getWithExtendsClauseAccess() {
+ return (pWithExtendsClause != null) ? pWithExtendsClause : (pWithExtendsClause = new WithExtendsClauseElements());
+ }
+
+ public ParserRule getWithExtendsClauseRule() {
+ return getWithExtendsClauseAccess().getRule();
+ }
+
+ //PartSpecification:
+ // ViewSpecification;
+ public PartSpecificationElements getPartSpecificationAccess() {
+ return (pPartSpecification != null) ? pPartSpecification : (pPartSpecification = new PartSpecificationElements());
+ }
+
+ public ParserRule getPartSpecificationRule() {
+ return getPartSpecificationAccess().getRule();
+ }
+
+ //ViewSpecification:
+ // {ViewSpecification} "viewpart" id=QualifiedName "{" "viewname" viewName=STRING "viewclass" type=JvmTypeReference
+ // ("viewcategory" category=QualifiedName)? "}";
+ public ViewSpecificationElements getViewSpecificationAccess() {
+ return (pViewSpecification != null) ? pViewSpecification : (pViewSpecification = new ViewSpecificationElements());
+ }
+
+ public ParserRule getViewSpecificationRule() {
+ return getViewSpecificationAccess().getRule();
+ }
+
+ //XExpression:
+ // XAssignment;
+ public XbaseGrammarAccess.XExpressionElements getXExpressionAccess() {
+ return gaXbase.getXExpressionAccess();
+ }
+
+ public ParserRule getXExpressionRule() {
+ return getXExpressionAccess().getRule();
+ }
+
+ //XAssignment returns XExpression:
+ // {XAssignment} feature=[types::JvmIdentifiableElement|FeatureCallID] OpSingleAssign value=XAssignment | XOrExpression
+ // (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpMultiAssign])
+ // rightOperand=XAssignment)?;
+ public XbaseGrammarAccess.XAssignmentElements getXAssignmentAccess() {
+ return gaXbase.getXAssignmentAccess();
+ }
+
+ public ParserRule getXAssignmentRule() {
+ return getXAssignmentAccess().getRule();
+ }
+
+ //OpSingleAssign:
+ // "=";
+ public XbaseGrammarAccess.OpSingleAssignElements getOpSingleAssignAccess() {
+ return gaXbase.getOpSingleAssignAccess();
+ }
+
+ public ParserRule getOpSingleAssignRule() {
+ return getOpSingleAssignAccess().getRule();
+ }
+
+ //OpMultiAssign:
+ // "+=" | "-=";
+ public XbaseGrammarAccess.OpMultiAssignElements getOpMultiAssignAccess() {
+ return gaXbase.getOpMultiAssignAccess();
+ }
+
+ public ParserRule getOpMultiAssignRule() {
+ return getOpMultiAssignAccess().getRule();
+ }
+
+ //XOrExpression returns XExpression:
+ // XAndExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpOr])
+ // rightOperand=XAndExpression)*;
+ public XbaseGrammarAccess.XOrExpressionElements getXOrExpressionAccess() {
+ return gaXbase.getXOrExpressionAccess();
+ }
+
+ public ParserRule getXOrExpressionRule() {
+ return getXOrExpressionAccess().getRule();
+ }
+
+ //OpOr:
+ // "||";
+ public XbaseGrammarAccess.OpOrElements getOpOrAccess() {
+ return gaXbase.getOpOrAccess();
+ }
+
+ public ParserRule getOpOrRule() {
+ return getOpOrAccess().getRule();
+ }
+
+ //XAndExpression returns XExpression:
+ // XEqualityExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpAnd])
+ // rightOperand=XEqualityExpression)*;
+ public XbaseGrammarAccess.XAndExpressionElements getXAndExpressionAccess() {
+ return gaXbase.getXAndExpressionAccess();
+ }
+
+ public ParserRule getXAndExpressionRule() {
+ return getXAndExpressionAccess().getRule();
+ }
+
+ //OpAnd:
+ // "&&";
+ public XbaseGrammarAccess.OpAndElements getOpAndAccess() {
+ return gaXbase.getOpAndAccess();
+ }
+
+ public ParserRule getOpAndRule() {
+ return getOpAndAccess().getRule();
+ }
+
+ //XEqualityExpression returns XExpression:
+ // XRelationalExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpEquality])
+ // rightOperand=XRelationalExpression)*;
+ public XbaseGrammarAccess.XEqualityExpressionElements getXEqualityExpressionAccess() {
+ return gaXbase.getXEqualityExpressionAccess();
+ }
+
+ public ParserRule getXEqualityExpressionRule() {
+ return getXEqualityExpressionAccess().getRule();
+ }
+
+ //OpEquality:
+ // "==" | "!=" | "===" | "!==";
+ public XbaseGrammarAccess.OpEqualityElements getOpEqualityAccess() {
+ return gaXbase.getOpEqualityAccess();
+ }
+
+ public ParserRule getOpEqualityRule() {
+ return getOpEqualityAccess().getRule();
+ }
+
+ //XRelationalExpression returns XExpression:
+ // XOtherOperatorExpression (=> ({XInstanceOfExpression.expression=current} "instanceof") type=JvmTypeReference | =>
+ // ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpCompare])
+ // rightOperand=XOtherOperatorExpression)*;
+ public XbaseGrammarAccess.XRelationalExpressionElements getXRelationalExpressionAccess() {
+ return gaXbase.getXRelationalExpressionAccess();
+ }
+
+ public ParserRule getXRelationalExpressionRule() {
+ return getXRelationalExpressionAccess().getRule();
+ }
+
+ //OpCompare:
+ // ">=" | "<=" | ">" | "<";
+ public XbaseGrammarAccess.OpCompareElements getOpCompareAccess() {
+ return gaXbase.getOpCompareAccess();
+ }
+
+ public ParserRule getOpCompareRule() {
+ return getOpCompareAccess().getRule();
+ }
+
+ //XOtherOperatorExpression returns XExpression:
+ // XAdditiveExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpOther])
+ // rightOperand=XAdditiveExpression)*;
+ public XbaseGrammarAccess.XOtherOperatorExpressionElements getXOtherOperatorExpressionAccess() {
+ return gaXbase.getXOtherOperatorExpressionAccess();
+ }
+
+ public ParserRule getXOtherOperatorExpressionRule() {
+ return getXOtherOperatorExpressionAccess().getRule();
+ }
+
+ //OpOther:
+ // "->" | "..<" | ">" ".." | ".." | "=>" | ">" (=> (">" ">") | ">") | "<" (=> ("<" "<") | "<") | "<>" | "?:" | "<=>";
+ public XbaseGrammarAccess.OpOtherElements getOpOtherAccess() {
+ return gaXbase.getOpOtherAccess();
+ }
+
+ public ParserRule getOpOtherRule() {
+ return getOpOtherAccess().getRule();
+ }
+
+ //XAdditiveExpression returns XExpression:
+ // XMultiplicativeExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpAdd])
+ // rightOperand=XMultiplicativeExpression)*;
+ public XbaseGrammarAccess.XAdditiveExpressionElements getXAdditiveExpressionAccess() {
+ return gaXbase.getXAdditiveExpressionAccess();
+ }
+
+ public ParserRule getXAdditiveExpressionRule() {
+ return getXAdditiveExpressionAccess().getRule();
+ }
+
+ //OpAdd:
+ // "+" | "-";
+ public XbaseGrammarAccess.OpAddElements getOpAddAccess() {
+ return gaXbase.getOpAddAccess();
+ }
+
+ public ParserRule getOpAddRule() {
+ return getOpAddAccess().getRule();
+ }
+
+ //XMultiplicativeExpression returns XExpression:
+ // XUnaryOperation (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpMulti])
+ // rightOperand=XUnaryOperation)*;
+ public XbaseGrammarAccess.XMultiplicativeExpressionElements getXMultiplicativeExpressionAccess() {
+ return gaXbase.getXMultiplicativeExpressionAccess();
+ }
+
+ public ParserRule getXMultiplicativeExpressionRule() {
+ return getXMultiplicativeExpressionAccess().getRule();
+ }
+
+ //OpMulti:
+ // "*" | "**" | "/" | "%";
+ public XbaseGrammarAccess.OpMultiElements getOpMultiAccess() {
+ return gaXbase.getOpMultiAccess();
+ }
+
+ public ParserRule getOpMultiRule() {
+ return getOpMultiAccess().getRule();
+ }
+
+ //XUnaryOperation returns XExpression:
+ // {XUnaryOperation} feature=[types::JvmIdentifiableElement|OpUnary] operand=XUnaryOperation | XCastedExpression;
+ public XbaseGrammarAccess.XUnaryOperationElements getXUnaryOperationAccess() {
+ return gaXbase.getXUnaryOperationAccess();
+ }
+
+ public ParserRule getXUnaryOperationRule() {
+ return getXUnaryOperationAccess().getRule();
+ }
+
+ //OpUnary:
+ // "!" | "-" | "+";
+ public XbaseGrammarAccess.OpUnaryElements getOpUnaryAccess() {
+ return gaXbase.getOpUnaryAccess();
+ }
+
+ public ParserRule getOpUnaryRule() {
+ return getOpUnaryAccess().getRule();
+ }
+
+ //XCastedExpression returns XExpression:
+ // XMemberFeatureCall (=> ({XCastedExpression.target=current} "as") type=JvmTypeReference)*;
+ public XbaseGrammarAccess.XCastedExpressionElements getXCastedExpressionAccess() {
+ return gaXbase.getXCastedExpressionAccess();
+ }
+
+ public ParserRule getXCastedExpressionRule() {
+ return getXCastedExpressionAccess().getRule();
+ }
+
+ //XMemberFeatureCall returns XExpression:
+ // XPrimaryExpression (=> ({XAssignment.assignable=current} ("." | explicitStatic?="::")
+ // feature=[types::JvmIdentifiableElement|FeatureCallID] OpSingleAssign) value=XAssignment | =>
+ // ({XMemberFeatureCall.memberCallTarget=current} ("." | nullSafe?="?." | explicitStatic?="::")) ("<"
+ // typeArguments+=JvmArgumentTypeReference ("," typeArguments+=JvmArgumentTypeReference)* ">")?
+ // feature=[types::JvmIdentifiableElement|FeatureCallID] (=> explicitOperationCall?="("
+ // (memberCallArguments+=XShortClosure | memberCallArguments+=XExpression ("," memberCallArguments+=XExpression)*)? ")")?
+ // memberCallArguments+=XClosure?)*;
+ public XbaseGrammarAccess.XMemberFeatureCallElements getXMemberFeatureCallAccess() {
+ return gaXbase.getXMemberFeatureCallAccess();
+ }
+
+ public ParserRule getXMemberFeatureCallRule() {
+ return getXMemberFeatureCallAccess().getRule();
+ }
+
+ //XPrimaryExpression returns XExpression:
+ // XConstructorCall | XBlockExpression | XSwitchExpression | XFeatureCall | XLiteral | XIfExpression | XForLoopExpression
+ // | XWhileExpression | XDoWhileExpression | XThrowExpression | XReturnExpression | XTryCatchFinallyExpression |
+ // XParenthesizedExpression;
+ public XbaseGrammarAccess.XPrimaryExpressionElements getXPrimaryExpressionAccess() {
+ return gaXbase.getXPrimaryExpressionAccess();
+ }
+
+ public ParserRule getXPrimaryExpressionRule() {
+ return getXPrimaryExpressionAccess().getRule();
+ }
+
+ //XLiteral returns XExpression:
+ // XCollectionLiteral | XClosure | XBooleanLiteral | XNumberLiteral | XNullLiteral | XStringLiteral | XTypeLiteral;
+ public XbaseGrammarAccess.XLiteralElements getXLiteralAccess() {
+ return gaXbase.getXLiteralAccess();
+ }
+
+ public ParserRule getXLiteralRule() {
+ return getXLiteralAccess().getRule();
+ }
+
+ //XCollectionLiteral:
+ // XSetLiteral | XListLiteral;
+ public XbaseGrammarAccess.XCollectionLiteralElements getXCollectionLiteralAccess() {
+ return gaXbase.getXCollectionLiteralAccess();
+ }
+
+ public ParserRule getXCollectionLiteralRule() {
+ return getXCollectionLiteralAccess().getRule();
+ }
+
+ //XSetLiteral:
+ // {XSetLiteral} "#" "{" (elements+=XExpression ("," elements+=XExpression)*)? "}";
+ public XbaseGrammarAccess.XSetLiteralElements getXSetLiteralAccess() {
+ return gaXbase.getXSetLiteralAccess();
+ }
+
+ public ParserRule getXSetLiteralRule() {
+ return getXSetLiteralAccess().getRule();
+ }
+
+ //XListLiteral:
+ // {XListLiteral} "#" "[" (elements+=XExpression ("," elements+=XExpression)*)? "]";
+ public XbaseGrammarAccess.XListLiteralElements getXListLiteralAccess() {
+ return gaXbase.getXListLiteralAccess();
+ }
+
+ public ParserRule getXListLiteralRule() {
+ return getXListLiteralAccess().getRule();
+ }
+
+ //XClosure returns XExpression:
+ // => ({XClosure} "[") => ((declaredFormalParameters+=JvmFormalParameter (","
+ // declaredFormalParameters+=JvmFormalParameter)*)? explicitSyntax?="|")? expression=XExpressionInClosure "]";
+ public XbaseGrammarAccess.XClosureElements getXClosureAccess() {
+ return gaXbase.getXClosureAccess();
+ }
+
+ public ParserRule getXClosureRule() {
+ return getXClosureAccess().getRule();
+ }
+
+ //XExpressionInClosure returns XExpression:
+ // {XBlockExpression} (expressions+=XExpressionInsideBlock ";"?)*;
+ public XbaseGrammarAccess.XExpressionInClosureElements getXExpressionInClosureAccess() {
+ return gaXbase.getXExpressionInClosureAccess();
+ }
+
+ public ParserRule getXExpressionInClosureRule() {
+ return getXExpressionInClosureAccess().getRule();
+ }
+
+ //XShortClosure returns XExpression:
+ // => ({XClosure} (declaredFormalParameters+=JvmFormalParameter ("," declaredFormalParameters+=JvmFormalParameter)*)?
+ // explicitSyntax?="|") expression=XExpression;
+ public XbaseGrammarAccess.XShortClosureElements getXShortClosureAccess() {
+ return gaXbase.getXShortClosureAccess();
+ }
+
+ public ParserRule getXShortClosureRule() {
+ return getXShortClosureAccess().getRule();
+ }
+
+ //XParenthesizedExpression returns XExpression:
+ // "(" XExpression ")";
+ public XbaseGrammarAccess.XParenthesizedExpressionElements getXParenthesizedExpressionAccess() {
+ return gaXbase.getXParenthesizedExpressionAccess();
+ }
+
+ public ParserRule getXParenthesizedExpressionRule() {
+ return getXParenthesizedExpressionAccess().getRule();
+ }
+
+ //XIfExpression returns XExpression:
+ // {XIfExpression} "if" "(" if=XExpression ")" then=XExpression ("else" else=XExpression)?;
+ public XbaseGrammarAccess.XIfExpressionElements getXIfExpressionAccess() {
+ return gaXbase.getXIfExpressionAccess();
+ }
+
+ public ParserRule getXIfExpressionRule() {
+ return getXIfExpressionAccess().getRule();
+ }
+
+ //XSwitchExpression returns XExpression:
+ // {XSwitchExpression} "switch" (=> (localVarName=ValidID ":")? switch=XExpression | => ("(" localVarName=ValidID ":")
+ // switch=XExpression ")") "{" cases+=XCasePart+ ("default" ":" default=XExpression)? "}";
+ public XbaseGrammarAccess.XSwitchExpressionElements getXSwitchExpressionAccess() {
+ return gaXbase.getXSwitchExpressionAccess();
+ }
+
+ public ParserRule getXSwitchExpressionRule() {
+ return getXSwitchExpressionAccess().getRule();
+ }
+
+ //XCasePart:
+ // typeGuard=JvmTypeReference? ("case" case=XExpression)? ":" then=XExpression;
+ public XbaseGrammarAccess.XCasePartElements getXCasePartAccess() {
+ return gaXbase.getXCasePartAccess();
+ }
+
+ public ParserRule getXCasePartRule() {
+ return getXCasePartAccess().getRule();
+ }
+
+ //XForLoopExpression returns XExpression:
+ // {XForLoopExpression} "for" "(" declaredParam=JvmFormalParameter ":" forExpression=XExpression ")"
+ // eachExpression=XExpression;
+ public XbaseGrammarAccess.XForLoopExpressionElements getXForLoopExpressionAccess() {
+ return gaXbase.getXForLoopExpressionAccess();
+ }
+
+ public ParserRule getXForLoopExpressionRule() {
+ return getXForLoopExpressionAccess().getRule();
+ }
+
+ //XWhileExpression returns XExpression:
+ // {XWhileExpression} "while" "(" predicate=XExpression ")" body=XExpression;
+ public XbaseGrammarAccess.XWhileExpressionElements getXWhileExpressionAccess() {
+ return gaXbase.getXWhileExpressionAccess();
+ }
+
+ public ParserRule getXWhileExpressionRule() {
+ return getXWhileExpressionAccess().getRule();
+ }
+
+ //XDoWhileExpression returns XExpression:
+ // {XDoWhileExpression} "do" body=XExpression "while" "(" predicate=XExpression ")";
+ public XbaseGrammarAccess.XDoWhileExpressionElements getXDoWhileExpressionAccess() {
+ return gaXbase.getXDoWhileExpressionAccess();
+ }
+
+ public ParserRule getXDoWhileExpressionRule() {
+ return getXDoWhileExpressionAccess().getRule();
+ }
+
+ //XBlockExpression returns XExpression:
+ // {XBlockExpression} "{" (expressions+=XExpressionInsideBlock ";"?)* "}";
+ public XbaseGrammarAccess.XBlockExpressionElements getXBlockExpressionAccess() {
+ return gaXbase.getXBlockExpressionAccess();
+ }
+
+ public ParserRule getXBlockExpressionRule() {
+ return getXBlockExpressionAccess().getRule();
+ }
+
+ //XExpressionInsideBlock returns XExpression:
+ // XVariableDeclaration | XExpression;
+ public XbaseGrammarAccess.XExpressionInsideBlockElements getXExpressionInsideBlockAccess() {
+ return gaXbase.getXExpressionInsideBlockAccess();
+ }
+
+ public ParserRule getXExpressionInsideBlockRule() {
+ return getXExpressionInsideBlockAccess().getRule();
+ }
+
+ //XVariableDeclaration returns XExpression:
+ // {XVariableDeclaration} (writeable?="var" | "val") (=> (type=JvmTypeReference name=ValidID) | name=ValidID) ("="
+ // right=XExpression)?;
+ public XbaseGrammarAccess.XVariableDeclarationElements getXVariableDeclarationAccess() {
+ return gaXbase.getXVariableDeclarationAccess();
+ }
+
+ public ParserRule getXVariableDeclarationRule() {
+ return getXVariableDeclarationAccess().getRule();
+ }
+
+ //JvmFormalParameter returns types::JvmFormalParameter:
+ // parameterType=JvmTypeReference? name=ValidID;
+ public XbaseGrammarAccess.JvmFormalParameterElements getJvmFormalParameterAccess() {
+ return gaXbase.getJvmFormalParameterAccess();
+ }
+
+ public ParserRule getJvmFormalParameterRule() {
+ return getJvmFormalParameterAccess().getRule();
+ }
+
+ //FullJvmFormalParameter returns types::JvmFormalParameter:
+ // parameterType=JvmTypeReference name=ValidID;
+ public XbaseGrammarAccess.FullJvmFormalParameterElements getFullJvmFormalParameterAccess() {
+ return gaXbase.getFullJvmFormalParameterAccess();
+ }
+
+ public ParserRule getFullJvmFormalParameterRule() {
+ return getFullJvmFormalParameterAccess().getRule();
+ }
+
+ //XFeatureCall returns XExpression:
+ // {XFeatureCall} ("<" typeArguments+=JvmArgumentTypeReference ("," typeArguments+=JvmArgumentTypeReference)* ">")?
+ // feature=[types::JvmIdentifiableElement|IdOrSuper] (=> explicitOperationCall?="(" (featureCallArguments+=XShortClosure
+ // | featureCallArguments+=XExpression ("," featureCallArguments+=XExpression)*)? ")")? featureCallArguments+=XClosure?;
+ public XbaseGrammarAccess.XFeatureCallElements getXFeatureCallAccess() {
+ return gaXbase.getXFeatureCallAccess();
+ }
+
+ public ParserRule getXFeatureCallRule() {
+ return getXFeatureCallAccess().getRule();
+ }
+
+ //FeatureCallID:
+ // ValidID | "extends" | "static" | "import" | "extension";
+ public XbaseGrammarAccess.FeatureCallIDElements getFeatureCallIDAccess() {
+ return gaXbase.getFeatureCallIDAccess();
+ }
+
+ public ParserRule getFeatureCallIDRule() {
+ return getFeatureCallIDAccess().getRule();
+ }
+
+ //IdOrSuper:
+ // FeatureCallID | "super";
+ public XbaseGrammarAccess.IdOrSuperElements getIdOrSuperAccess() {
+ return gaXbase.getIdOrSuperAccess();
+ }
+
+ public ParserRule getIdOrSuperRule() {
+ return getIdOrSuperAccess().getRule();
+ }
+
+ //XConstructorCall returns XExpression:
+ // {XConstructorCall} "new" constructor=[types::JvmConstructor|QualifiedName] ("<"
+ // typeArguments+=JvmArgumentTypeReference ("," typeArguments+=JvmArgumentTypeReference)* ">")? ("("
+ // (arguments+=XShortClosure | arguments+=XExpression ("," arguments+=XExpression)*)? ")")? arguments+=XClosure?;
+ public XbaseGrammarAccess.XConstructorCallElements getXConstructorCallAccess() {
+ return gaXbase.getXConstructorCallAccess();
+ }
+
+ public ParserRule getXConstructorCallRule() {
+ return getXConstructorCallAccess().getRule();
+ }
+
+ //XBooleanLiteral returns XExpression:
+ // {XBooleanLiteral} ("false" | isTrue?="true");
+ public XbaseGrammarAccess.XBooleanLiteralElements getXBooleanLiteralAccess() {
+ return gaXbase.getXBooleanLiteralAccess();
+ }
+
+ public ParserRule getXBooleanLiteralRule() {
+ return getXBooleanLiteralAccess().getRule();
+ }
+
+ //XNullLiteral returns XExpression:
+ // {XNullLiteral} "null";
+ public XbaseGrammarAccess.XNullLiteralElements getXNullLiteralAccess() {
+ return gaXbase.getXNullLiteralAccess();
+ }
+
+ public ParserRule getXNullLiteralRule() {
+ return getXNullLiteralAccess().getRule();
+ }
+
+ //XNumberLiteral returns XExpression:
+ // {XNumberLiteral} value=Number;
+ public XbaseGrammarAccess.XNumberLiteralElements getXNumberLiteralAccess() {
+ return gaXbase.getXNumberLiteralAccess();
+ }
+
+ public ParserRule getXNumberLiteralRule() {
+ return getXNumberLiteralAccess().getRule();
+ }
+
+ //XStringLiteral returns XExpression:
+ // {XStringLiteral} value=STRING;
+ public XbaseGrammarAccess.XStringLiteralElements getXStringLiteralAccess() {
+ return gaXbase.getXStringLiteralAccess();
+ }
+
+ public ParserRule getXStringLiteralRule() {
+ return getXStringLiteralAccess().getRule();
+ }
+
+ //XTypeLiteral returns XExpression:
+ // {XTypeLiteral} "typeof" "(" type=[types::JvmType|QualifiedName] arrayDimensions+=ArrayBrackets* ")";
+ public XbaseGrammarAccess.XTypeLiteralElements getXTypeLiteralAccess() {
+ return gaXbase.getXTypeLiteralAccess();
+ }
+
+ public ParserRule getXTypeLiteralRule() {
+ return getXTypeLiteralAccess().getRule();
+ }
+
+ //XThrowExpression returns XExpression:
+ // {XThrowExpression} "throw" expression=XExpression;
+ public XbaseGrammarAccess.XThrowExpressionElements getXThrowExpressionAccess() {
+ return gaXbase.getXThrowExpressionAccess();
+ }
+
+ public ParserRule getXThrowExpressionRule() {
+ return getXThrowExpressionAccess().getRule();
+ }
+
+ //XReturnExpression returns XExpression:
+ // {XReturnExpression} "return" => expression=XExpression?;
+ public XbaseGrammarAccess.XReturnExpressionElements getXReturnExpressionAccess() {
+ return gaXbase.getXReturnExpressionAccess();
+ }
+
+ public ParserRule getXReturnExpressionRule() {
+ return getXReturnExpressionAccess().getRule();
+ }
+
+ //XTryCatchFinallyExpression returns XExpression:
+ // {XTryCatchFinallyExpression} "try" expression=XExpression (catchClauses+=XCatchClause+ ("finally"
+ // finallyExpression=XExpression)? | "finally" finallyExpression=XExpression);
+ public XbaseGrammarAccess.XTryCatchFinallyExpressionElements getXTryCatchFinallyExpressionAccess() {
+ return gaXbase.getXTryCatchFinallyExpressionAccess();
+ }
+
+ public ParserRule getXTryCatchFinallyExpressionRule() {
+ return getXTryCatchFinallyExpressionAccess().getRule();
+ }
+
+ //XCatchClause:
+ // "catch" "(" declaredParam=FullJvmFormalParameter ")" expression=XExpression;
+ public XbaseGrammarAccess.XCatchClauseElements getXCatchClauseAccess() {
+ return gaXbase.getXCatchClauseAccess();
+ }
+
+ public ParserRule getXCatchClauseRule() {
+ return getXCatchClauseAccess().getRule();
+ }
+
+ //QualifiedName:
+ // ValidID ("." ValidID)*;
+ public XbaseGrammarAccess.QualifiedNameElements getQualifiedNameAccess() {
+ return gaXbase.getQualifiedNameAccess();
+ }
+
+ public ParserRule getQualifiedNameRule() {
+ return getQualifiedNameAccess().getRule();
+ }
+
+ //Number hidden():
+ // HEX | (INT | DECIMAL) ("." (INT | DECIMAL))?;
+ public XbaseGrammarAccess.NumberElements getNumberAccess() {
+ return gaXbase.getNumberAccess();
+ }
+
+ public ParserRule getNumberRule() {
+ return getNumberAccess().getRule();
+ }
+
+ /// **
+ // * Dummy rule, for "better" downwards compatibility, since GrammarAccess generates non-static inner classes,
+ // * which makes downstream grammars break on classloading, when a rule is removed.
+ // * / StaticQualifier:
+ // (ValidID "::")+;
+ public XbaseGrammarAccess.StaticQualifierElements getStaticQualifierAccess() {
+ return gaXbase.getStaticQualifierAccess();
+ }
+
+ public ParserRule getStaticQualifierRule() {
+ return getStaticQualifierAccess().getRule();
+ }
+
+ //terminal HEX:
+ // ("0x" | "0X") ("0".."9" | "a".."f" | "A".."F" | "_")+ ("#" (("b" | "B") ("i" | "I") | ("l" | "L")))?;
+ public TerminalRule getHEXRule() {
+ return gaXbase.getHEXRule();
+ }
+
+ //terminal INT returns ecore::EInt:
+ // "0".."9" ("0".."9" | "_")*;
+ public TerminalRule getINTRule() {
+ return gaXbase.getINTRule();
+ }
+
+ //terminal DECIMAL:
+ // INT (("e" | "E") ("+" | "-")? INT)? (("b" | "B") ("i" | "I" | "d" | "D") | ("l" | "L" | "d" | "D" | "f" | "F"))?;
+ public TerminalRule getDECIMALRule() {
+ return gaXbase.getDECIMALRule();
+ }
+
+ //JvmTypeReference:
+ // JvmParameterizedTypeReference => ({JvmGenericArrayTypeReference.componentType=current} ArrayBrackets)* |
+ // XFunctionTypeRef;
+ public XtypeGrammarAccess.JvmTypeReferenceElements getJvmTypeReferenceAccess() {
+ return gaXbase.getJvmTypeReferenceAccess();
+ }
+
+ public ParserRule getJvmTypeReferenceRule() {
+ return getJvmTypeReferenceAccess().getRule();
+ }
+
+ //ArrayBrackets:
+ // "[" "]";
+ public XtypeGrammarAccess.ArrayBracketsElements getArrayBracketsAccess() {
+ return gaXbase.getArrayBracketsAccess();
+ }
+
+ public ParserRule getArrayBracketsRule() {
+ return getArrayBracketsAccess().getRule();
+ }
+
+ //XFunctionTypeRef:
+ // ("(" (paramTypes+=JvmTypeReference ("," paramTypes+=JvmTypeReference)*)? ")")? "=>" returnType=JvmTypeReference;
+ public XtypeGrammarAccess.XFunctionTypeRefElements getXFunctionTypeRefAccess() {
+ return gaXbase.getXFunctionTypeRefAccess();
+ }
+
+ public ParserRule getXFunctionTypeRefRule() {
+ return getXFunctionTypeRefAccess().getRule();
+ }
+
+ //JvmParameterizedTypeReference:
+ // type=[JvmType|QualifiedName] ("<" arguments+=JvmArgumentTypeReference ("," arguments+=JvmArgumentTypeReference)*
+ // ">")?;
+ public XtypeGrammarAccess.JvmParameterizedTypeReferenceElements getJvmParameterizedTypeReferenceAccess() {
+ return gaXbase.getJvmParameterizedTypeReferenceAccess();
+ }
+
+ public ParserRule getJvmParameterizedTypeReferenceRule() {
+ return getJvmParameterizedTypeReferenceAccess().getRule();
+ }
+
+ //JvmArgumentTypeReference returns JvmTypeReference:
+ // JvmTypeReference | JvmWildcardTypeReference;
+ public XtypeGrammarAccess.JvmArgumentTypeReferenceElements getJvmArgumentTypeReferenceAccess() {
+ return gaXbase.getJvmArgumentTypeReferenceAccess();
+ }
+
+ public ParserRule getJvmArgumentTypeReferenceRule() {
+ return getJvmArgumentTypeReferenceAccess().getRule();
+ }
+
+ //JvmWildcardTypeReference:
+ // {JvmWildcardTypeReference} "?" (constraints+=JvmUpperBound | constraints+=JvmLowerBound)?;
+ public XtypeGrammarAccess.JvmWildcardTypeReferenceElements getJvmWildcardTypeReferenceAccess() {
+ return gaXbase.getJvmWildcardTypeReferenceAccess();
+ }
+
+ public ParserRule getJvmWildcardTypeReferenceRule() {
+ return getJvmWildcardTypeReferenceAccess().getRule();
+ }
+
+ //JvmUpperBound:
+ // "extends" typeReference=JvmTypeReference;
+ public XtypeGrammarAccess.JvmUpperBoundElements getJvmUpperBoundAccess() {
+ return gaXbase.getJvmUpperBoundAccess();
+ }
+
+ public ParserRule getJvmUpperBoundRule() {
+ return getJvmUpperBoundAccess().getRule();
+ }
+
+ //JvmUpperBoundAnded returns JvmUpperBound:
+ // "&" typeReference=JvmTypeReference;
+ public XtypeGrammarAccess.JvmUpperBoundAndedElements getJvmUpperBoundAndedAccess() {
+ return gaXbase.getJvmUpperBoundAndedAccess();
+ }
+
+ public ParserRule getJvmUpperBoundAndedRule() {
+ return getJvmUpperBoundAndedAccess().getRule();
+ }
+
+ //JvmLowerBound:
+ // "super" typeReference=JvmTypeReference;
+ public XtypeGrammarAccess.JvmLowerBoundElements getJvmLowerBoundAccess() {
+ return gaXbase.getJvmLowerBoundAccess();
+ }
+
+ public ParserRule getJvmLowerBoundRule() {
+ return getJvmLowerBoundAccess().getRule();
+ }
+
+ //JvmTypeParameter:
+ // name=ValidID (constraints+=JvmUpperBound constraints+=JvmUpperBoundAnded* | constraints+=JvmLowerBound)?;
+ public XtypeGrammarAccess.JvmTypeParameterElements getJvmTypeParameterAccess() {
+ return gaXbase.getJvmTypeParameterAccess();
+ }
+
+ public ParserRule getJvmTypeParameterRule() {
+ return getJvmTypeParameterAccess().getRule();
+ }
+
+ //QualifiedNameWithWildcard:
+ // QualifiedName "." "*";
+ public XtypeGrammarAccess.QualifiedNameWithWildcardElements getQualifiedNameWithWildcardAccess() {
+ return gaXbase.getQualifiedNameWithWildcardAccess();
+ }
+
+ public ParserRule getQualifiedNameWithWildcardRule() {
+ return getQualifiedNameWithWildcardAccess().getRule();
+ }
+
+ //ValidID:
+ // ID;
+ public XtypeGrammarAccess.ValidIDElements getValidIDAccess() {
+ return gaXbase.getValidIDAccess();
+ }
+
+ public ParserRule getValidIDRule() {
+ return getValidIDAccess().getRule();
+ }
+
+ //XImportSection:
+ // importDeclarations+=XImportDeclaration+;
+ public XtypeGrammarAccess.XImportSectionElements getXImportSectionAccess() {
+ return gaXbase.getXImportSectionAccess();
+ }
+
+ public ParserRule getXImportSectionRule() {
+ return getXImportSectionAccess().getRule();
+ }
+
+ //XImportDeclaration:
+ // "import" (static?="static" extension?="extension"? importedType=[JvmDeclaredType|QualifiedName] "." "*" |
+ // importedType=[JvmDeclaredType|QualifiedName] | importedNamespace=QualifiedNameWithWildcard) ";"?;
+ public XtypeGrammarAccess.XImportDeclarationElements getXImportDeclarationAccess() {
+ return gaXbase.getXImportDeclarationAccess();
+ }
+
+ public ParserRule getXImportDeclarationRule() {
+ return getXImportDeclarationAccess().getRule();
+ }
+
+ //terminal ID:
+ // "^"? ("a".."z" | "A".."Z" | "$" | "_") ("a".."z" | "A".."Z" | "$" | "_" | "0".."9")*;
+ public TerminalRule getIDRule() {
+ return gaXbase.getIDRule();
+ }
+
+ //terminal STRING:
+ // "\"" ("\\" ("b" | "t" | "n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\""))* "\"" | "\'" ("\\" ("b" | "t" |
+ // "n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\'"))* "\'";
+ public TerminalRule getSTRINGRule() {
+ return gaXbase.getSTRINGRule();
+ }
+
+ //terminal ML_COMMENT:
+ // "/ *"->"* /";
+ public TerminalRule getML_COMMENTRule() {
+ return gaXbase.getML_COMMENTRule();
+ }
+
+ //terminal SL_COMMENT:
+ // "//" !("\n" | "\r")* ("\r"? "\n")?;
+ public TerminalRule getSL_COMMENTRule() {
+ return gaXbase.getSL_COMMENTRule();
+ }
+
+ //terminal WS:
+ // (" " | "\t" | "\r" | "\n")+;
+ public TerminalRule getWSRule() {
+ return gaXbase.getWSRule();
+ }
+
+ //terminal ANY_OTHER:
+ // .;
+ public TerminalRule getANY_OTHERRule() {
+ return gaXbase.getANY_OTHERRule();
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/validation/AbstractEmfParsleyDslJavaValidator.java b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/validation/AbstractEmfParsleyDslJavaValidator.java
new file mode 100644
index 000000000..a794d04c9
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src-gen/org/eclipse/emf/parsley/dsl/validation/AbstractEmfParsleyDslJavaValidator.java
@@ -0,0 +1,23 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.dsl.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EPackage;
+
+public class AbstractEmfParsleyDslJavaValidator extends org.eclipse.xtext.xbase.validation.XbaseJavaValidator {
+
+ @Override
+ protected List<EPackage> getEPackages() {
+ List<EPackage> result = new ArrayList<EPackage>();
+ result.add(org.eclipse.emf.parsley.dsl.model.ModelPackage.eINSTANCE);
+ result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/xtext/xbase/Xbase"));
+ result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/xtext/common/JavaVMTypes"));
+ result.add(EPackage.Registry.INSTANCE.getEPackage("http://www.eclipse.org/xtext/xbase/Xtype"));
+ return result;
+ }
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/EmfParsleyDsl.xtext b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/EmfParsleyDsl.xtext
new file mode 100644
index 000000000..1d23a748e
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/EmfParsleyDsl.xtext
@@ -0,0 +1,150 @@
+grammar org.eclipse.emf.parsley.dsl.EmfParsleyDsl with
+ org.eclipse.xtext.xbase.Xbase
+
+import "http://www.eclipse.org/xtext/common/JavaVMTypes" as types
+
+generate model "http://www.eclipse.org/emf/parsley/dsl/EmfParsleyDsl"
+
+Model:
+ importSection=XImportSection?
+ module = Module;
+
+Module:
+ 'module' name=QualifiedName (extendsClause=ExtendsClause)? '{'
+ (
+ (labelProvider = LabelProvider)?
+ &
+ (propertyDescriptionProvider = PropertyDescriptionProvider)?
+ &
+ (featuresProvider = FeaturesProvider)?
+ &
+ (formControlFactory = FormControlFactory)?
+ &
+ (proposalCreator = ProposalCreator)?
+ &
+ (viewerContentProvider = ViewerContentProvider)?
+ &
+ ('parts' '{'
+ parts += PartSpecification*
+ '}')?
+ )
+ '}'
+;
+
+ExtendsClause: 'extends' superType=JvmTypeReference;
+
+LabelProvider:
+ {LabelProvider} 'labelProvider' '{'
+ ((
+ 'text' '{'
+ labelSpecifications+=LabelSpecification*
+ '}'
+ )?
+ &
+ (
+ 'image' '{'
+ imageSpecifications+=LabelSpecification*
+ '}'
+ )?)
+ '}'
+;
+
+LabelSpecification:
+ parameterType=JvmTypeReference (name=ValidID)?
+ '->'
+ expression = XExpression
+;
+
+PropertyDescriptionProvider:
+ {PropertyDescriptionProvider} 'propertyDescriptionProvider' '{'
+ ((
+ 'text' '{'
+ labelSpecifications+=PropertyDescriptionSpecification*
+ '}'
+ )?)
+ '}'
+;
+
+PropertyDescriptionSpecification:
+ parameterType=JvmTypeReference ':' feature=[types::JvmMember]
+ '->'
+ expression = XExpression
+;
+
+FeaturesProvider:
+ {FeaturesProvider} 'featuresProvider' '{'
+ ((
+ 'features' '{'
+ featureSpecifications+=FeatureSpecification*
+ '}'
+ )?)
+ '}'
+;
+
+FeatureSpecification:
+ parameterType=JvmTypeReference
+ '->'
+ features += [types::JvmMember] (',' features += [types::JvmMember])*
+;
+
+FormControlFactory:
+ {FormControlFactory} 'formControlFactory' '{'
+ (
+ 'control' '{'
+ controlSpecifications+=FormControlSpecification*
+ '}'
+ )?
+ '}'
+;
+
+FormControlSpecification:
+ parameterType=JvmTypeReference ':' feature=[types::JvmMember]
+ '->'
+ expression = XExpression
+ ('target' target = XExpression)?
+;
+
+ProposalCreator:
+ {ProposalCreator} 'proposals' '{'
+ proposalsSpecifications+=ProposalSpecification*
+ '}'
+;
+
+ProposalSpecification:
+ parameterType=JvmTypeReference ':' feature=[types::JvmMember]
+ '->'
+ expression = XExpression
+;
+
+ViewerContentProvider:
+ {ViewerContentProvider} 'viewerContentProvider' '{'
+ ((
+ 'children' '{'
+ childrenSpecifications+=LabelSpecification*
+ '}'
+ )?)
+ '}'
+;
+
+// a utility base class for rules which access features of an EClass
+EmfFeatureAccess:
+ PropertyDescriptionSpecification |
+ FeatureSpecification |
+ FormControlSpecification |
+ ProposalSpecification
+;
+
+// a utility base class for rules with 'extends' clause
+WithExtendsClause:
+ Module
+;
+
+PartSpecification: ViewSpecification;
+
+ViewSpecification:
+ {ViewSpecification} 'viewpart' id=QualifiedName '{'
+ 'viewname' viewName=STRING
+ 'viewclass' type=JvmTypeReference
+ ('viewcategory' category=QualifiedName)?
+ '}'
+; \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/EmfParsleyDslRuntimeModule.java b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/EmfParsleyDslRuntimeModule.java
new file mode 100644
index 000000000..f160d71db
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/EmfParsleyDslRuntimeModule.java
@@ -0,0 +1,61 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.dsl;
+
+import org.eclipse.emf.parsley.dsl.generator.EmfParsleyDslGenerator;
+import org.eclipse.emf.parsley.dsl.generator.EmfParsleyDslOutputConfigurationProvider;
+import org.eclipse.emf.parsley.dsl.scoping.EmfParsleyDslImplicitlyImportedTypes;
+import org.eclipse.emf.parsley.dsl.scoping.EmfParsleyDslImportedNamespaceScopeProvider;
+import org.eclipse.emf.parsley.dsl.scoping.EmfParsleyDslScopeProvider;
+import org.eclipse.emf.parsley.dsl.scoping.EmfParsleyDslXbaseBatchScopeProvider;
+import org.eclipse.xtext.generator.IGenerator;
+import org.eclipse.xtext.generator.IOutputConfigurationProvider;
+import org.eclipse.xtext.generator.OutputConfigurationProvider;
+import org.eclipse.xtext.scoping.IScopeProvider;
+import org.eclipse.xtext.xbase.scoping.batch.ImplicitlyImportedTypes;
+import org.eclipse.xtext.xbase.scoping.batch.XbaseBatchScopeProvider;
+
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
+
+/**
+ * Use this class to register components to be used at runtime / without the Equinox extension registry.
+ */
+public class EmfParsleyDslRuntimeModule extends org.eclipse.emf.parsley.dsl.AbstractEmfParsleyDslRuntimeModule {
+
+ @Override
+ public Class<? extends XbaseBatchScopeProvider> bindXbaseBatchScopeProvider() {
+ return EmfParsleyDslXbaseBatchScopeProvider.class;
+ }
+
+ public Class<? extends IOutputConfigurationProvider> bindIOutputConfigurationProvider() {
+ return EmfParsleyDslOutputConfigurationProvider.class;
+ }
+
+ public Class<? extends OutputConfigurationProvider> bindOutputConfigurationProvider() {
+ return EmfParsleyDslOutputConfigurationProvider.class;
+ }
+
+ @Override
+ public Class<? extends IGenerator> bindIGenerator() {
+ return EmfParsleyDslGenerator.class;
+ }
+
+ @Override
+ public Class<? extends IScopeProvider> bindIScopeProvider() {
+ return EmfParsleyDslScopeProvider.class;
+ }
+
+ public Class<? extends ImplicitlyImportedTypes> bindImplicitlyImportedTypes() {
+ return EmfParsleyDslImplicitlyImportedTypes.class;
+ }
+
+ @Override
+ public void configureIScopeProviderDelegate(Binder binder) {
+ binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class)
+ .annotatedWith(
+ Names.named(org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider.NAMED_DELEGATE))
+ .to(EmfParsleyDslImportedNamespaceScopeProvider.class);
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/EmfParsleyDslStandaloneSetup.java b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/EmfParsleyDslStandaloneSetup.java
new file mode 100644
index 000000000..a0ccd0d99
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/EmfParsleyDslStandaloneSetup.java
@@ -0,0 +1,14 @@
+
+package org.eclipse.emf.parsley.dsl;
+
+/**
+ * Initialization support for running Xtext languages
+ * without equinox extension registry
+ */
+public class EmfParsleyDslStandaloneSetup extends EmfParsleyDslStandaloneSetupGenerated{
+
+ public static void doSetup() {
+ new EmfParsleyDslStandaloneSetup().createInjectorAndDoEMFRegistration();
+ }
+}
+
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/GenerateEmfParsleyDsl.mwe2 b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/GenerateEmfParsleyDsl.mwe2
new file mode 100644
index 000000000..328c0ba3b
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/GenerateEmfParsleyDsl.mwe2
@@ -0,0 +1,139 @@
+module org.eclipse.emf.parsley.dsl.GenerateEmfParsleyDsl
+
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.xtext.generator.*
+import org.eclipse.xtext.ui.generator.*
+
+var grammarURI = "classpath:/org/eclipse/emf/parsley/dsl/EmfParsleyDsl.xtext"
+var file.extensions = "parsley"
+var projectName = "org.eclipse.emf.parsley.dsl"
+var runtimeProject = "../${projectName}"
+
+Workflow {
+ bean = StandaloneSetup {
+ scanClassPath = true
+ platformUri = "${runtimeProject}/.."
+ // The following two lines can be removed, if Xbase is not used.
+ registerGeneratedEPackage = "org.eclipse.xtext.xbase.XbasePackage"
+ registerGenModelFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel"
+ }
+
+ component = DirectoryCleaner {
+ directory = "${runtimeProject}/src-gen"
+ }
+
+ component = DirectoryCleaner {
+ directory = "${runtimeProject}.ui/src-gen"
+ }
+
+ component = Generator {
+ pathRtProject = runtimeProject
+ pathUiProject = "${runtimeProject}.ui"
+ pathTestProject = "${runtimeProject}.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.ImportNamespacesScopingFragment {}
+ 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
+ }
+
+ }
+ }
+}
+
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/formatting/EmfParsleyDslFormatter.java b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/formatting/EmfParsleyDslFormatter.java
new file mode 100644
index 000000000..ef0c3941a
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/formatting/EmfParsleyDslFormatter.java
@@ -0,0 +1,27 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.dsl.formatting;
+
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter;
+import org.eclipse.xtext.formatting.impl.FormattingConfig;
+
+/**
+ * This class contains custom formatting description.
+ *
+ * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#formatting
+ * on how and when to use it
+ *
+ * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
+ */
+public class EmfParsleyDslFormatter extends AbstractDeclarativeFormatter {
+
+ @Override
+ protected void configureFormatting(FormattingConfig c) {
+// It's usually a good idea to activate the following three statements.
+// They will add and preserve newlines around comments
+// c.setLinewrap(0, 1, 2).before(getGrammarAccess().getSL_COMMENTRule());
+// c.setLinewrap(0, 1, 2).before(getGrammarAccess().getML_COMMENTRule());
+// c.setLinewrap(0, 1, 1).after(getGrammarAccess().getML_COMMENTRule());
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslGenerator.xtend b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslGenerator.xtend
new file mode 100644
index 000000000..081cb04d5
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslGenerator.xtend
@@ -0,0 +1,24 @@
+package org.eclipse.emf.parsley.dsl.generator
+
+import com.google.inject.Inject
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.xtext.generator.IFileSystemAccess
+import org.eclipse.xtext.generator.IGenerator
+import org.eclipse.xtext.xbase.compiler.JvmModelGenerator
+
+/**
+ * This generator calls the standard JvmModelGenerator and
+ * the generator for plugin.xml_gen
+ */
+class EmfParsleyDslGenerator implements IGenerator {
+
+ @Inject JvmModelGenerator jvmModelGenerator
+
+ @Inject EmfParsleyDslPluginXmlGenerator pluginXmlGenerator
+
+ override doGenerate(Resource input, IFileSystemAccess fsa) {
+ jvmModelGenerator.doGenerate(input, fsa);
+ pluginXmlGenerator.doGenerate(input, fsa);
+ }
+
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslOutputConfigurationProvider.java b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslOutputConfigurationProvider.java
new file mode 100644
index 000000000..235d74899
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslOutputConfigurationProvider.java
@@ -0,0 +1,46 @@
+package org.eclipse.emf.parsley.dsl.generator;
+
+import java.util.Set;
+
+import org.eclipse.xtext.generator.OutputConfiguration;
+import org.eclipse.xtext.generator.OutputConfigurationProvider;
+
+public class EmfParsleyDslOutputConfigurationProvider extends
+ OutputConfigurationProvider {
+
+ public static final String EMFPARSLEY_GEN = "./emfparsley-gen";
+
+ public static final String PROJECT_ROOT_OUTPUT = "PROJECT_ROOT";
+
+ public static final String PLUGIN_XML_EMFPARSLEY_REL_GEN_PATH = "../";
+
+ public static final String PLUGIN_XML_EMFPARSLEY_GEN = "plugin.xml_emfparsley_gen";
+
+ public static final String PLUGIN_XML_EMFPARSLEY_GEN_PATH = PLUGIN_XML_EMFPARSLEY_REL_GEN_PATH
+ + PLUGIN_XML_EMFPARSLEY_GEN;
+
+ @Override
+ public Set<OutputConfiguration> getOutputConfigurations() {
+ Set<OutputConfiguration> outputconfigurations = super
+ .getOutputConfigurations();
+ OutputConfiguration outputConfiguration = outputconfigurations
+ .iterator().next();
+ outputConfiguration.setOutputDirectory(EMFPARSLEY_GEN);
+
+ OutputConfiguration projectRootOutput = new OutputConfiguration(
+ PROJECT_ROOT_OUTPUT);
+ projectRootOutput.setDescription("Output Folder for generated "
+ + PLUGIN_XML_EMFPARSLEY_GEN);
+ projectRootOutput.setOutputDirectory("src");
+ projectRootOutput.setOverrideExistingResources(true);
+ projectRootOutput.setCreateOutputDirectory(true);
+ projectRootOutput.setCanClearOutputDirectory(false);
+ projectRootOutput.setCleanUpDerivedResources(true);
+ projectRootOutput.setSetDerivedProperty(true);
+
+ outputconfigurations.add(projectRootOutput);
+
+ return outputconfigurations;
+ }
+
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslPluginXmlGenerator.xtend b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslPluginXmlGenerator.xtend
new file mode 100644
index 000000000..b79c87894
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslPluginXmlGenerator.xtend
@@ -0,0 +1,70 @@
+package org.eclipse.emf.parsley.dsl.generator
+
+import com.google.inject.Inject
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.emf.parsley.dsl.model.Module
+import org.eclipse.emf.parsley.dsl.model.PartSpecification
+import org.eclipse.emf.parsley.dsl.model.ViewSpecification
+import org.eclipse.xtext.generator.IFileSystemAccess
+import org.eclipse.xtext.generator.IGenerator
+import org.eclipse.emf.parsley.dsl.jvmmodel.EmfParsleyDslJvmModelInferrer
+
+import static org.eclipse.emf.parsley.dsl.generator.EmfParsleyDslOutputConfigurationProvider.*
+
+class EmfParsleyDslPluginXmlGenerator implements IGenerator {
+
+ @Inject EmfParsleyDslJvmModelInferrer inferrer;
+
+ override doGenerate(Resource resource, IFileSystemAccess fsa) {
+ for(module: resource.allContents.toIterable.filter(typeof(Module))) {
+ val contents = module.generatePluginXml
+ if (contents?.length > 0)
+ fsa.generateFile(
+ PLUGIN_XML_EMFPARSLEY_GEN_PATH,
+ PROJECT_ROOT_OUTPUT,
+ contents)
+ }
+ }
+
+ def generatePluginXml(Module module) {
+ val partSpecs = module?.parts
+ if (partSpecs == null || partSpecs.empty) {
+ return ''''''
+ } else {
+'''
+<extension
+ point="org.eclipse.ui.views">
+ «partSpecs.map[generateExtensionPoint].join("")»
+</extension>
+'''.generatePluginXml
+ }
+ }
+
+ def dispatch generateExtensionPoint(PartSpecification partSpecification) {
+
+ }
+
+ def dispatch generateExtensionPoint(ViewSpecification viewSpecification) {
+'''
+<view
+ category="«if (viewSpecification.category == null || viewSpecification.category.empty)
+ "org.eclipse.emf.parsley" else
+ viewSpecification.category»"
+ class="«inferrer.executableExtensionFactoryQN(viewSpecification)»:«viewSpecification.type.identifier»"
+ id="«viewSpecification.id»"
+ name="«viewSpecification.viewName»"
+ restorable="true">
+</view>
+'''
+ }
+
+ def generatePluginXml(CharSequence contents) {
+'''
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ «contents»
+</plugin>
+'''
+ }
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/jvmmodel/EmfParsleyDslJvmModelInferrer.xtend b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/jvmmodel/EmfParsleyDslJvmModelInferrer.xtend
new file mode 100644
index 000000000..c918a1311
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/jvmmodel/EmfParsleyDslJvmModelInferrer.xtend
@@ -0,0 +1,469 @@
+package org.eclipse.emf.parsley.dsl.jvmmodel
+
+import com.google.inject.Inject
+import java.util.List
+import org.eclipse.core.databinding.DataBindingContext
+import org.eclipse.core.databinding.observable.value.IObservableValue
+import org.eclipse.emf.common.notify.AdapterFactory
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.EStructuralFeature
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule
+import org.eclipse.emf.parsley.binding.FormControlFactory
+import org.eclipse.emf.parsley.binding.ProposalCreator
+import org.eclipse.emf.parsley.dsl.model.FormControlSpecification
+import org.eclipse.emf.parsley.dsl.model.Module
+import org.eclipse.emf.parsley.dsl.model.PartSpecification
+import org.eclipse.emf.parsley.edit.ui.provider.ViewerContentProvider
+import org.eclipse.emf.parsley.generator.common.EmfParsleyProjectFilesGenerator
+import org.eclipse.emf.parsley.ui.provider.EClassToEStructuralFeatureAsStringsMap
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider
+import org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider
+import org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider
+import org.eclipse.jface.viewers.IContentProvider
+import org.eclipse.jface.viewers.ILabelProvider
+import org.eclipse.swt.widgets.Control
+import org.eclipse.ui.plugin.AbstractUIPlugin
+import org.eclipse.xtext.common.types.JvmGenericType
+import org.eclipse.xtext.common.types.JvmOperation
+import org.eclipse.xtext.common.types.JvmVisibility
+import org.eclipse.xtext.common.types.TypesFactory
+import org.eclipse.xtext.common.types.util.TypeReferences
+import org.eclipse.xtext.naming.IQualifiedNameProvider
+import org.eclipse.xtext.xbase.XExpression
+import org.eclipse.xtext.xbase.jvmmodel.AbstractModelInferrer
+import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor
+import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder
+
+import static extension org.eclipse.xtext.EcoreUtil2.*
+
+/**
+ * <p>Infers a JVM model from the source model.</p>
+ *
+ * <p>The JVM model should contain all elements that would appear in the Java code
+ * which is generated from the source model. Other models link against the JVM model rather than the source model.</p>
+ */
+class EmfParsleyDslJvmModelInferrer extends AbstractModelInferrer {
+
+ /**
+ * convenience API to build and initialize JVM types and their members.
+ */
+ @Inject extension JvmTypesBuilder
+
+ @Inject extension IQualifiedNameProvider
+
+ @Inject extension TypeReferences
+
+ @Inject extension TypesFactory
+
+ @Inject extension GeneratorUtils
+
+ @Inject EmfParsleyProjectFilesGenerator projectFilesGenerator
+
+ /**
+ * The dispatch method {@code infer} is called for each instance of the
+ * given element's type that is contained in a resource.
+ *
+ * @param element
+ * the model to create one or more
+ * {@link org.eclipse.xtext.common.types.JvmDeclaredType declared
+ * types} from.
+ * @param acceptor
+ * each created
+ * {@link org.eclipse.xtext.common.types.JvmDeclaredType type}
+ * without a container should be passed to the acceptor in order
+ * get attached to the current resource. The acceptor's
+ * {@link IJvmDeclaredTypeAcceptor#accept(org.eclipse.xtext.common.types.JvmDeclaredType)
+ * accept(..)} method takes the constructed empty type for the
+ * pre-indexing phase. This one is further initialized in the
+ * indexing phase using the closure you pass to the returned
+ * {@link org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor.IPostIndexingInitializing#initializeLater(org.eclipse.xtext.xbase.lib.Procedures.Procedure1)
+ * initializeLater(..)}.
+ * @param isPreIndexingPhase
+ * whether the method is called in a pre-indexing phase, i.e.
+ * when the global index is not yet fully updated. You must not
+ * rely on linking using the index if isPreIndexingPhase is
+ * <code>true</code>.
+ */
+ def dispatch void infer(Module element, IJvmDeclaredTypeAcceptor acceptor, boolean isPreIndexingPhase) {
+ if (element.name == null)
+ return
+
+ val moduleClass = element.toClass(element.moduleQN)
+
+ val labelProviderClass = element.inferLabelProvider(acceptor)
+ val propertyDescriptionProviderClass = element.inferPropertyDescriptionProvider(acceptor)
+ val featureProviderClass = element.inferFeatureProvider(acceptor)
+ val formControlFactoryClass = element.inferFormControlFactory(acceptor)
+ val viewerContentProviderClass = element.inferViewerContentProvider(acceptor)
+ val proposalCreatorClass = element.inferProposalCreator(acceptor)
+
+ acceptor.accept(moduleClass).initializeLater [
+ documentation = element.documentation
+ moduleClass.setSuperClassType(element, typeof(EmfComponentsGuiceModule))
+
+ members += element.toConstructor() [
+ parameters += element.toParameter("plugin", element.newTypeRef(typeof(AbstractUIPlugin)))
+ body = [it.append("super(plugin);")]
+ ]
+
+ if (labelProviderClass != null)
+ members += element.labelProvider.genBindMethod(labelProviderClass, typeof(ILabelProvider))
+ if (propertyDescriptionProviderClass != null)
+ members += element.propertyDescriptionProvider.genBindMethod(propertyDescriptionProviderClass, typeof(PropertyDescriptionProvider))
+ if (featureProviderClass != null)
+ members += element.featuresProvider.genBindMethod(featureProviderClass, typeof(FeaturesProvider))
+ if (formControlFactoryClass != null)
+ members += element.formControlFactory.genBindMethod(formControlFactoryClass, typeof(FormControlFactory))
+ if (viewerContentProviderClass != null)
+ members += element.viewerContentProvider.genBindMethod(viewerContentProviderClass, typeof(IContentProvider))
+ if (proposalCreatorClass != null)
+ members += element.proposalCreator.genBindMethod(proposalCreatorClass, typeof(ProposalCreator))
+ ]
+ }
+
+ def setSuperClassType(JvmGenericType e, Module dslElement, Class<?> defaultSuperClass) {
+ if (dslElement.extendsClause != null)
+ e.superTypes += dslElement.extendsClause.superType.cloneWithProxies
+ else
+ e.superTypes += e.newTypeRef(defaultSuperClass)
+ }
+
+ def activatorQN(Module element) {
+ element.fullyQualifiedName + ".Activator"
+ }
+
+ def moduleQN(Module element) {
+ element.fullyQualifiedName + ".EmfComponentsGuiceModuleGen"
+ }
+
+ def executableExtensionFactoryQN(Module element) {
+ element.fullyQualifiedName.toString + "." +
+ projectFilesGenerator.extFactoryName(element.fullyQualifiedName.toString)
+ }
+
+ def executableExtensionFactoryQN(PartSpecification element) {
+ element.getContainerOfType(typeof(Module)).executableExtensionFactoryQN
+ }
+
+ def labelProviderQN(Module element) {
+ element.fullyQualifiedName + ".ui.provider.LabelProviderGen"
+ }
+
+ def propertyDescriptionProviderQN(Module element) {
+ element.fullyQualifiedName + ".ui.provider.PropertyDescriptionProviderGen"
+ }
+
+ def featuresProviderQN(Module element) {
+ element.fullyQualifiedName + ".ui.provider.FeaturesProviderGen"
+ }
+
+ def formFeatureControlFactoryQN(Module element) {
+ element.fullyQualifiedName + ".binding.FormFeatureControlFactoryGen"
+ }
+
+ def viewerContentProviderQN(Module element) {
+ element.fullyQualifiedName + ".edit.ui.provider.ViewerContentProviderGen"
+ }
+
+ def proposalCreatorQN(Module element) {
+ element.fullyQualifiedName + ".binding.ProposalCreatorGen"
+ }
+
+ def inferLabelProvider(Module element, IJvmDeclaredTypeAcceptor acceptor) {
+ if (element.labelProvider == null)
+ null
+ else {
+ val labelProviderClass = element.labelProvider.toClass(element.labelProviderQN)
+ acceptor.accept(labelProviderClass).initializeLater [
+ superTypes += element.newTypeRef(typeof(ViewerLabelProvider))
+
+ members += element.labelProvider.toConstructor() [
+ parameters += element.labelProvider.
+ toParameter("delegate",
+ element.newTypeRef(typeof(AdapterFactoryLabelProvider))
+ )
+ body = [it.append("super(delegate);")]
+ annotations += element.toAnnotation(typeof(Inject))
+ ]
+
+ element.labelProvider.labelSpecifications.forEach [
+ labelSpecification |
+ members += labelSpecification.toMethod("text", element.newTypeRef(typeof(String))) [
+ parameters += labelSpecification.toParameter(
+ if (labelSpecification.name != null)
+ labelSpecification.name
+ else
+ "it"
+ , labelSpecification.parameterType
+ )
+ body = labelSpecification.expression
+ ]
+ ]
+
+ element.labelProvider.imageSpecifications.forEach [
+ imageSpecification |
+ members += imageSpecification.toMethod("image", element.newTypeRef(typeof(Object))) [
+ parameters += imageSpecification.toParameter(
+ if (imageSpecification.name != null)
+ imageSpecification.name
+ else
+ "it"
+ , imageSpecification.parameterType
+ )
+ body = imageSpecification.expression
+ ]
+ ]
+ ]
+ labelProviderClass
+ }
+ }
+
+ def inferPropertyDescriptionProvider(Module element, IJvmDeclaredTypeAcceptor acceptor) {
+ if (element.propertyDescriptionProvider == null)
+ null
+ else {
+ val propertyDescriptionProviderClass = element.propertyDescriptionProvider.toClass(element.propertyDescriptionProviderQN)
+ acceptor.accept(propertyDescriptionProviderClass).initializeLater [
+ superTypes += element.newTypeRef(typeof(PropertyDescriptionProvider))
+
+ element.propertyDescriptionProvider.labelSpecifications.forEach [
+ labelSpecification |
+ if (labelSpecification.feature?.simpleName != null) {
+ // associate the method to the expression, not to the whole
+ // labelSpecification, otherwise the 'feature' is logically
+ // contained in a method which should return a string
+ // and the validator would complain
+ members += labelSpecification.expression.toMethod
+ ("text_" +
+ labelSpecification.parameterType.simpleName + "_" +
+ labelSpecification.feature.simpleName.propertyNameForGetterSetterMethod,
+ element.newTypeRef(typeof(String))
+ ) [
+ parameters += labelSpecification.toParameter(
+ "it", element.newTypeRef(typeof(EStructuralFeature))
+ )
+ body = labelSpecification.expression
+ ]
+ }
+ ]
+ ]
+ propertyDescriptionProviderClass
+ }
+ }
+
+ def inferFeatureProvider(Module element, IJvmDeclaredTypeAcceptor acceptor) {
+ if (element.featuresProvider == null)
+ null
+ else {
+ val featureProviderClass = element.featuresProvider.toClass(element.featuresProviderQN)
+ acceptor.accept(featureProviderClass).initializeLater [
+ superTypes += element.newTypeRef(typeof(FeaturesProvider))
+
+ documentation = element.featuresProvider.documentation
+ members += element.featuresProvider.
+ toMethod("buildStringMap", Void::TYPE.getTypeForName(element)) [
+ annotations += element.toAnnotation(typeof(Override))
+ parameters += element.featuresProvider.toParameter("stringMap",
+ element.newTypeRef(
+ typeof(EClassToEStructuralFeatureAsStringsMap)
+ )
+ )
+ body = [
+ append("super.buildStringMap(stringMap);").newLine
+ element.featuresProvider.featureSpecifications.forEach [
+ featureSpecification |
+ newLine.
+ append('''stringMap.mapTo("«featureSpecification.parameterType.identifier»",''').
+ increaseIndentation.newLine
+ val fs = featureSpecification.features.map [
+ feature |
+ '"' + feature.simpleName.propertyNameForGetterSetterMethod
+ + '"'
+ ]
+ append(fs.join(", "))
+ append(");").decreaseIndentation
+ ]
+ ]
+ ]
+ ]
+ featureProviderClass
+ }
+ }
+
+ def inferFormControlFactory(Module e, IJvmDeclaredTypeAcceptor acceptor) {
+ if (e.formControlFactory == null)
+ null
+ else {
+ val formFeatureControlFactoryClass = e.formControlFactory.toClass(e.formFeatureControlFactoryQN)
+ acceptor.accept(formFeatureControlFactoryClass).initializeLater [
+ superTypes += e.newTypeRef(typeof(FormControlFactory))
+
+ documentation = e.formControlFactory.documentation
+
+ e.formControlFactory.controlSpecifications.forEach [
+ spec |
+ if (spec.feature?.simpleName != null) {
+ // associate the method to the expression, not to the whole
+ // labelSpecification, otherwise the 'feature' is logically
+ // contained in a method which should return a string
+ // and the validator would complain
+ if (spec.target == null)
+ members += spec.
+ control_EClass_EStructuralFeature(spec.expression) [
+ parameters += spec.toParameter(
+ "it", spec.parameterType
+ )
+ body = spec.expression
+ ]
+ else {
+ val createControlMethodName = spec.methodNameForFormFeatureSpecification("createControl_")
+ val createTargetMethodName = spec.methodNameForFormFeatureSpecification("createTarget_")
+ members += spec.
+ control_EClass_EStructuralFeature(spec.expression) [
+ parameters += spec.toParameter(
+ "dataBindingContext", e.newTypeRef(typeof(DataBindingContext))
+ )
+ parameters += spec.toParameter(
+ "observableValue", e.newTypeRef(typeof(IObservableValue))
+ )
+ body = [
+ append(spec.newTypeRef(typeof(Control)).type)
+ append(''' control = «createControlMethodName»();''').newLine
+ append(
+ '''
+ dataBindingContext.bindValue(
+ «createTargetMethodName»(control),
+ observableValue);'''
+ ).newLine
+ append('''return control;''')
+ ]
+ ]
+
+ members += spec.toMethod
+ (createControlMethodName,
+ spec.newTypeRef(typeof(Control))) [
+ visibility = JvmVisibility::PROTECTED
+ body = spec.expression
+ ]
+
+ members += spec.toMethod
+ (createTargetMethodName,
+ spec.newTypeRef(typeof(IObservableValue))) [
+ visibility = JvmVisibility::PROTECTED
+ parameters += spec.toParameter(
+ "it", e.newTypeRef(typeof(Control))
+ )
+ body = spec.target
+ ]
+ }
+ }
+ ]
+ ]
+ formFeatureControlFactoryClass
+ }
+ }
+
+ def inferViewerContentProvider(Module element, IJvmDeclaredTypeAcceptor acceptor) {
+ if (element.viewerContentProvider == null)
+ null
+ else {
+ val viewerContentProviderClass = element.viewerContentProvider.toClass(element.viewerContentProviderQN)
+ acceptor.accept(viewerContentProviderClass).initializeLater [
+ superTypes += element.newTypeRef(typeof(ViewerContentProvider))
+
+ members += element.viewerContentProvider.toConstructor() [
+ parameters += element.viewerContentProvider.
+ toParameter("adapterFactory",
+ element.newTypeRef(typeof(AdapterFactory))
+ )
+ body = [it.append("super(adapterFactory);")]
+ annotations += element.toAnnotation(typeof(Inject))
+ ]
+
+ element.viewerContentProvider.childrenSpecifications.forEach [
+ specification |
+ members += specification.toMethod("children", element.newTypeRef(typeof(Object))) [
+ parameters += specification.toParameter(
+ if (specification.name != null)
+ specification.name
+ else
+ "it"
+ , specification.parameterType
+ )
+ body = specification.expression
+ ]
+ ]
+ ]
+ viewerContentProviderClass
+ }
+ }
+
+ def inferProposalCreator(Module element, IJvmDeclaredTypeAcceptor acceptor) {
+ if (element.proposalCreator == null)
+ null
+ else {
+ val proposalCreatorClass = element.proposalCreator.toClass(element.proposalCreatorQN)
+ acceptor.accept(proposalCreatorClass).initializeLater [
+ superTypes += element.newTypeRef(typeof(ProposalCreator))
+
+ element.proposalCreator.proposalsSpecifications.forEach [
+ spec |
+ if (spec.feature?.simpleName != null) {
+ // associate the method to the expression, not to the whole
+ // specification, otherwise the 'feature' is logically
+ // contained in a method which should return a string
+ // and the validator would complain
+ members += spec.expression.toMethod
+ ("proposals_" +
+ spec.parameterType.simpleName + "_" +
+ spec.feature.simpleName.propertyNameForGetterSetterMethod,
+ element.newTypeRef(typeof(List)).type.createTypeRef(wildCard)
+ ) [
+ parameters += spec.toParameter(
+ "it", spec.parameterType
+ )
+ parameters += spec.toParameter(
+ "feature", spec.newTypeRef(typeof(EStructuralFeature))
+ )
+ body = spec.expression
+ ]
+ }
+ ]
+ ]
+ proposalCreatorClass
+ }
+ }
+
+ def control_EClass_EStructuralFeature(
+ FormControlSpecification spec, XExpression exp, (JvmOperation)=>void init
+ ) {
+ exp.toMethod
+ (spec.methodNameForFormFeatureSpecification("control_"),
+ spec.newTypeRef(typeof(Control))
+ , init)
+ }
+
+ def methodNameForFormFeatureSpecification(FormControlSpecification spec, String prefix) {
+ prefix +
+ spec.parameterType.simpleName + "_" +
+ spec.feature.simpleName.propertyNameForGetterSetterMethod
+ }
+
+ def genBindMethod(EObject element, JvmGenericType type, Class<?> clazz) {
+ val wildCard = createJvmWildcardTypeReference
+ val upperBound = createJvmUpperBound
+ upperBound.typeReference = element.newTypeRef(clazz)
+ wildCard.constraints += upperBound
+ element.toMethod("bind" + clazz.simpleName,
+ element.newTypeRef(typeof(Class), wildCard) ) [
+ annotations += element.toAnnotation(typeof(Override))
+ body = [
+ append("return ")
+ append(type)
+ append(".class;")
+ ]
+ ]
+ }
+}
+
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/jvmmodel/GeneratorUtils.java b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/jvmmodel/GeneratorUtils.java
new file mode 100644
index 000000000..02712db80
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/jvmmodel/GeneratorUtils.java
@@ -0,0 +1,22 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.dsl.jvmmodel;
+
+import java.beans.Introspector;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+public class GeneratorUtils {
+
+ public String getPropertyNameForGetterSetterMethod(String opName) {
+ if (opName.startsWith("get") && opName.length() > 3 && Character.isUpperCase(opName.charAt(3)))
+ return Introspector.decapitalize(opName.substring(3));
+
+ if (opName.startsWith("is") && opName.length() > 2 && Character.isUpperCase(opName.charAt(2)))
+ return Introspector.decapitalize(opName.substring(2));
+ return null;
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslImplicitlyImportedTypes.xtend b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslImplicitlyImportedTypes.xtend
new file mode 100644
index 000000000..36f5f764c
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslImplicitlyImportedTypes.xtend
@@ -0,0 +1,12 @@
+package org.eclipse.emf.parsley.dsl.scoping
+
+import org.eclipse.jface.databinding.swt.SWTObservables
+import org.eclipse.swt.widgets.Control
+import org.eclipse.xtext.xbase.scoping.batch.ImplicitlyImportedTypes
+
+class EmfParsleyDslImplicitlyImportedTypes extends ImplicitlyImportedTypes {
+ override protected getExtensionClasses() {
+ (super.getExtensionClasses() + #[typeof(Control), typeof(SWTObservables)])
+ .toList
+ }
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslImportedNamespaceScopeProvider.java b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslImportedNamespaceScopeProvider.java
new file mode 100644
index 000000000..e11ed61ea
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslImportedNamespaceScopeProvider.java
@@ -0,0 +1,26 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.dsl.scoping;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.xtext.naming.QualifiedName;
+import org.eclipse.xtext.scoping.impl.ImportNormalizer;
+import org.eclipse.xtext.xbase.scoping.XImportSectionNamespaceScopeProvider;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+public class EmfParsleyDslImportedNamespaceScopeProvider extends
+ XImportSectionNamespaceScopeProvider {
+
+ @Override
+ protected List<ImportNormalizer> getImplicitImports(boolean ignoreCase) {
+ List<ImportNormalizer> implicitImports = new ArrayList<ImportNormalizer>(super.getImplicitImports(ignoreCase));
+ implicitImports.add(new ImportNormalizer(QualifiedName.create("org","eclipse","swt"), true, ignoreCase));
+ return implicitImports;
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslScopeProvider.java b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslScopeProvider.java
new file mode 100644
index 000000000..d6e20e9ca
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslScopeProvider.java
@@ -0,0 +1,155 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.dsl.scoping;
+
+import java.util.Collections;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.parsley.dsl.model.EmfFeatureAccess;
+import org.eclipse.emf.parsley.dsl.model.FeatureSpecification;
+import org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification;
+import org.eclipse.xtext.common.types.JvmDeclaredType;
+import org.eclipse.xtext.common.types.JvmOperation;
+import org.eclipse.xtext.common.types.JvmType;
+import org.eclipse.xtext.resource.EObjectDescription;
+import org.eclipse.xtext.resource.IEObjectDescription;
+import org.eclipse.xtext.scoping.IScope;
+import org.eclipse.xtext.scoping.impl.SimpleScope;
+import org.eclipse.xtext.xbase.annotations.scoping.XbaseWithAnnotationsScopeProvider;
+import org.eclipse.xtext.xbase.scoping.LocalVariableScopeContext;
+
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterables;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+public class EmfParsleyDslScopeProvider extends XbaseWithAnnotationsScopeProvider {
+
+ // public IScope __getScope(EObject context, EReference reference) {
+ // if (context instanceof FeatureLabelSpecification
+ // && TypesPackage.Literals.JVM_IDENTIFIABLE_ELEMENT
+ // .isSuperTypeOf(reference.getEReferenceType())) {
+ // IScope parent = super.getScope(context, reference);
+ //
+ // FeatureLabelSpecification featureLabelSpecification =
+ // (FeatureLabelSpecification) context;
+ // // JvmTypeReference parameterType = featureLabelSpecification
+ // // .getParameterType();
+ // JvmFeatureScopeAcceptor featureScopeDescriptions = new
+ // JvmFeatureScopeAcceptor();
+ // JvmDeclaredType type = (JvmDeclaredType) parameterType.getType();
+ // addFeatureScopes(parameterType, context, type, null, null,
+ // getDefaultPriority(), featureScopeDescriptions);
+ // IScope result = featureScopeDescriptions.createScope(parent);
+ // // IScope featureScopeForTypeRef = createFeatureScopeForTypeRef(
+ // // parameterType, parameterType, null, IScope.NULLSCOPE);
+ // // IScope result = createFeatureScopeForTypeRef(parameterType,
+ // // featureLabelSpecification, null, IScope.NULLSCOPE);
+ // return result;
+ // // System.out.println(reference);
+ // }
+ //
+ // return super.getScope(context, reference);
+ // }
+
+ @Override
+ protected JvmDeclaredType getContextType(EObject obj) {
+ if (obj instanceof EmfFeatureAccess) {
+ EmfFeatureAccess featureAccess = (EmfFeatureAccess) obj;
+ JvmType parameterType = featureAccess.getParameterType().getType();
+ if (parameterType instanceof JvmDeclaredType) {
+ return (JvmDeclaredType) parameterType;
+ }
+ }
+
+ return super.getContextType(obj);
+ }
+
+ @Override
+ protected IScope createLocalVarScope(IScope parentScope,
+ LocalVariableScopeContext scopeContext) {
+ parentScope = super.createLocalVarScope(parentScope, scopeContext);
+
+ if (scopeContext != null && scopeContext.getContext() != null) {
+ EObject context = scopeContext.getContext();
+ if (context instanceof EmfFeatureAccess) {
+ EmfFeatureAccess featureAccess = (EmfFeatureAccess) context;
+ return new SimpleScope(parentScope,
+ Collections.singleton(EObjectDescription.create(THIS,
+ featureAccess.getParameterType().getType())));
+ }
+ }
+
+ return parentScope;
+ }
+
+ @Override
+ protected IScope createImplicitFeatureCallScope(EObject call,
+ Resource resource, IScope parent, IScope localVariableScope) {
+ IScope superScope = super.createImplicitFeatureCallScope(call,
+ resource, parent, localVariableScope);
+
+ return filterScope(call, superScope);
+ }
+
+ protected IScope filterScope(EObject call, IScope superScope) {
+ boolean shouldFilter = false;
+ EObject container = call.eContainer();
+ if (container instanceof PropertyDescriptionSpecification) {
+ PropertyDescriptionSpecification featureLabelSpecification = (PropertyDescriptionSpecification) container;
+ if (featureLabelSpecification.getFeature() == call)
+ shouldFilter = true;
+ }
+ if (container instanceof FeatureSpecification) {
+ FeatureSpecification featureSpecification = (FeatureSpecification) container;
+ if (featureSpecification.getFeatures().contains(call))
+ shouldFilter = true;
+ }
+
+ if (!shouldFilter)
+ return superScope;
+
+ Iterable<IEObjectDescription> exportedObjects = superScope
+ .getAllElements();
+
+ // we filter the feature scope so that it contains only
+ // the name of the features, no get/set/is method names
+ // no static methods, etc.
+ Iterable<IEObjectDescription> filtered = Iterables.filter(
+ exportedObjects, new Predicate<IEObjectDescription>() {
+ public boolean apply(IEObjectDescription input) {
+ EObject element = input.getEObjectOrProxy();
+ if (element instanceof JvmOperation) {
+ JvmOperation operation = (JvmOperation) element;
+ if (operation.isStatic())
+ return false;
+ if (isPropertyNameForGetterSetterMethod(input
+ .toString()))
+ return false;
+ if (input.toString().contains("("))
+ return false;
+ return true;
+ }
+ return false;
+ }
+ });
+
+ return new SimpleScope(filtered);
+ }
+
+ protected boolean isPropertyNameForGetterSetterMethod(String opName) {
+ if ((opName.startsWith("get") || opName.startsWith("set"))
+ && opName.length() > 3
+ && Character.isUpperCase(opName.charAt(3)))
+ return true;
+
+ if (opName.startsWith("is") && opName.length() > 2
+ && Character.isUpperCase(opName.charAt(2)))
+ return true;
+ return false;
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslScopeProviderHelper.xtend b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslScopeProviderHelper.xtend
new file mode 100644
index 000000000..1f11a0219
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslScopeProviderHelper.xtend
@@ -0,0 +1,76 @@
+package org.eclipse.emf.parsley.dsl.scoping
+
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.EReference
+import org.eclipse.xtext.common.types.JvmGenericType
+import org.eclipse.xtext.common.types.JvmType
+import org.eclipse.xtext.common.types.TypesPackage
+import org.eclipse.xtext.naming.QualifiedName
+import org.eclipse.xtext.scoping.IScope
+import org.eclipse.xtext.scoping.impl.SimpleScope
+
+import static extension org.eclipse.emf.parsley.dsl.util.EmfParsleyDslModelUtil.*
+import static extension org.eclipse.xtext.scoping.Scopes.*
+import org.eclipse.xtext.common.types.JvmOperation
+import java.beans.Introspector
+
+/**
+ * For the moment Xbase uses two different scope providers, one for
+ * the runtime part and one for the content assist, thus we must
+ * factor out commong behavior.
+ *
+ * see http://www.eclipse.org/forums/index.php/mv/msg/476486/1041675/#msg_1041675
+ *
+ */
+class EmfParsleyDslScopeProviderHelper {
+
+ def IScope createCustomScope(EObject context, EReference reference) {
+ if (reference.EType == TypesPackage::eINSTANCE.jvmMember) {
+ return context.containingEmfFeatureAccess?.
+ parameterType?.type?.customScope
+ }
+
+ return null;
+ }
+
+ def dispatch IScope customScope(JvmType t) {
+ null
+ }
+
+ def dispatch IScope customScope(JvmGenericType t) {
+ // a JvmMember does not have 'name', but 'simpleName'
+ // thus we must also provide a function for computing the
+ // QualifiedName (the default one relies on 'name')
+ return new SimpleScope(
+ t.allFeatures.filter(typeof(JvmOperation)).filter[!static].
+ scopedElementsFor [
+ if (simpleName.getterMethod)
+ QualifiedName::create
+ (simpleName.propertyNameForGetterMethod)
+ else
+ null
+ ]
+ )
+ }
+
+ def isGetterMethod(String opName) {
+ if ((opName.startsWith("get"))
+ && opName.length() > 3
+ && Character::isUpperCase(opName.charAt(3)))
+ return true;
+
+ if (opName.startsWith("is") && opName.length() > 2
+ && Character::isUpperCase(opName.charAt(2)))
+ return true;
+ return false;
+ }
+
+ def getPropertyNameForGetterMethod(String opName) {
+ if (opName.startsWith("get") && opName.length() > 3 && Character::isUpperCase(opName.charAt(3)))
+ return Introspector::decapitalize(opName.substring(3));
+
+ if (opName.startsWith("is") && opName.length() > 2 && Character::isUpperCase(opName.charAt(2)))
+ return Introspector::decapitalize(opName.substring(2));
+ return null;
+ }
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslXbaseBatchScopeProvider.xtend b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslXbaseBatchScopeProvider.xtend
new file mode 100644
index 000000000..8bd4753ae
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslXbaseBatchScopeProvider.xtend
@@ -0,0 +1,19 @@
+package org.eclipse.emf.parsley.dsl.scoping
+
+import com.google.inject.Inject
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.EReference
+import org.eclipse.xtext.xbase.scoping.batch.XbaseBatchScopeProvider
+
+class EmfParsleyDslXbaseBatchScopeProvider extends XbaseBatchScopeProvider {
+
+ @Inject extension EmfParsleyDslScopeProviderHelper
+
+ override getScope(EObject context, EReference reference) {
+ val scope = context.createCustomScope(reference)
+
+ if (scope != null)
+ return scope;
+ super.getScope(context, reference);
+ }
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/util/EmfParsleyDslModelUtil.xtend b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/util/EmfParsleyDslModelUtil.xtend
new file mode 100644
index 000000000..4ebdb8def
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/util/EmfParsleyDslModelUtil.xtend
@@ -0,0 +1,13 @@
+package org.eclipse.emf.parsley.dsl.util
+
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.parsley.dsl.model.EmfFeatureAccess
+
+import static extension org.eclipse.xtext.EcoreUtil2.*
+
+class EmfParsleyDslModelUtil {
+
+ def static containingEmfFeatureAccess(EObject o) {
+ o.getContainerOfType(typeof(EmfFeatureAccess))
+ }
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/validation/EmfParsleyDslJavaValidator.java b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/validation/EmfParsleyDslJavaValidator.java
new file mode 100644
index 000000000..5f1bd4ab8
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/validation/EmfParsleyDslJavaValidator.java
@@ -0,0 +1,58 @@
+package org.eclipse.emf.parsley.dsl.validation;
+
+import org.eclipse.emf.parsley.dsl.model.EmfFeatureAccess;
+import org.eclipse.emf.parsley.dsl.model.ModelPackage;
+import org.eclipse.emf.parsley.dsl.model.Module;
+import org.eclipse.emf.parsley.dsl.model.ViewSpecification;
+import org.eclipse.xtext.validation.Check;
+
+import com.google.inject.Inject;
+
+
+public class EmfParsleyDslJavaValidator extends AbstractEmfParsleyDslJavaValidator {
+
+ public static final String NOT_I_VIEW_PART = "org.eclipse.emf.parsley.dsl.NotIViewPart";
+
+ public static final String NOT_EOBJECT = "org.eclipse.emf.parsley.dsl.NotEObject";
+
+ public static final String NOT_EMFCOMPONENTS_MODULE = "org.eclipse.emf.parsley.dsl.NotEmfComponentsGuiceModule";
+
+ @Inject
+ private EmfParsleyDslTypeSystem typeSystem;
+
+ @Check
+ public void checkViewSpecification(ViewSpecification viewSpecification) {
+ if (viewSpecification.getType() != null
+ && !typeSystem.isViewPart(viewSpecification.getType(),
+ viewSpecification)) {
+ error("Must be an IViewPart",
+ ModelPackage.Literals.VIEW_SPECIFICATION__TYPE,
+ NOT_I_VIEW_PART);
+ }
+ }
+
+ @Check
+ public void checkEmfFeatureAccess(EmfFeatureAccess emfFeatureAccess) {
+ if (emfFeatureAccess.getParameterType() != null
+ && !typeSystem.isEObject(emfFeatureAccess.getParameterType(),
+ emfFeatureAccess)) {
+ error("Must be an EObject derived class",
+ ModelPackage.Literals.EMF_FEATURE_ACCESS__PARAMETER_TYPE,
+ NOT_EOBJECT);
+ }
+ }
+
+ @Check
+ public void checkModuleExtends(Module module) {
+ if (module.getExtendsClause() != null
+ && module.getExtendsClause().getSuperType() != null
+ && !typeSystem.isEmfComponentsGuiceModule(module
+ .getExtendsClause().getSuperType(), module)) {
+ error("Must be an EmfComponentsGuiceModule derived class",
+ module.getExtendsClause(),
+ ModelPackage.Literals.EXTENDS_CLAUSE__SUPER_TYPE,
+ NOT_EMFCOMPONENTS_MODULE);
+ }
+ }
+
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/validation/EmfParsleyDslTypeSystem.xtend b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/validation/EmfParsleyDslTypeSystem.xtend
new file mode 100644
index 000000000..61926188b
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/src/org/eclipse/emf/parsley/dsl/validation/EmfParsleyDslTypeSystem.xtend
@@ -0,0 +1,43 @@
+package org.eclipse.emf.parsley.dsl.validation
+
+import com.google.inject.Inject
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.EStructuralFeature
+import org.eclipse.xtext.common.types.JvmTypeReference
+import org.eclipse.xtext.common.types.util.TypeReferences
+import org.eclipse.xtext.xbase.typing.XbaseTypeConformanceComputer
+import org.eclipse.ui.IViewPart
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule
+
+class EmfParsleyDslTypeSystem {
+ @Inject
+ private XbaseTypeConformanceComputer conformanceComputer
+
+ @Inject
+ private TypeReferences typeReferences
+
+ def isConformant(JvmTypeReference expected,
+ JvmTypeReference actual) {
+ conformanceComputer.isConformant(expected, actual);
+ }
+
+ def isEObject(JvmTypeReference type, EObject context) {
+ isConformant(
+ typeReferences.getTypeForName(typeof(EObject), context), type);
+ }
+
+ def isEStructuralFeature(JvmTypeReference type, EObject context) {
+ isConformant(typeReferences.getTypeForName(
+ typeof(EStructuralFeature), context), type);
+ }
+
+ def isViewPart(JvmTypeReference type, EObject context) {
+ isConformant(typeReferences.getTypeForName(
+ typeof(IViewPart), context), type);
+ }
+
+ def isEmfComponentsGuiceModule(JvmTypeReference type, EObject context) {
+ isConformant(typeReferences.getTypeForName(
+ typeof(EmfComponentsGuiceModule), context), type);
+ }
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl/temp/EmfComponentsDslJvmModelInferrer.xtend b/dsl/org.eclipse.emf.parsley.dsl/temp/EmfComponentsDslJvmModelInferrer.xtend
new file mode 100644
index 000000000..648adffb8
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/temp/EmfComponentsDslJvmModelInferrer.xtend
@@ -0,0 +1,172 @@
+package org.eclipse.emf.parsley.dsl.jvmmodel
+
+import com.google.inject.Inject
+import org.eclipse.emf.parsley.dsl.model.Module
+import org.eclipse.xtext.naming.IQualifiedNameProvider
+import org.eclipse.xtext.xbase.jvmmodel.AbstractModelInferrer
+import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor
+import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder
+import org.eclipse.emf.parsley.EmfComponentsGenericModule
+import org.eclipse.emf.parsley.EmfComponentsExecutableExtensionFactory
+import org.eclipse.ui.plugin.AbstractUIPlugin
+import org.eclipse.emf.parsley.ui.EmfComponentsAbstractActivator
+import org.eclipse.xtext.common.types.JvmVisibility
+import org.eclipse.xtext.common.types.util.TypeReferences
+import org.osgi.framework.BundleContext
+import org.osgi.framework.Bundle
+import com.google.inject.Injector
+
+/**
+ * <p>Infers a JVM model from the source model.</p>
+ *
+ * <p>The JVM model should contain all elements that would appear in the Java code
+ * which is generated from the source model. Other models link against the JVM model rather than the source model.</p>
+ */
+class EmfComponentsDslJvmModelInferrer extends AbstractModelInferrer {
+
+ /**
+ * convenience API to build and initialize JVM types and their members.
+ */
+ @Inject extension JvmTypesBuilder
+
+ @Inject extension IQualifiedNameProvider
+
+ @Inject extension TypeReferences
+
+ /**
+ * The dispatch method {@code infer} is called for each instance of the
+ * given element's type that is contained in a resource.
+ *
+ * @param element
+ * the model to create one or more
+ * {@link org.eclipse.xtext.common.types.JvmDeclaredType declared
+ * types} from.
+ * @param acceptor
+ * each created
+ * {@link org.eclipse.xtext.common.types.JvmDeclaredType type}
+ * without a container should be passed to the acceptor in order
+ * get attached to the current resource. The acceptor's
+ * {@link IJvmDeclaredTypeAcceptor#accept(org.eclipse.xtext.common.types.JvmDeclaredType)
+ * accept(..)} method takes the constructed empty type for the
+ * pre-indexing phase. This one is further initialized in the
+ * indexing phase using the closure you pass to the returned
+ * {@link org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor.IPostIndexingInitializing#initializeLater(org.eclipse.xtext.xbase.lib.Procedures.Procedure1)
+ * initializeLater(..)}.
+ * @param isPreIndexingPhase
+ * whether the method is called in a pre-indexing phase, i.e.
+ * when the global index is not yet fully updated. You must not
+ * rely on linking using the index if isPreIndexingPhase is
+ * <code>true</code>.
+ */
+ def dispatch void infer(Module element, IJvmDeclaredTypeAcceptor acceptor, boolean isPreIndexingPhase) {
+ if (element.name == null)
+ return
+
+ val moduleClass = element.toClass(element.moduleQN)
+ val execExtFactoryClass = element.toClass(element.executableExtensionFactoryQN)
+ val activatorClass = element.toClass(element.activatorQN)
+
+ acceptor.accept(moduleClass).initializeLater [
+ documentation = element.documentation
+ superTypes += element.newTypeRef(typeof(EmfComponentsGenericModule))
+
+ members += element.toConstructor() [
+ parameters += element.toParameter("plugin", element.newTypeRef(typeof(AbstractUIPlugin)))
+ body = [it.append("super(plugin);")]
+ ]
+ ]
+
+ acceptor.accept(execExtFactoryClass).initializeLater [
+ documentation = element.documentation
+ superTypes += element.newTypeRef(typeof(EmfComponentsExecutableExtensionFactory))
+
+ members += element.toMethod("getBundle", element.newTypeRef(typeof(Bundle))) [
+ annotations += element.toAnnotation(typeof(Override))
+ visibility = JvmVisibility::PROTECTED
+ body = [
+ append("return " + element.activatorQN + ".getDefault().getBundle();")
+ ]
+ ]
+
+ members += element.toMethod("getModule", element.newTypeRef(typeof(EmfComponentsGenericModule))) [
+ annotations += element.toAnnotation(typeof(Override))
+ visibility = JvmVisibility::PROTECTED
+ body = [
+ append("return " + element.activatorQN + ".getDefault().createModule();")
+ ]
+ ]
+
+ members += element.toMethod("getInjector", element.newTypeRef(typeof(Injector))) [
+ annotations += element.toAnnotation(typeof(Override))
+ visibility = JvmVisibility::PROTECTED
+ body = [
+ append("return " + element.activatorQN + ".getDefault().getInjector();")
+ ]
+ ]
+ ]
+
+ acceptor.accept(activatorClass).initializeLater [
+ documentation = element.documentation
+ superTypes += element.newTypeRef(typeof(EmfComponentsAbstractActivator))
+
+ members += toField("PLUGIN_ID", element.newTypeRef(typeof(String))) [
+ visibility = JvmVisibility::PUBLIC
+ ^static = true
+ final = true
+ setInitializer [ append('''"«element.fullyQualifiedName»"''') ]
+ ]
+
+ members += toField("plugin", activatorClass.createTypeRef) [
+ visibility = JvmVisibility::PRIVATE
+ ^static = true
+ ]
+
+ members += toMethod("start", Void::TYPE.getTypeForName(element)) [
+ parameters += element.toParameter(
+ "context", element.newTypeRef(typeof(BundleContext)))
+ exceptions += element.newTypeRef(typeof(Exception))
+ body = [
+ append('''
+ super.start(context);
+ plugin = this;''')
+ ]
+ ]
+
+ members += toMethod("stop", Void::TYPE.getTypeForName(element)) [
+ parameters += element.toParameter(
+ "context", element.newTypeRef(typeof(BundleContext)))
+ exceptions += element.newTypeRef(typeof(Exception))
+ body = [
+ append('''
+ plugin = null;
+ super.stop(context);''')
+ ]
+ ]
+
+ members += toMethod("getDefault", activatorClass.createTypeRef) [
+ ^static = true
+ body = [ append("return plugin;") ]
+ ]
+
+ members += element.toMethod("createModule", element.newTypeRef(typeof(EmfComponentsGenericModule))) [
+ visibility = JvmVisibility::PROTECTED
+ body = [
+ append("return new " + element.moduleQN + "(getDefault());")
+ ]
+ ]
+ ]
+ }
+
+ def activatorQN(Module element) {
+ element.fullyQualifiedName + ".Activator"
+ }
+
+ def moduleQN(Module element) {
+ element.fullyQualifiedName + ".EmfComponentsGuiceModuleGen"
+ }
+
+ def executableExtensionFactoryQN(Module element) {
+ element.fullyQualifiedName + ".ExecutableExtensionFactory"
+ }
+}
+
diff --git a/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslGenerator.java b/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslGenerator.java
new file mode 100644
index 000000000..343a353db
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslGenerator.java
@@ -0,0 +1,26 @@
+package org.eclipse.emf.parsley.dsl.generator;
+
+import com.google.inject.Inject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.parsley.dsl.generator.EmfParsleyDslPluginXmlGenerator;
+import org.eclipse.xtext.generator.IFileSystemAccess;
+import org.eclipse.xtext.generator.IGenerator;
+import org.eclipse.xtext.xbase.compiler.JvmModelGenerator;
+
+/**
+ * This generator calls the standard JvmModelGenerator and
+ * the generator for plugin.xml_gen
+ */
+@SuppressWarnings("all")
+public class EmfParsleyDslGenerator implements IGenerator {
+ @Inject
+ private JvmModelGenerator jvmModelGenerator;
+
+ @Inject
+ private EmfParsleyDslPluginXmlGenerator pluginXmlGenerator;
+
+ public void doGenerate(final Resource input, final IFileSystemAccess fsa) {
+ this.jvmModelGenerator.doGenerate(input, fsa);
+ this.pluginXmlGenerator.doGenerate(input, fsa);
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslPluginXmlGenerator.java b/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslPluginXmlGenerator.java
new file mode 100644
index 000000000..8fd88e4d8
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/generator/EmfParsleyDslPluginXmlGenerator.java
@@ -0,0 +1,186 @@
+package org.eclipse.emf.parsley.dsl.generator;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.Iterables;
+import com.google.inject.Inject;
+import java.util.Arrays;
+import java.util.List;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.parsley.dsl.generator.EmfParsleyDslOutputConfigurationProvider;
+import org.eclipse.emf.parsley.dsl.jvmmodel.EmfParsleyDslJvmModelInferrer;
+import org.eclipse.emf.parsley.dsl.model.Module;
+import org.eclipse.emf.parsley.dsl.model.PartSpecification;
+import org.eclipse.emf.parsley.dsl.model.ViewSpecification;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.common.types.JvmTypeReference;
+import org.eclipse.xtext.generator.IFileSystemAccess;
+import org.eclipse.xtext.generator.IGenerator;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+import org.eclipse.xtext.xbase.lib.ListExtensions;
+
+@SuppressWarnings("all")
+public class EmfParsleyDslPluginXmlGenerator implements IGenerator {
+ @Inject
+ private EmfParsleyDslJvmModelInferrer inferrer;
+
+ public void doGenerate(final Resource resource, final IFileSystemAccess fsa) {
+ TreeIterator<EObject> _allContents = resource.getAllContents();
+ Iterable<EObject> _iterable = IteratorExtensions.<EObject>toIterable(_allContents);
+ Iterable<Module> _filter = Iterables.<Module>filter(_iterable, Module.class);
+ for (final Module module : _filter) {
+ {
+ final CharSequence contents = this.generatePluginXml(module);
+ int _length = 0;
+ if (contents!=null) {
+ _length=contents.length();
+ }
+ boolean _greaterThan = (_length > 0);
+ if (_greaterThan) {
+ fsa.generateFile(
+ EmfParsleyDslOutputConfigurationProvider.PLUGIN_XML_EMFPARSLEY_GEN_PATH,
+ EmfParsleyDslOutputConfigurationProvider.PROJECT_ROOT_OUTPUT, contents);
+ }
+ }
+ }
+ }
+
+ public CharSequence generatePluginXml(final Module module) {
+ CharSequence _xblockexpression = null;
+ {
+ EList<PartSpecification> _parts = null;
+ if (module!=null) {
+ _parts=module.getParts();
+ }
+ final EList<PartSpecification> partSpecs = _parts;
+ CharSequence _xifexpression = null;
+ boolean _or = false;
+ boolean _equals = Objects.equal(partSpecs, null);
+ if (_equals) {
+ _or = true;
+ } else {
+ boolean _isEmpty = partSpecs.isEmpty();
+ _or = (_equals || _isEmpty);
+ }
+ if (_or) {
+ StringConcatenation _builder = new StringConcatenation();
+ return _builder.toString();
+ } else {
+ StringConcatenation _builder_1 = new StringConcatenation();
+ _builder_1.append("<extension");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ _builder_1.append("point=\"org.eclipse.ui.views\">");
+ _builder_1.newLine();
+ _builder_1.append(" ");
+ final Function1<PartSpecification,CharSequence> _function = new Function1<PartSpecification,CharSequence>() {
+ public CharSequence apply(final PartSpecification it) {
+ CharSequence _generateExtensionPoint = EmfParsleyDslPluginXmlGenerator.this.generateExtensionPoint(it);
+ return _generateExtensionPoint;
+ }
+ };
+ List<CharSequence> _map = ListExtensions.<PartSpecification, CharSequence>map(partSpecs, _function);
+ String _join = IterableExtensions.join(_map, "");
+ _builder_1.append(_join, " ");
+ _builder_1.newLineIfNotEmpty();
+ _builder_1.append("</extension>");
+ _builder_1.newLine();
+ CharSequence _generatePluginXml = this.generatePluginXml(_builder_1);
+ _xifexpression = _generatePluginXml;
+ }
+ _xblockexpression = (_xifexpression);
+ }
+ return _xblockexpression;
+ }
+
+ protected CharSequence _generateExtensionPoint(final PartSpecification partSpecification) {
+ return null;
+ }
+
+ protected CharSequence _generateExtensionPoint(final ViewSpecification viewSpecification) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("<view");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("category=\"");
+ String _xifexpression = null;
+ boolean _or = false;
+ String _category = viewSpecification.getCategory();
+ boolean _equals = Objects.equal(_category, null);
+ if (_equals) {
+ _or = true;
+ } else {
+ String _category_1 = viewSpecification.getCategory();
+ boolean _isEmpty = _category_1.isEmpty();
+ _or = (_equals || _isEmpty);
+ }
+ if (_or) {
+ _xifexpression = "org.eclipse.emf.parsley";
+ } else {
+ String _category_2 = viewSpecification.getCategory();
+ _xifexpression = _category_2;
+ }
+ _builder.append(_xifexpression, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("class=\"");
+ String _executableExtensionFactoryQN = this.inferrer.executableExtensionFactoryQN(viewSpecification);
+ _builder.append(_executableExtensionFactoryQN, " ");
+ _builder.append(":");
+ JvmTypeReference _type = viewSpecification.getType();
+ String _identifier = _type.getIdentifier();
+ _builder.append(_identifier, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("id=\"");
+ String _id = viewSpecification.getId();
+ _builder.append(_id, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("name=\"");
+ String _viewName = viewSpecification.getViewName();
+ _builder.append(_viewName, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("restorable=\"true\">");
+ _builder.newLine();
+ _builder.append("</view>");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence generatePluginXml(final CharSequence contents) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+ _builder.newLine();
+ _builder.append("<?eclipse version=\"3.4\"?>");
+ _builder.newLine();
+ _builder.append("<plugin>");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append(contents, " ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("</plugin>");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence generateExtensionPoint(final PartSpecification viewSpecification) {
+ if (viewSpecification instanceof ViewSpecification) {
+ return _generateExtensionPoint((ViewSpecification)viewSpecification);
+ } else if (viewSpecification != null) {
+ return _generateExtensionPoint(viewSpecification);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(viewSpecification).toString());
+ }
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/jvmmodel/EmfParsleyDslJvmModelInferrer.java b/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/jvmmodel/EmfParsleyDslJvmModelInferrer.java
new file mode 100644
index 000000000..088ffdbce
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/jvmmodel/EmfParsleyDslJvmModelInferrer.java
@@ -0,0 +1,922 @@
+package org.eclipse.emf.parsley.dsl.jvmmodel;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import java.util.Arrays;
+import java.util.List;
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.dsl.jvmmodel.GeneratorUtils;
+import org.eclipse.emf.parsley.dsl.model.ExtendsClause;
+import org.eclipse.emf.parsley.dsl.model.FeatureSpecification;
+import org.eclipse.emf.parsley.dsl.model.FeaturesProvider;
+import org.eclipse.emf.parsley.dsl.model.FormControlFactory;
+import org.eclipse.emf.parsley.dsl.model.FormControlSpecification;
+import org.eclipse.emf.parsley.dsl.model.LabelProvider;
+import org.eclipse.emf.parsley.dsl.model.LabelSpecification;
+import org.eclipse.emf.parsley.dsl.model.Module;
+import org.eclipse.emf.parsley.dsl.model.PartSpecification;
+import org.eclipse.emf.parsley.dsl.model.PropertyDescriptionProvider;
+import org.eclipse.emf.parsley.dsl.model.PropertyDescriptionSpecification;
+import org.eclipse.emf.parsley.dsl.model.ProposalCreator;
+import org.eclipse.emf.parsley.dsl.model.ProposalSpecification;
+import org.eclipse.emf.parsley.dsl.model.ViewerContentProvider;
+import org.eclipse.emf.parsley.generator.common.EmfParsleyProjectFilesGenerator;
+import org.eclipse.emf.parsley.ui.provider.EClassToEStructuralFeatureAsStringsMap;
+import org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.EcoreUtil2;
+import org.eclipse.xtext.common.types.JvmAnnotationReference;
+import org.eclipse.xtext.common.types.JvmConstructor;
+import org.eclipse.xtext.common.types.JvmFormalParameter;
+import org.eclipse.xtext.common.types.JvmGenericType;
+import org.eclipse.xtext.common.types.JvmMember;
+import org.eclipse.xtext.common.types.JvmOperation;
+import org.eclipse.xtext.common.types.JvmParameterizedTypeReference;
+import org.eclipse.xtext.common.types.JvmType;
+import org.eclipse.xtext.common.types.JvmTypeConstraint;
+import org.eclipse.xtext.common.types.JvmTypeReference;
+import org.eclipse.xtext.common.types.JvmUpperBound;
+import org.eclipse.xtext.common.types.JvmVisibility;
+import org.eclipse.xtext.common.types.JvmWildcardTypeReference;
+import org.eclipse.xtext.common.types.TypesFactory;
+import org.eclipse.xtext.common.types.util.TypeReferences;
+import org.eclipse.xtext.naming.IQualifiedNameProvider;
+import org.eclipse.xtext.naming.QualifiedName;
+import org.eclipse.xtext.xbase.XExpression;
+import org.eclipse.xtext.xbase.compiler.output.ITreeAppendable;
+import org.eclipse.xtext.xbase.jvmmodel.AbstractModelInferrer;
+import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor;
+import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor.IPostIndexingInitializing;
+import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.ListExtensions;
+import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
+
+/**
+ * <p>Infers a JVM model from the source model.</p>
+ *
+ * <p>The JVM model should contain all elements that would appear in the Java code
+ * which is generated from the source model. Other models link against the JVM model rather than the source model.</p>
+ */
+@SuppressWarnings("all")
+public class EmfParsleyDslJvmModelInferrer extends AbstractModelInferrer {
+ /**
+ * convenience API to build and initialize JVM types and their members.
+ */
+ @Inject
+ @Extension
+ private JvmTypesBuilder _jvmTypesBuilder;
+
+ @Inject
+ @Extension
+ private IQualifiedNameProvider _iQualifiedNameProvider;
+
+ @Inject
+ @Extension
+ private TypeReferences _typeReferences;
+
+ @Inject
+ @Extension
+ private TypesFactory _typesFactory;
+
+ @Inject
+ @Extension
+ private GeneratorUtils _generatorUtils;
+
+ @Inject
+ private EmfParsleyProjectFilesGenerator projectFilesGenerator;
+
+ /**
+ * The dispatch method {@code infer} is called for each instance of the
+ * given element's type that is contained in a resource.
+ *
+ * @param element
+ * the model to create one or more
+ * {@link org.eclipse.xtext.common.types.JvmDeclaredType declared
+ * types} from.
+ * @param acceptor
+ * each created
+ * {@link org.eclipse.xtext.common.types.JvmDeclaredType type}
+ * without a container should be passed to the acceptor in order
+ * get attached to the current resource. The acceptor's
+ * {@link IJvmDeclaredTypeAcceptor#accept(org.eclipse.xtext.common.types.JvmDeclaredType)
+ * accept(..)} method takes the constructed empty type for the
+ * pre-indexing phase. This one is further initialized in the
+ * indexing phase using the closure you pass to the returned
+ * {@link org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor.IPostIndexingInitializing#initializeLater(org.eclipse.xtext.xbase.lib.Procedures.Procedure1)
+ * initializeLater(..)}.
+ * @param isPreIndexingPhase
+ * whether the method is called in a pre-indexing phase, i.e.
+ * when the global index is not yet fully updated. You must not
+ * rely on linking using the index if isPreIndexingPhase is
+ * <code>true</code>.
+ */
+ protected void _infer(final Module element, final IJvmDeclaredTypeAcceptor acceptor, final boolean isPreIndexingPhase) {
+ String _name = element.getName();
+ boolean _equals = Objects.equal(_name, null);
+ if (_equals) {
+ return;
+ }
+ String _moduleQN = this.moduleQN(element);
+ final JvmGenericType moduleClass = this._jvmTypesBuilder.toClass(element, _moduleQN);
+ final JvmGenericType labelProviderClass = this.inferLabelProvider(element, acceptor);
+ final JvmGenericType propertyDescriptionProviderClass = this.inferPropertyDescriptionProvider(element, acceptor);
+ final JvmGenericType featureProviderClass = this.inferFeatureProvider(element, acceptor);
+ final JvmGenericType formControlFactoryClass = this.inferFormControlFactory(element, acceptor);
+ final JvmGenericType viewerContentProviderClass = this.inferViewerContentProvider(element, acceptor);
+ final JvmGenericType proposalCreatorClass = this.inferProposalCreator(element, acceptor);
+ IPostIndexingInitializing<JvmGenericType> _accept = acceptor.<JvmGenericType>accept(moduleClass);
+ final Procedure1<JvmGenericType> _function = new Procedure1<JvmGenericType>() {
+ public void apply(final JvmGenericType it) {
+ String _documentation = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.getDocumentation(element);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.setDocumentation(it, _documentation);
+ EmfParsleyDslJvmModelInferrer.this.setSuperClassType(moduleClass, element, EmfComponentsGuiceModule.class);
+ EList<JvmMember> _members = it.getMembers();
+ final Procedure1<JvmConstructor> _function = new Procedure1<JvmConstructor>() {
+ public void apply(final JvmConstructor it) {
+ EList<JvmFormalParameter> _parameters = it.getParameters();
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(element, AbstractUIPlugin.class);
+ JvmFormalParameter _parameter = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toParameter(element, "plugin", _newTypeRef);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+ final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+ public void apply(final ITreeAppendable it) {
+ it.append("super(plugin);");
+ }
+ };
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+ }
+ };
+ JvmConstructor _constructor = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toConstructor(element, _function);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmConstructor>operator_add(_members, _constructor);
+ boolean _notEquals = (!Objects.equal(labelProviderClass, null));
+ if (_notEquals) {
+ EList<JvmMember> _members_1 = it.getMembers();
+ LabelProvider _labelProvider = element.getLabelProvider();
+ JvmOperation _genBindMethod = EmfParsleyDslJvmModelInferrer.this.genBindMethod(_labelProvider, labelProviderClass, ILabelProvider.class);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _genBindMethod);
+ }
+ boolean _notEquals_1 = (!Objects.equal(propertyDescriptionProviderClass, null));
+ if (_notEquals_1) {
+ EList<JvmMember> _members_2 = it.getMembers();
+ PropertyDescriptionProvider _propertyDescriptionProvider = element.getPropertyDescriptionProvider();
+ JvmOperation _genBindMethod_1 = EmfParsleyDslJvmModelInferrer.this.genBindMethod(_propertyDescriptionProvider, propertyDescriptionProviderClass, org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider.class);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmOperation>operator_add(_members_2, _genBindMethod_1);
+ }
+ boolean _notEquals_2 = (!Objects.equal(featureProviderClass, null));
+ if (_notEquals_2) {
+ EList<JvmMember> _members_3 = it.getMembers();
+ FeaturesProvider _featuresProvider = element.getFeaturesProvider();
+ JvmOperation _genBindMethod_2 = EmfParsleyDslJvmModelInferrer.this.genBindMethod(_featuresProvider, featureProviderClass, org.eclipse.emf.parsley.ui.provider.FeaturesProvider.class);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmOperation>operator_add(_members_3, _genBindMethod_2);
+ }
+ boolean _notEquals_3 = (!Objects.equal(formControlFactoryClass, null));
+ if (_notEquals_3) {
+ EList<JvmMember> _members_4 = it.getMembers();
+ FormControlFactory _formControlFactory = element.getFormControlFactory();
+ JvmOperation _genBindMethod_3 = EmfParsleyDslJvmModelInferrer.this.genBindMethod(_formControlFactory, formControlFactoryClass, org.eclipse.emf.parsley.binding.FormControlFactory.class);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmOperation>operator_add(_members_4, _genBindMethod_3);
+ }
+ boolean _notEquals_4 = (!Objects.equal(viewerContentProviderClass, null));
+ if (_notEquals_4) {
+ EList<JvmMember> _members_5 = it.getMembers();
+ ViewerContentProvider _viewerContentProvider = element.getViewerContentProvider();
+ JvmOperation _genBindMethod_4 = EmfParsleyDslJvmModelInferrer.this.genBindMethod(_viewerContentProvider, viewerContentProviderClass, IContentProvider.class);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmOperation>operator_add(_members_5, _genBindMethod_4);
+ }
+ boolean _notEquals_5 = (!Objects.equal(proposalCreatorClass, null));
+ if (_notEquals_5) {
+ EList<JvmMember> _members_6 = it.getMembers();
+ ProposalCreator _proposalCreator = element.getProposalCreator();
+ JvmOperation _genBindMethod_5 = EmfParsleyDslJvmModelInferrer.this.genBindMethod(_proposalCreator, proposalCreatorClass, org.eclipse.emf.parsley.binding.ProposalCreator.class);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmOperation>operator_add(_members_6, _genBindMethod_5);
+ }
+ }
+ };
+ _accept.initializeLater(_function);
+ }
+
+ public boolean setSuperClassType(final JvmGenericType e, final Module dslElement, final Class<? extends Object> defaultSuperClass) {
+ boolean _xifexpression = false;
+ ExtendsClause _extendsClause = dslElement.getExtendsClause();
+ boolean _notEquals = (!Objects.equal(_extendsClause, null));
+ if (_notEquals) {
+ EList<JvmTypeReference> _superTypes = e.getSuperTypes();
+ ExtendsClause _extendsClause_1 = dslElement.getExtendsClause();
+ JvmTypeReference _superType = _extendsClause_1.getSuperType();
+ JvmTypeReference _cloneWithProxies = this._jvmTypesBuilder.cloneWithProxies(_superType);
+ boolean _add = this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes, _cloneWithProxies);
+ _xifexpression = _add;
+ } else {
+ EList<JvmTypeReference> _superTypes_1 = e.getSuperTypes();
+ JvmTypeReference _newTypeRef = this._jvmTypesBuilder.newTypeRef(e, defaultSuperClass);
+ boolean _add_1 = this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes_1, _newTypeRef);
+ _xifexpression = _add_1;
+ }
+ return _xifexpression;
+ }
+
+ public String activatorQN(final Module element) {
+ QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(element);
+ String _plus = (_fullyQualifiedName + ".Activator");
+ return _plus;
+ }
+
+ public String moduleQN(final Module element) {
+ QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(element);
+ String _plus = (_fullyQualifiedName + ".EmfComponentsGuiceModuleGen");
+ return _plus;
+ }
+
+ public String executableExtensionFactoryQN(final Module element) {
+ QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(element);
+ String _string = _fullyQualifiedName.toString();
+ String _plus = (_string + ".");
+ QualifiedName _fullyQualifiedName_1 = this._iQualifiedNameProvider.getFullyQualifiedName(element);
+ String _string_1 = _fullyQualifiedName_1.toString();
+ CharSequence _extFactoryName = this.projectFilesGenerator.extFactoryName(_string_1);
+ String _plus_1 = (_plus + _extFactoryName);
+ return _plus_1;
+ }
+
+ public String executableExtensionFactoryQN(final PartSpecification element) {
+ Module _containerOfType = EcoreUtil2.<Module>getContainerOfType(element, Module.class);
+ String _executableExtensionFactoryQN = this.executableExtensionFactoryQN(_containerOfType);
+ return _executableExtensionFactoryQN;
+ }
+
+ public String labelProviderQN(final Module element) {
+ QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(element);
+ String _plus = (_fullyQualifiedName + ".ui.provider.LabelProviderGen");
+ return _plus;
+ }
+
+ public String propertyDescriptionProviderQN(final Module element) {
+ QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(element);
+ String _plus = (_fullyQualifiedName + ".ui.provider.PropertyDescriptionProviderGen");
+ return _plus;
+ }
+
+ public String featuresProviderQN(final Module element) {
+ QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(element);
+ String _plus = (_fullyQualifiedName + ".ui.provider.FeaturesProviderGen");
+ return _plus;
+ }
+
+ public String formFeatureControlFactoryQN(final Module element) {
+ QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(element);
+ String _plus = (_fullyQualifiedName + ".binding.FormFeatureControlFactoryGen");
+ return _plus;
+ }
+
+ public String viewerContentProviderQN(final Module element) {
+ QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(element);
+ String _plus = (_fullyQualifiedName + ".edit.ui.provider.ViewerContentProviderGen");
+ return _plus;
+ }
+
+ public String proposalCreatorQN(final Module element) {
+ QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(element);
+ String _plus = (_fullyQualifiedName + ".binding.ProposalCreatorGen");
+ return _plus;
+ }
+
+ public JvmGenericType inferLabelProvider(final Module element, final IJvmDeclaredTypeAcceptor acceptor) {
+ JvmGenericType _xifexpression = null;
+ LabelProvider _labelProvider = element.getLabelProvider();
+ boolean _equals = Objects.equal(_labelProvider, null);
+ if (_equals) {
+ _xifexpression = null;
+ } else {
+ JvmGenericType _xblockexpression = null;
+ {
+ LabelProvider _labelProvider_1 = element.getLabelProvider();
+ String _labelProviderQN = this.labelProviderQN(element);
+ final JvmGenericType labelProviderClass = this._jvmTypesBuilder.toClass(_labelProvider_1, _labelProviderQN);
+ IPostIndexingInitializing<JvmGenericType> _accept = acceptor.<JvmGenericType>accept(labelProviderClass);
+ final Procedure1<JvmGenericType> _function = new Procedure1<JvmGenericType>() {
+ public void apply(final JvmGenericType it) {
+ EList<JvmTypeReference> _superTypes = it.getSuperTypes();
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(element, ViewerLabelProvider.class);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes, _newTypeRef);
+ EList<JvmMember> _members = it.getMembers();
+ LabelProvider _labelProvider = element.getLabelProvider();
+ final Procedure1<JvmConstructor> _function = new Procedure1<JvmConstructor>() {
+ public void apply(final JvmConstructor it) {
+ EList<JvmFormalParameter> _parameters = it.getParameters();
+ LabelProvider _labelProvider = element.getLabelProvider();
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(element, AdapterFactoryLabelProvider.class);
+ JvmFormalParameter _parameter = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toParameter(_labelProvider, "delegate", _newTypeRef);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+ final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+ public void apply(final ITreeAppendable it) {
+ it.append("super(delegate);");
+ }
+ };
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+ EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+ JvmAnnotationReference _annotation = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toAnnotation(element, Inject.class);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotation);
+ }
+ };
+ JvmConstructor _constructor = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toConstructor(_labelProvider, _function);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmConstructor>operator_add(_members, _constructor);
+ LabelProvider _labelProvider_1 = element.getLabelProvider();
+ EList<LabelSpecification> _labelSpecifications = _labelProvider_1.getLabelSpecifications();
+ final Procedure1<LabelSpecification> _function_1 = new Procedure1<LabelSpecification>() {
+ public void apply(final LabelSpecification labelSpecification) {
+ EList<JvmMember> _members = it.getMembers();
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(element, String.class);
+ final Procedure1<JvmOperation> _function = new Procedure1<JvmOperation>() {
+ public void apply(final JvmOperation it) {
+ EList<JvmFormalParameter> _parameters = it.getParameters();
+ String _xifexpression = null;
+ String _name = labelSpecification.getName();
+ boolean _notEquals = (!Objects.equal(_name, null));
+ if (_notEquals) {
+ String _name_1 = labelSpecification.getName();
+ _xifexpression = _name_1;
+ } else {
+ _xifexpression = "it";
+ }
+ JvmTypeReference _parameterType = labelSpecification.getParameterType();
+ JvmFormalParameter _parameter = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toParameter(labelSpecification, _xifexpression, _parameterType);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+ XExpression _expression = labelSpecification.getExpression();
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _expression);
+ }
+ };
+ JvmOperation _method = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toMethod(labelSpecification, "text", _newTypeRef, _function);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
+ }
+ };
+ IterableExtensions.<LabelSpecification>forEach(_labelSpecifications, _function_1);
+ LabelProvider _labelProvider_2 = element.getLabelProvider();
+ EList<LabelSpecification> _imageSpecifications = _labelProvider_2.getImageSpecifications();
+ final Procedure1<LabelSpecification> _function_2 = new Procedure1<LabelSpecification>() {
+ public void apply(final LabelSpecification imageSpecification) {
+ EList<JvmMember> _members = it.getMembers();
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(element, Object.class);
+ final Procedure1<JvmOperation> _function = new Procedure1<JvmOperation>() {
+ public void apply(final JvmOperation it) {
+ EList<JvmFormalParameter> _parameters = it.getParameters();
+ String _xifexpression = null;
+ String _name = imageSpecification.getName();
+ boolean _notEquals = (!Objects.equal(_name, null));
+ if (_notEquals) {
+ String _name_1 = imageSpecification.getName();
+ _xifexpression = _name_1;
+ } else {
+ _xifexpression = "it";
+ }
+ JvmTypeReference _parameterType = imageSpecification.getParameterType();
+ JvmFormalParameter _parameter = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toParameter(imageSpecification, _xifexpression, _parameterType);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+ XExpression _expression = imageSpecification.getExpression();
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _expression);
+ }
+ };
+ JvmOperation _method = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toMethod(imageSpecification, "image", _newTypeRef, _function);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
+ }
+ };
+ IterableExtensions.<LabelSpecification>forEach(_imageSpecifications, _function_2);
+ }
+ };
+ _accept.initializeLater(_function);
+ _xblockexpression = (labelProviderClass);
+ }
+ _xifexpression = _xblockexpression;
+ }
+ return _xifexpression;
+ }
+
+ public JvmGenericType inferPropertyDescriptionProvider(final Module element, final IJvmDeclaredTypeAcceptor acceptor) {
+ JvmGenericType _xifexpression = null;
+ PropertyDescriptionProvider _propertyDescriptionProvider = element.getPropertyDescriptionProvider();
+ boolean _equals = Objects.equal(_propertyDescriptionProvider, null);
+ if (_equals) {
+ _xifexpression = null;
+ } else {
+ JvmGenericType _xblockexpression = null;
+ {
+ PropertyDescriptionProvider _propertyDescriptionProvider_1 = element.getPropertyDescriptionProvider();
+ String _propertyDescriptionProviderQN = this.propertyDescriptionProviderQN(element);
+ final JvmGenericType propertyDescriptionProviderClass = this._jvmTypesBuilder.toClass(_propertyDescriptionProvider_1, _propertyDescriptionProviderQN);
+ IPostIndexingInitializing<JvmGenericType> _accept = acceptor.<JvmGenericType>accept(propertyDescriptionProviderClass);
+ final Procedure1<JvmGenericType> _function = new Procedure1<JvmGenericType>() {
+ public void apply(final JvmGenericType it) {
+ EList<JvmTypeReference> _superTypes = it.getSuperTypes();
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(element, org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider.class);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes, _newTypeRef);
+ PropertyDescriptionProvider _propertyDescriptionProvider = element.getPropertyDescriptionProvider();
+ EList<PropertyDescriptionSpecification> _labelSpecifications = _propertyDescriptionProvider.getLabelSpecifications();
+ final Procedure1<PropertyDescriptionSpecification> _function = new Procedure1<PropertyDescriptionSpecification>() {
+ public void apply(final PropertyDescriptionSpecification labelSpecification) {
+ JvmMember _feature = labelSpecification.getFeature();
+ String _simpleName = null;
+ if (_feature!=null) {
+ _simpleName=_feature.getSimpleName();
+ }
+ boolean _notEquals = (!Objects.equal(_simpleName, null));
+ if (_notEquals) {
+ EList<JvmMember> _members = it.getMembers();
+ XExpression _expression = labelSpecification.getExpression();
+ JvmTypeReference _parameterType = labelSpecification.getParameterType();
+ String _simpleName_1 = _parameterType.getSimpleName();
+ String _plus = ("text_" + _simpleName_1);
+ String _plus_1 = (_plus + "_");
+ JvmMember _feature_1 = labelSpecification.getFeature();
+ String _simpleName_2 = _feature_1.getSimpleName();
+ String _propertyNameForGetterSetterMethod = EmfParsleyDslJvmModelInferrer.this._generatorUtils.getPropertyNameForGetterSetterMethod(_simpleName_2);
+ String _plus_2 = (_plus_1 + _propertyNameForGetterSetterMethod);
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(element, String.class);
+ final Procedure1<JvmOperation> _function = new Procedure1<JvmOperation>() {
+ public void apply(final JvmOperation it) {
+ EList<JvmFormalParameter> _parameters = it.getParameters();
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(element, EStructuralFeature.class);
+ JvmFormalParameter _parameter = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toParameter(labelSpecification,
+ "it", _newTypeRef);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+ XExpression _expression = labelSpecification.getExpression();
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _expression);
+ }
+ };
+ JvmOperation _method = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toMethod(_expression, _plus_2, _newTypeRef, _function);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
+ }
+ }
+ };
+ IterableExtensions.<PropertyDescriptionSpecification>forEach(_labelSpecifications, _function);
+ }
+ };
+ _accept.initializeLater(_function);
+ _xblockexpression = (propertyDescriptionProviderClass);
+ }
+ _xifexpression = _xblockexpression;
+ }
+ return _xifexpression;
+ }
+
+ public JvmGenericType inferFeatureProvider(final Module element, final IJvmDeclaredTypeAcceptor acceptor) {
+ JvmGenericType _xifexpression = null;
+ FeaturesProvider _featuresProvider = element.getFeaturesProvider();
+ boolean _equals = Objects.equal(_featuresProvider, null);
+ if (_equals) {
+ _xifexpression = null;
+ } else {
+ JvmGenericType _xblockexpression = null;
+ {
+ FeaturesProvider _featuresProvider_1 = element.getFeaturesProvider();
+ String _featuresProviderQN = this.featuresProviderQN(element);
+ final JvmGenericType featureProviderClass = this._jvmTypesBuilder.toClass(_featuresProvider_1, _featuresProviderQN);
+ IPostIndexingInitializing<JvmGenericType> _accept = acceptor.<JvmGenericType>accept(featureProviderClass);
+ final Procedure1<JvmGenericType> _function = new Procedure1<JvmGenericType>() {
+ public void apply(final JvmGenericType it) {
+ EList<JvmTypeReference> _superTypes = it.getSuperTypes();
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(element, org.eclipse.emf.parsley.ui.provider.FeaturesProvider.class);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes, _newTypeRef);
+ FeaturesProvider _featuresProvider = element.getFeaturesProvider();
+ String _documentation = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.getDocumentation(_featuresProvider);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.setDocumentation(it, _documentation);
+ EList<JvmMember> _members = it.getMembers();
+ FeaturesProvider _featuresProvider_1 = element.getFeaturesProvider();
+ JvmTypeReference _typeForName = EmfParsleyDslJvmModelInferrer.this._typeReferences.getTypeForName(Void.TYPE, element);
+ final Procedure1<JvmOperation> _function = new Procedure1<JvmOperation>() {
+ public void apply(final JvmOperation it) {
+ EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+ JvmAnnotationReference _annotation = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toAnnotation(element, Override.class);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotation);
+ EList<JvmFormalParameter> _parameters = it.getParameters();
+ FeaturesProvider _featuresProvider = element.getFeaturesProvider();
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(element,
+ EClassToEStructuralFeatureAsStringsMap.class);
+ JvmFormalParameter _parameter = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toParameter(_featuresProvider, "stringMap", _newTypeRef);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+ final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+ public void apply(final ITreeAppendable it) {
+ ITreeAppendable _append = it.append("super.buildStringMap(stringMap);");
+ _append.newLine();
+ FeaturesProvider _featuresProvider = element.getFeaturesProvider();
+ EList<FeatureSpecification> _featureSpecifications = _featuresProvider.getFeatureSpecifications();
+ final Procedure1<FeatureSpecification> _function = new Procedure1<FeatureSpecification>() {
+ public void apply(final FeatureSpecification featureSpecification) {
+ ITreeAppendable _newLine = it.newLine();
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("stringMap.mapTo(\"");
+ JvmTypeReference _parameterType = featureSpecification.getParameterType();
+ String _identifier = _parameterType.getIdentifier();
+ _builder.append(_identifier, "");
+ _builder.append("\",");
+ ITreeAppendable _append = _newLine.append(_builder);
+ ITreeAppendable _increaseIndentation = _append.increaseIndentation();
+ _increaseIndentation.newLine();
+ EList<JvmMember> _features = featureSpecification.getFeatures();
+ final Function1<JvmMember,String> _function = new Function1<JvmMember,String>() {
+ public String apply(final JvmMember feature) {
+ String _simpleName = feature.getSimpleName();
+ String _propertyNameForGetterSetterMethod = EmfParsleyDslJvmModelInferrer.this._generatorUtils.getPropertyNameForGetterSetterMethod(_simpleName);
+ String _plus = ("\"" + _propertyNameForGetterSetterMethod);
+ String _plus_1 = (_plus + "\"");
+ return _plus_1;
+ }
+ };
+ final List<String> fs = ListExtensions.<JvmMember, String>map(_features, _function);
+ String _join = IterableExtensions.join(fs, ", ");
+ it.append(_join);
+ ITreeAppendable _append_1 = it.append(");");
+ _append_1.decreaseIndentation();
+ }
+ };
+ IterableExtensions.<FeatureSpecification>forEach(_featureSpecifications, _function);
+ }
+ };
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+ }
+ };
+ JvmOperation _method = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toMethod(_featuresProvider_1, "buildStringMap", _typeForName, _function);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
+ }
+ };
+ _accept.initializeLater(_function);
+ _xblockexpression = (featureProviderClass);
+ }
+ _xifexpression = _xblockexpression;
+ }
+ return _xifexpression;
+ }
+
+ public JvmGenericType inferFormControlFactory(final Module e, final IJvmDeclaredTypeAcceptor acceptor) {
+ JvmGenericType _xifexpression = null;
+ FormControlFactory _formControlFactory = e.getFormControlFactory();
+ boolean _equals = Objects.equal(_formControlFactory, null);
+ if (_equals) {
+ _xifexpression = null;
+ } else {
+ JvmGenericType _xblockexpression = null;
+ {
+ FormControlFactory _formControlFactory_1 = e.getFormControlFactory();
+ String _formFeatureControlFactoryQN = this.formFeatureControlFactoryQN(e);
+ final JvmGenericType formFeatureControlFactoryClass = this._jvmTypesBuilder.toClass(_formControlFactory_1, _formFeatureControlFactoryQN);
+ IPostIndexingInitializing<JvmGenericType> _accept = acceptor.<JvmGenericType>accept(formFeatureControlFactoryClass);
+ final Procedure1<JvmGenericType> _function = new Procedure1<JvmGenericType>() {
+ public void apply(final JvmGenericType it) {
+ EList<JvmTypeReference> _superTypes = it.getSuperTypes();
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(e, org.eclipse.emf.parsley.binding.FormControlFactory.class);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes, _newTypeRef);
+ FormControlFactory _formControlFactory = e.getFormControlFactory();
+ String _documentation = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.getDocumentation(_formControlFactory);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.setDocumentation(it, _documentation);
+ FormControlFactory _formControlFactory_1 = e.getFormControlFactory();
+ EList<FormControlSpecification> _controlSpecifications = _formControlFactory_1.getControlSpecifications();
+ final Procedure1<FormControlSpecification> _function = new Procedure1<FormControlSpecification>() {
+ public void apply(final FormControlSpecification spec) {
+ JvmMember _feature = spec.getFeature();
+ String _simpleName = null;
+ if (_feature!=null) {
+ _simpleName=_feature.getSimpleName();
+ }
+ boolean _notEquals = (!Objects.equal(_simpleName, null));
+ if (_notEquals) {
+ XExpression _target = spec.getTarget();
+ boolean _equals = Objects.equal(_target, null);
+ if (_equals) {
+ EList<JvmMember> _members = it.getMembers();
+ XExpression _expression = spec.getExpression();
+ final Procedure1<JvmOperation> _function = new Procedure1<JvmOperation>() {
+ public void apply(final JvmOperation it) {
+ EList<JvmFormalParameter> _parameters = it.getParameters();
+ JvmTypeReference _parameterType = spec.getParameterType();
+ JvmFormalParameter _parameter = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toParameter(spec,
+ "it", _parameterType);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+ XExpression _expression = spec.getExpression();
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _expression);
+ }
+ };
+ JvmOperation _control_EClass_EStructuralFeature = EmfParsleyDslJvmModelInferrer.this.control_EClass_EStructuralFeature(spec, _expression, _function);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _control_EClass_EStructuralFeature);
+ } else {
+ final String createControlMethodName = EmfParsleyDslJvmModelInferrer.this.methodNameForFormFeatureSpecification(spec, "createControl_");
+ final String createTargetMethodName = EmfParsleyDslJvmModelInferrer.this.methodNameForFormFeatureSpecification(spec, "createTarget_");
+ EList<JvmMember> _members_1 = it.getMembers();
+ XExpression _expression_1 = spec.getExpression();
+ final Procedure1<JvmOperation> _function_1 = new Procedure1<JvmOperation>() {
+ public void apply(final JvmOperation it) {
+ EList<JvmFormalParameter> _parameters = it.getParameters();
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(e, DataBindingContext.class);
+ JvmFormalParameter _parameter = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toParameter(spec,
+ "dataBindingContext", _newTypeRef);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+ EList<JvmFormalParameter> _parameters_1 = it.getParameters();
+ JvmTypeReference _newTypeRef_1 = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(e, IObservableValue.class);
+ JvmFormalParameter _parameter_1 = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toParameter(spec,
+ "observableValue", _newTypeRef_1);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
+ final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+ public void apply(final ITreeAppendable it) {
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(spec, Control.class);
+ JvmType _type = _newTypeRef.getType();
+ it.append(_type);
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append(" ");
+ _builder.append("control = ");
+ _builder.append(createControlMethodName, " ");
+ _builder.append("();");
+ ITreeAppendable _append = it.append(_builder);
+ _append.newLine();
+ StringConcatenation _builder_1 = new StringConcatenation();
+ _builder_1.append("dataBindingContext.bindValue(");
+ _builder_1.newLine();
+ _builder_1.append("\t");
+ _builder_1.append(createTargetMethodName, " ");
+ _builder_1.append("(control),");
+ _builder_1.newLineIfNotEmpty();
+ _builder_1.append("\t");
+ _builder_1.append("observableValue);");
+ ITreeAppendable _append_1 = it.append(_builder_1);
+ _append_1.newLine();
+ StringConcatenation _builder_2 = new StringConcatenation();
+ _builder_2.append("return control;");
+ it.append(_builder_2);
+ }
+ };
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+ }
+ };
+ JvmOperation _control_EClass_EStructuralFeature_1 = EmfParsleyDslJvmModelInferrer.this.control_EClass_EStructuralFeature(spec, _expression_1, _function_1);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _control_EClass_EStructuralFeature_1);
+ EList<JvmMember> _members_2 = it.getMembers();
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(spec, Control.class);
+ final Procedure1<JvmOperation> _function_2 = new Procedure1<JvmOperation>() {
+ public void apply(final JvmOperation it) {
+ it.setVisibility(JvmVisibility.PROTECTED);
+ XExpression _expression = spec.getExpression();
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _expression);
+ }
+ };
+ JvmOperation _method = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toMethod(spec, createControlMethodName, _newTypeRef, _function_2);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmOperation>operator_add(_members_2, _method);
+ EList<JvmMember> _members_3 = it.getMembers();
+ JvmTypeReference _newTypeRef_1 = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(spec, IObservableValue.class);
+ final Procedure1<JvmOperation> _function_3 = new Procedure1<JvmOperation>() {
+ public void apply(final JvmOperation it) {
+ it.setVisibility(JvmVisibility.PROTECTED);
+ EList<JvmFormalParameter> _parameters = it.getParameters();
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(e, Control.class);
+ JvmFormalParameter _parameter = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toParameter(spec,
+ "it", _newTypeRef);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+ XExpression _target = spec.getTarget();
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _target);
+ }
+ };
+ JvmOperation _method_1 = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toMethod(spec, createTargetMethodName, _newTypeRef_1, _function_3);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmOperation>operator_add(_members_3, _method_1);
+ }
+ }
+ }
+ };
+ IterableExtensions.<FormControlSpecification>forEach(_controlSpecifications, _function);
+ }
+ };
+ _accept.initializeLater(_function);
+ _xblockexpression = (formFeatureControlFactoryClass);
+ }
+ _xifexpression = _xblockexpression;
+ }
+ return _xifexpression;
+ }
+
+ public JvmGenericType inferViewerContentProvider(final Module element, final IJvmDeclaredTypeAcceptor acceptor) {
+ JvmGenericType _xifexpression = null;
+ ViewerContentProvider _viewerContentProvider = element.getViewerContentProvider();
+ boolean _equals = Objects.equal(_viewerContentProvider, null);
+ if (_equals) {
+ _xifexpression = null;
+ } else {
+ JvmGenericType _xblockexpression = null;
+ {
+ ViewerContentProvider _viewerContentProvider_1 = element.getViewerContentProvider();
+ String _viewerContentProviderQN = this.viewerContentProviderQN(element);
+ final JvmGenericType viewerContentProviderClass = this._jvmTypesBuilder.toClass(_viewerContentProvider_1, _viewerContentProviderQN);
+ IPostIndexingInitializing<JvmGenericType> _accept = acceptor.<JvmGenericType>accept(viewerContentProviderClass);
+ final Procedure1<JvmGenericType> _function = new Procedure1<JvmGenericType>() {
+ public void apply(final JvmGenericType it) {
+ EList<JvmTypeReference> _superTypes = it.getSuperTypes();
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(element, org.eclipse.emf.parsley.edit.ui.provider.ViewerContentProvider.class);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes, _newTypeRef);
+ EList<JvmMember> _members = it.getMembers();
+ ViewerContentProvider _viewerContentProvider = element.getViewerContentProvider();
+ final Procedure1<JvmConstructor> _function = new Procedure1<JvmConstructor>() {
+ public void apply(final JvmConstructor it) {
+ EList<JvmFormalParameter> _parameters = it.getParameters();
+ ViewerContentProvider _viewerContentProvider = element.getViewerContentProvider();
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(element, AdapterFactory.class);
+ JvmFormalParameter _parameter = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toParameter(_viewerContentProvider, "adapterFactory", _newTypeRef);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+ final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+ public void apply(final ITreeAppendable it) {
+ it.append("super(adapterFactory);");
+ }
+ };
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+ EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+ JvmAnnotationReference _annotation = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toAnnotation(element, Inject.class);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotation);
+ }
+ };
+ JvmConstructor _constructor = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toConstructor(_viewerContentProvider, _function);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmConstructor>operator_add(_members, _constructor);
+ ViewerContentProvider _viewerContentProvider_1 = element.getViewerContentProvider();
+ EList<LabelSpecification> _childrenSpecifications = _viewerContentProvider_1.getChildrenSpecifications();
+ final Procedure1<LabelSpecification> _function_1 = new Procedure1<LabelSpecification>() {
+ public void apply(final LabelSpecification specification) {
+ EList<JvmMember> _members = it.getMembers();
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(element, Object.class);
+ final Procedure1<JvmOperation> _function = new Procedure1<JvmOperation>() {
+ public void apply(final JvmOperation it) {
+ EList<JvmFormalParameter> _parameters = it.getParameters();
+ String _xifexpression = null;
+ String _name = specification.getName();
+ boolean _notEquals = (!Objects.equal(_name, null));
+ if (_notEquals) {
+ String _name_1 = specification.getName();
+ _xifexpression = _name_1;
+ } else {
+ _xifexpression = "it";
+ }
+ JvmTypeReference _parameterType = specification.getParameterType();
+ JvmFormalParameter _parameter = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toParameter(specification, _xifexpression, _parameterType);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+ XExpression _expression = specification.getExpression();
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _expression);
+ }
+ };
+ JvmOperation _method = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toMethod(specification, "children", _newTypeRef, _function);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
+ }
+ };
+ IterableExtensions.<LabelSpecification>forEach(_childrenSpecifications, _function_1);
+ }
+ };
+ _accept.initializeLater(_function);
+ _xblockexpression = (viewerContentProviderClass);
+ }
+ _xifexpression = _xblockexpression;
+ }
+ return _xifexpression;
+ }
+
+ public JvmGenericType inferProposalCreator(final Module element, final IJvmDeclaredTypeAcceptor acceptor) {
+ JvmGenericType _xifexpression = null;
+ ProposalCreator _proposalCreator = element.getProposalCreator();
+ boolean _equals = Objects.equal(_proposalCreator, null);
+ if (_equals) {
+ _xifexpression = null;
+ } else {
+ JvmGenericType _xblockexpression = null;
+ {
+ ProposalCreator _proposalCreator_1 = element.getProposalCreator();
+ String _proposalCreatorQN = this.proposalCreatorQN(element);
+ final JvmGenericType proposalCreatorClass = this._jvmTypesBuilder.toClass(_proposalCreator_1, _proposalCreatorQN);
+ IPostIndexingInitializing<JvmGenericType> _accept = acceptor.<JvmGenericType>accept(proposalCreatorClass);
+ final Procedure1<JvmGenericType> _function = new Procedure1<JvmGenericType>() {
+ public void apply(final JvmGenericType it) {
+ EList<JvmTypeReference> _superTypes = it.getSuperTypes();
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(element, org.eclipse.emf.parsley.binding.ProposalCreator.class);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes, _newTypeRef);
+ ProposalCreator _proposalCreator = element.getProposalCreator();
+ EList<ProposalSpecification> _proposalsSpecifications = _proposalCreator.getProposalsSpecifications();
+ final Procedure1<ProposalSpecification> _function = new Procedure1<ProposalSpecification>() {
+ public void apply(final ProposalSpecification spec) {
+ JvmMember _feature = spec.getFeature();
+ String _simpleName = null;
+ if (_feature!=null) {
+ _simpleName=_feature.getSimpleName();
+ }
+ boolean _notEquals = (!Objects.equal(_simpleName, null));
+ if (_notEquals) {
+ EList<JvmMember> _members = it.getMembers();
+ XExpression _expression = spec.getExpression();
+ JvmTypeReference _parameterType = spec.getParameterType();
+ String _simpleName_1 = _parameterType.getSimpleName();
+ String _plus = ("proposals_" + _simpleName_1);
+ String _plus_1 = (_plus + "_");
+ JvmMember _feature_1 = spec.getFeature();
+ String _simpleName_2 = _feature_1.getSimpleName();
+ String _propertyNameForGetterSetterMethod = EmfParsleyDslJvmModelInferrer.this._generatorUtils.getPropertyNameForGetterSetterMethod(_simpleName_2);
+ String _plus_2 = (_plus_1 + _propertyNameForGetterSetterMethod);
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(element, List.class);
+ JvmType _type = _newTypeRef.getType();
+ JvmWildcardTypeReference _wildCard = EmfParsleyDslJvmModelInferrer.this._typeReferences.wildCard();
+ JvmParameterizedTypeReference _createTypeRef = EmfParsleyDslJvmModelInferrer.this._typeReferences.createTypeRef(_type, _wildCard);
+ final Procedure1<JvmOperation> _function = new Procedure1<JvmOperation>() {
+ public void apply(final JvmOperation it) {
+ EList<JvmFormalParameter> _parameters = it.getParameters();
+ JvmTypeReference _parameterType = spec.getParameterType();
+ JvmFormalParameter _parameter = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toParameter(spec,
+ "it", _parameterType);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+ EList<JvmFormalParameter> _parameters_1 = it.getParameters();
+ JvmTypeReference _newTypeRef = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.newTypeRef(spec, EStructuralFeature.class);
+ JvmFormalParameter _parameter_1 = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toParameter(spec,
+ "feature", _newTypeRef);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
+ XExpression _expression = spec.getExpression();
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _expression);
+ }
+ };
+ JvmOperation _method = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toMethod(_expression, _plus_2, _createTypeRef, _function);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
+ }
+ }
+ };
+ IterableExtensions.<ProposalSpecification>forEach(_proposalsSpecifications, _function);
+ }
+ };
+ _accept.initializeLater(_function);
+ _xblockexpression = (proposalCreatorClass);
+ }
+ _xifexpression = _xblockexpression;
+ }
+ return _xifexpression;
+ }
+
+ public JvmOperation control_EClass_EStructuralFeature(final FormControlSpecification spec, final XExpression exp, final Procedure1<? super JvmOperation> init) {
+ String _methodNameForFormFeatureSpecification = this.methodNameForFormFeatureSpecification(spec, "control_");
+ JvmTypeReference _newTypeRef = this._jvmTypesBuilder.newTypeRef(spec, Control.class);
+ JvmOperation _method = this._jvmTypesBuilder.toMethod(exp, _methodNameForFormFeatureSpecification, _newTypeRef, init);
+ return _method;
+ }
+
+ public String methodNameForFormFeatureSpecification(final FormControlSpecification spec, final String prefix) {
+ JvmTypeReference _parameterType = spec.getParameterType();
+ String _simpleName = _parameterType.getSimpleName();
+ String _plus = (prefix + _simpleName);
+ String _plus_1 = (_plus + "_");
+ JvmMember _feature = spec.getFeature();
+ String _simpleName_1 = _feature.getSimpleName();
+ String _propertyNameForGetterSetterMethod = this._generatorUtils.getPropertyNameForGetterSetterMethod(_simpleName_1);
+ String _plus_2 = (_plus_1 + _propertyNameForGetterSetterMethod);
+ return _plus_2;
+ }
+
+ public JvmOperation genBindMethod(final EObject element, final JvmGenericType type, final Class<? extends Object> clazz) {
+ JvmOperation _xblockexpression = null;
+ {
+ final JvmWildcardTypeReference wildCard = this._typesFactory.createJvmWildcardTypeReference();
+ final JvmUpperBound upperBound = this._typesFactory.createJvmUpperBound();
+ JvmTypeReference _newTypeRef = this._jvmTypesBuilder.newTypeRef(element, clazz);
+ upperBound.setTypeReference(_newTypeRef);
+ EList<JvmTypeConstraint> _constraints = wildCard.getConstraints();
+ this._jvmTypesBuilder.<JvmUpperBound>operator_add(_constraints, upperBound);
+ String _simpleName = clazz.getSimpleName();
+ String _plus = ("bind" + _simpleName);
+ JvmTypeReference _newTypeRef_1 = this._jvmTypesBuilder.newTypeRef(element, Class.class, wildCard);
+ final Procedure1<JvmOperation> _function = new Procedure1<JvmOperation>() {
+ public void apply(final JvmOperation it) {
+ EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+ JvmAnnotationReference _annotation = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toAnnotation(element, Override.class);
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotation);
+ final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+ public void apply(final ITreeAppendable it) {
+ it.append("return ");
+ it.append(type);
+ it.append(".class;");
+ }
+ };
+ EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+ }
+ };
+ JvmOperation _method = this._jvmTypesBuilder.toMethod(element, _plus, _newTypeRef_1, _function);
+ _xblockexpression = (_method);
+ }
+ return _xblockexpression;
+ }
+
+ public void infer(final EObject element, final IJvmDeclaredTypeAcceptor acceptor, final boolean isPreIndexingPhase) {
+ if (element instanceof Module) {
+ _infer((Module)element, acceptor, isPreIndexingPhase);
+ return;
+ } else if (element != null) {
+ _infer(element, acceptor, isPreIndexingPhase);
+ return;
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(element, acceptor, isPreIndexingPhase).toString());
+ }
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslImplicitlyImportedTypes.java b/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslImplicitlyImportedTypes.java
new file mode 100644
index 000000000..3dcd16076
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslImplicitlyImportedTypes.java
@@ -0,0 +1,20 @@
+package org.eclipse.emf.parsley.dsl.scoping;
+
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import java.util.Collections;
+import java.util.List;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.scoping.batch.ImplicitlyImportedTypes;
+
+@SuppressWarnings("all")
+public class EmfParsleyDslImplicitlyImportedTypes extends ImplicitlyImportedTypes {
+ protected List<Class<? extends Object>> getExtensionClasses() {
+ List<Class<? extends Object>> _extensionClasses = super.getExtensionClasses();
+ Iterable<Class<? extends Object>> _plus = Iterables.<Class<? extends Object>>concat(_extensionClasses, Collections.<Class<? extends Object>>unmodifiableList(Lists.<Class<? extends Object>>newArrayList(Control.class, SWTObservables.class)));
+ List<Class<? extends Object>> _list = IterableExtensions.<Class<? extends Object>>toList(_plus);
+ return _list;
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslScopeProviderHelper.java b/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslScopeProviderHelper.java
new file mode 100644
index 000000000..f1dcd71e6
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslScopeProviderHelper.java
@@ -0,0 +1,196 @@
+package org.eclipse.emf.parsley.dsl.scoping;
+
+import com.google.common.base.Function;
+import com.google.common.base.Objects;
+import com.google.common.collect.Iterables;
+import java.beans.Introspector;
+import java.util.Arrays;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.parsley.dsl.model.EmfFeatureAccess;
+import org.eclipse.emf.parsley.dsl.util.EmfParsleyDslModelUtil;
+import org.eclipse.xtext.common.types.JvmFeature;
+import org.eclipse.xtext.common.types.JvmGenericType;
+import org.eclipse.xtext.common.types.JvmOperation;
+import org.eclipse.xtext.common.types.JvmType;
+import org.eclipse.xtext.common.types.JvmTypeReference;
+import org.eclipse.xtext.common.types.TypesPackage;
+import org.eclipse.xtext.naming.QualifiedName;
+import org.eclipse.xtext.resource.IEObjectDescription;
+import org.eclipse.xtext.scoping.IScope;
+import org.eclipse.xtext.scoping.Scopes;
+import org.eclipse.xtext.scoping.impl.SimpleScope;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+
+/**
+ * For the moment Xbase uses two different scope providers, one for
+ * the runtime part and one for the content assist, thus we must
+ * factor out commong behavior.
+ *
+ * see http://www.eclipse.org/forums/index.php/mv/msg/476486/1041675/#msg_1041675
+ */
+@SuppressWarnings("all")
+public class EmfParsleyDslScopeProviderHelper {
+ public IScope createCustomScope(final EObject context, final EReference reference) {
+ EClassifier _eType = reference.getEType();
+ EClass _jvmMember = TypesPackage.eINSTANCE.getJvmMember();
+ boolean _equals = Objects.equal(_eType, _jvmMember);
+ if (_equals) {
+ IScope _customScope = null;
+ EmfFeatureAccess _containingEmfFeatureAccess = EmfParsleyDslModelUtil.containingEmfFeatureAccess(context);
+ JvmTypeReference _parameterType = null;
+ if (_containingEmfFeatureAccess!=null) {
+ _parameterType=_containingEmfFeatureAccess.getParameterType();
+ }
+ JvmType _type = null;
+ if (_parameterType!=null) {
+ _type=_parameterType.getType();
+ }
+ if (_type!=null) {
+ _customScope=this.customScope(_type);
+ }
+ return _customScope;
+ }
+ return null;
+ }
+
+ protected IScope _customScope(final JvmType t) {
+ return null;
+ }
+
+ protected IScope _customScope(final JvmGenericType t) {
+ Iterable<JvmFeature> _allFeatures = t.getAllFeatures();
+ Iterable<JvmOperation> _filter = Iterables.<JvmOperation>filter(_allFeatures, JvmOperation.class);
+ final Function1<JvmOperation,Boolean> _function = new Function1<JvmOperation,Boolean>() {
+ public Boolean apply(final JvmOperation it) {
+ boolean _isStatic = it.isStatic();
+ boolean _not = (!_isStatic);
+ return Boolean.valueOf(_not);
+ }
+ };
+ Iterable<JvmOperation> _filter_1 = IterableExtensions.<JvmOperation>filter(_filter, _function);
+ final Function<JvmOperation,QualifiedName> _function_1 = new Function<JvmOperation,QualifiedName>() {
+ public QualifiedName apply(final JvmOperation it) {
+ QualifiedName _xifexpression = null;
+ String _simpleName = it.getSimpleName();
+ boolean _isGetterMethod = EmfParsleyDslScopeProviderHelper.this.isGetterMethod(_simpleName);
+ if (_isGetterMethod) {
+ String _simpleName_1 = it.getSimpleName();
+ String _propertyNameForGetterMethod = EmfParsleyDslScopeProviderHelper.this.getPropertyNameForGetterMethod(_simpleName_1);
+ QualifiedName _create = QualifiedName.create(_propertyNameForGetterMethod);
+ _xifexpression = _create;
+ } else {
+ _xifexpression = null;
+ }
+ return _xifexpression;
+ }
+ };
+ Iterable<IEObjectDescription> _scopedElementsFor = Scopes.<JvmOperation>scopedElementsFor(_filter_1, _function_1);
+ SimpleScope _simpleScope = new SimpleScope(_scopedElementsFor);
+ return _simpleScope;
+ }
+
+ public boolean isGetterMethod(final String opName) {
+ boolean _and = false;
+ boolean _and_1 = false;
+ boolean _startsWith = opName.startsWith("get");
+ if (!_startsWith) {
+ _and_1 = false;
+ } else {
+ int _length = opName.length();
+ boolean _greaterThan = (_length > 3);
+ _and_1 = (_startsWith && _greaterThan);
+ }
+ if (!_and_1) {
+ _and = false;
+ } else {
+ char _charAt = opName.charAt(3);
+ boolean _isUpperCase = Character.isUpperCase(_charAt);
+ _and = (_and_1 && _isUpperCase);
+ }
+ if (_and) {
+ return true;
+ }
+ boolean _and_2 = false;
+ boolean _and_3 = false;
+ boolean _startsWith_1 = opName.startsWith("is");
+ if (!_startsWith_1) {
+ _and_3 = false;
+ } else {
+ int _length_1 = opName.length();
+ boolean _greaterThan_1 = (_length_1 > 2);
+ _and_3 = (_startsWith_1 && _greaterThan_1);
+ }
+ if (!_and_3) {
+ _and_2 = false;
+ } else {
+ char _charAt_1 = opName.charAt(2);
+ boolean _isUpperCase_1 = Character.isUpperCase(_charAt_1);
+ _and_2 = (_and_3 && _isUpperCase_1);
+ }
+ if (_and_2) {
+ return true;
+ }
+ return false;
+ }
+
+ public String getPropertyNameForGetterMethod(final String opName) {
+ boolean _and = false;
+ boolean _and_1 = false;
+ boolean _startsWith = opName.startsWith("get");
+ if (!_startsWith) {
+ _and_1 = false;
+ } else {
+ int _length = opName.length();
+ boolean _greaterThan = (_length > 3);
+ _and_1 = (_startsWith && _greaterThan);
+ }
+ if (!_and_1) {
+ _and = false;
+ } else {
+ char _charAt = opName.charAt(3);
+ boolean _isUpperCase = Character.isUpperCase(_charAt);
+ _and = (_and_1 && _isUpperCase);
+ }
+ if (_and) {
+ String _substring = opName.substring(3);
+ return Introspector.decapitalize(_substring);
+ }
+ boolean _and_2 = false;
+ boolean _and_3 = false;
+ boolean _startsWith_1 = opName.startsWith("is");
+ if (!_startsWith_1) {
+ _and_3 = false;
+ } else {
+ int _length_1 = opName.length();
+ boolean _greaterThan_1 = (_length_1 > 2);
+ _and_3 = (_startsWith_1 && _greaterThan_1);
+ }
+ if (!_and_3) {
+ _and_2 = false;
+ } else {
+ char _charAt_1 = opName.charAt(2);
+ boolean _isUpperCase_1 = Character.isUpperCase(_charAt_1);
+ _and_2 = (_and_3 && _isUpperCase_1);
+ }
+ if (_and_2) {
+ String _substring_1 = opName.substring(2);
+ return Introspector.decapitalize(_substring_1);
+ }
+ return null;
+ }
+
+ public IScope customScope(final JvmType t) {
+ if (t instanceof JvmGenericType) {
+ return _customScope((JvmGenericType)t);
+ } else if (t != null) {
+ return _customScope(t);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(t).toString());
+ }
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslXbaseBatchScopeProvider.java b/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslXbaseBatchScopeProvider.java
new file mode 100644
index 000000000..ab107bdb0
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/scoping/EmfParsleyDslXbaseBatchScopeProvider.java
@@ -0,0 +1,31 @@
+package org.eclipse.emf.parsley.dsl.scoping;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.parsley.dsl.scoping.EmfParsleyDslScopeProviderHelper;
+import org.eclipse.xtext.scoping.IScope;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.scoping.batch.XbaseBatchScopeProvider;
+
+@SuppressWarnings("all")
+public class EmfParsleyDslXbaseBatchScopeProvider extends XbaseBatchScopeProvider {
+ @Inject
+ @Extension
+ private EmfParsleyDslScopeProviderHelper _emfParsleyDslScopeProviderHelper;
+
+ public IScope getScope(final EObject context, final EReference reference) {
+ IScope _xblockexpression = null;
+ {
+ final IScope scope = this._emfParsleyDslScopeProviderHelper.createCustomScope(context, reference);
+ boolean _notEquals = (!Objects.equal(scope, null));
+ if (_notEquals) {
+ return scope;
+ }
+ IScope _scope = super.getScope(context, reference);
+ _xblockexpression = (_scope);
+ }
+ return _xblockexpression;
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/util/EmfParsleyDslModelUtil.java b/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/util/EmfParsleyDslModelUtil.java
new file mode 100644
index 000000000..6f3d2dffd
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/util/EmfParsleyDslModelUtil.java
@@ -0,0 +1,13 @@
+package org.eclipse.emf.parsley.dsl.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.parsley.dsl.model.EmfFeatureAccess;
+import org.eclipse.xtext.EcoreUtil2;
+
+@SuppressWarnings("all")
+public class EmfParsleyDslModelUtil {
+ public static EmfFeatureAccess containingEmfFeatureAccess(final EObject o) {
+ EmfFeatureAccess _containerOfType = EcoreUtil2.<EmfFeatureAccess>getContainerOfType(o, EmfFeatureAccess.class);
+ return _containerOfType;
+ }
+}
diff --git a/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/validation/EmfParsleyDslTypeSystem.java b/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/validation/EmfParsleyDslTypeSystem.java
new file mode 100644
index 000000000..740d95c10
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl/xtend-gen/org/eclipse/emf/parsley/dsl/validation/EmfParsleyDslTypeSystem.java
@@ -0,0 +1,51 @@
+package org.eclipse.emf.parsley.dsl.validation;
+
+import com.google.inject.Inject;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.xtext.common.types.JvmTypeReference;
+import org.eclipse.xtext.common.types.util.TypeReferences;
+import org.eclipse.xtext.xbase.typing.XbaseTypeConformanceComputer;
+
+@SuppressWarnings("all")
+public class EmfParsleyDslTypeSystem {
+ @Inject
+ private XbaseTypeConformanceComputer conformanceComputer;
+
+ @Inject
+ private TypeReferences typeReferences;
+
+ public boolean isConformant(final JvmTypeReference expected, final JvmTypeReference actual) {
+ boolean _isConformant = this.conformanceComputer.isConformant(expected, actual);
+ return _isConformant;
+ }
+
+ public boolean isEObject(final JvmTypeReference type, final EObject context) {
+ JvmTypeReference _typeForName = this.typeReferences.getTypeForName(EObject.class, context);
+ boolean _isConformant = this.isConformant(_typeForName, type);
+ return _isConformant;
+ }
+
+ public boolean isEStructuralFeature(final JvmTypeReference type, final EObject context) {
+ JvmTypeReference _typeForName = this.typeReferences.getTypeForName(
+ EStructuralFeature.class, context);
+ boolean _isConformant = this.isConformant(_typeForName, type);
+ return _isConformant;
+ }
+
+ public boolean isViewPart(final JvmTypeReference type, final EObject context) {
+ JvmTypeReference _typeForName = this.typeReferences.getTypeForName(
+ IViewPart.class, context);
+ boolean _isConformant = this.isConformant(_typeForName, type);
+ return _isConformant;
+ }
+
+ public boolean isEmfComponentsGuiceModule(final JvmTypeReference type, final EObject context) {
+ JvmTypeReference _typeForName = this.typeReferences.getTypeForName(
+ EmfComponentsGuiceModule.class, context);
+ boolean _isConformant = this.isConformant(_typeForName, type);
+ return _isConformant;
+ }
+}
diff --git a/examples/org.eclipse.emf.examples.library.edit/.classpath b/examples/org.eclipse.emf.examples.library.edit/.classpath
new file mode 100644
index 000000000..304e86186
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/org.eclipse.emf.examples.library.edit/.project b/examples/org.eclipse.emf.examples.library.edit/.project
new file mode 100644
index 000000000..3b692448a
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.examples.library.edit</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.emf.cdo.releng.version.VersionBuilder</name>
+ <arguments>
+ <dictionary>
+ <key>ignore.missing.dependency.ranges</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>ignore.schema.builder</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>release.path</key>
+ <value>/org.eclipse.emf.java/release.xml</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.emf.cdo.releng.version.VersionNature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/org.eclipse.emf.examples.library.edit/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.examples.library.edit/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..d29b0f382
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Wed Nov 08 10:51:59 EST 2006
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/org.eclipse.emf.examples.library.edit/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.examples.library.edit/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.examples.library.edit/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.examples.library.edit/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..c75eb7d46
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.examples.library.edit; singleton:=true
+Bundle-Version: 2.5.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.emf.examples.extlibrary.provider.EXTLibraryEditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.examples.extlibrary.provider
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.emf.examples.library;visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="2.7.0";visibility:=reexport
+Eclipse-LazyStart: true
+Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.examples.library.edit/about.html b/examples/org.eclipse.emf.examples.library.edit/about.html
new file mode 100644
index 000000000..1b8f94080
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/examples/org.eclipse.emf.examples.library.edit/build.properties b/examples/org.eclipse.emf.examples.library.edit/build.properties
new file mode 100644
index 000000000..ca45351e6
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/build.properties
@@ -0,0 +1,9 @@
+bin.includes = icons/,\
+ .,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_borrowers_Borrower.gif b/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_borrowers_Borrower.gif
new file mode 100644
index 000000000..6b4e4321e
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_borrowers_Borrower.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_branches_Library.gif b/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_branches_Library.gif
new file mode 100644
index 000000000..883ce93b4
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_branches_Library.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_employees_Employee.gif b/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_employees_Employee.gif
new file mode 100644
index 000000000..5b7808087
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_employees_Employee.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_Book.gif b/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_Book.gif
new file mode 100644
index 000000000..9073955a8
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_Book.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_BookOnTape.gif b/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_BookOnTape.gif
new file mode 100644
index 000000000..5d5000a7f
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_BookOnTape.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_VideoCassette.gif b/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_VideoCassette.gif
new file mode 100644
index 000000000..cca8aec82
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_VideoCassette.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_writers_Writer.gif b/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_writers_Writer.gif
new file mode 100644
index 000000000..564bdbd77
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/icons/full/ctool16/CreateLibrary_writers_Writer.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Book.gif b/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Book.gif
new file mode 100644
index 000000000..c3370c7dd
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Book.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/BookOnTape.gif b/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/BookOnTape.gif
new file mode 100644
index 000000000..cb1755a71
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/BookOnTape.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Borrower.gif b/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Borrower.gif
new file mode 100644
index 000000000..10d222998
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Borrower.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/CirculatingItem.gif b/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/CirculatingItem.gif
new file mode 100644
index 000000000..c3370c7dd
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/CirculatingItem.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Employee.gif b/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Employee.gif
new file mode 100644
index 000000000..1e5345fb3
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Employee.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Library.gif b/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Library.gif
new file mode 100644
index 000000000..739ebbfa6
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Library.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Person.gif b/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Person.gif
new file mode 100644
index 000000000..ea58a657d
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Person.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/VideoCassette.gif b/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/VideoCassette.gif
new file mode 100644
index 000000000..9250fecbf
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/VideoCassette.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Writer.gif b/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Writer.gif
new file mode 100644
index 000000000..ef56c1408
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/icons/full/obj16/Writer.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.examples.library.edit/plugin.properties b/examples/org.eclipse.emf.examples.library.edit/plugin.properties
new file mode 100644
index 000000000..e0c1c64d0
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/plugin.properties
@@ -0,0 +1,79 @@
+# /**
+# * Copyright (c) 2002-2008 IBM Corporation and others.
+# * 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:
+# * IBM - Initial API and implementation
+# */
+
+# NLS_MESSAGEFORMAT_VAR
+
+pluginName = EMF Extended Library Edit Example
+providerName = Eclipse Modeling Project
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_Book_type = Book
+_UI_Library_type = Library
+_UI_Writer_type = Writer
+_UI_Item_type = Item
+_UI_Lendable_type = Lendable
+_UI_CirculatingItem_type = Circulating Item
+_UI_Periodical_type = Periodical
+_UI_AudioVisualItem_type = Audio Visual Item
+_UI_BookOnTape_type = Book On Tape
+_UI_VideoCassette_type = Video Cassette
+_UI_Borrower_type = Borrower
+_UI_Person_type = Person
+_UI_Employee_type = Employee
+_UI_Addressable_type = Addressable
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_Book_title_feature = Title
+_UI_Book_pages_feature = Pages
+_UI_Book_category_feature = Category
+_UI_Book_author_feature = Author
+_UI_Library_name_feature = Name
+_UI_Library_writers_feature = Writers
+_UI_Library_employees_feature = Employees
+_UI_Library_borrowers_feature = Borrowers
+_UI_Library_stock_feature = Stock
+_UI_Library_books_feature = Books
+_UI_Library_branches_feature = Branches
+_UI_Library_parentBranch_feature = Parent Branch
+_UI_Library_people_feature = People
+_UI_Writer_name_feature = Name
+_UI_Writer_books_feature = Books
+_UI_Item_publicationDate_feature = Publication Date
+_UI_Lendable_copies_feature = Copies
+_UI_Lendable_borrowers_feature = Borrowers
+_UI_Periodical_title_feature = Title
+_UI_Periodical_issuesPerYear_feature = Issues Per Year
+_UI_AudioVisualItem_title_feature = Title
+_UI_AudioVisualItem_minutesLength_feature = Minutes Length
+_UI_AudioVisualItem_damaged_feature = Damaged
+_UI_BookOnTape_reader_feature = Reader
+_UI_BookOnTape_author_feature = Author
+_UI_VideoCassette_cast_feature = Cast
+_UI_Borrower_borrowed_feature = Borrowed
+_UI_Person_firstName_feature = First Name
+_UI_Person_lastName_feature = Last Name
+_UI_Employee_manager_feature = Manager
+_UI_Addressable_address_feature = Address
+_UI_Unknown_feature = Unspecified
+
+_UI_BookCategory_Mystery_literal = Mystery
+_UI_BookCategory_ScienceFiction_literal = ScienceFiction
+_UI_BookCategory_Biography_literal = Biography
diff --git a/examples/org.eclipse.emf.examples.library.edit/plugin.xml b/examples/org.eclipse.emf.examples.library.edit/plugin.xml
new file mode 100644
index 000000000..1fdd258c0
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/plugin.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <factory
+ uri="http:///org/eclipse/emf/examples/library/extlibrary.ecore/1.0.0"
+ class="org.eclipse.emf.examples.extlibrary.provider.EXTLibraryItemProviderAdapterFactory"
+ supportedTypes=
+ "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+ org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+ org.eclipse.emf.edit.provider.ITreeItemContentProvider
+ org.eclipse.emf.edit.provider.IItemLabelProvider
+ org.eclipse.emf.edit.provider.IItemPropertySource"/>
+ </extension>
+
+</plugin>
diff --git a/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/AudioVisualItemItemProvider.java b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/AudioVisualItemItemProvider.java
new file mode 100644
index 000000000..e31420af3
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/AudioVisualItemItemProvider.java
@@ -0,0 +1,199 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.emf.examples.extlibrary.AudioVisualItem;
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.examples.extlibrary.AudioVisualItem} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AudioVisualItemItemProvider
+ extends CirculatingItemItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AudioVisualItemItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addTitlePropertyDescriptor(object);
+ addMinutesLengthPropertyDescriptor(object);
+ addDamagedPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Title feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTitlePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_AudioVisualItem_title_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_AudioVisualItem_title_feature", "_UI_AudioVisualItem_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.AUDIO_VISUAL_ITEM__TITLE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Minutes Length feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addMinutesLengthPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_AudioVisualItem_minutesLength_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_AudioVisualItem_minutesLength_feature", "_UI_AudioVisualItem_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.AUDIO_VISUAL_ITEM__MINUTES_LENGTH,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Damaged feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDamagedPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_AudioVisualItem_damaged_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_AudioVisualItem_damaged_feature", "_UI_AudioVisualItem_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.AUDIO_VISUAL_ITEM__DAMAGED,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((AudioVisualItem)object).getTitle();
+ return label == null || label.length() == 0 ?
+ getString("_UI_AudioVisualItem_type") : //$NON-NLS-1$
+ getString("_UI_AudioVisualItem_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(AudioVisualItem.class))
+ {
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__TITLE:
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__MINUTES_LENGTH:
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__DAMAGED:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/BookItemProvider.java b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/BookItemProvider.java
new file mode 100644
index 000000000..e5962f3e6
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/BookItemProvider.java
@@ -0,0 +1,235 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.emf.examples.extlibrary.Book;
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.examples.extlibrary.Book} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BookItemProvider
+ extends CirculatingItemItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BookItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addTitlePropertyDescriptor(object);
+ addPagesPropertyDescriptor(object);
+ addCategoryPropertyDescriptor(object);
+ addAuthorPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Title feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTitlePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Book_title_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Book_title_feature", "_UI_Book_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.BOOK__TITLE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Pages feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addPagesPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Book_pages_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Book_pages_feature", "_UI_Book_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.BOOK__PAGES,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Category feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addCategoryPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Book_category_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Book_category_feature", "_UI_Book_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.BOOK__CATEGORY,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Author feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAuthorPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Book_author_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Book_author_feature", "_UI_Book_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.BOOK__AUTHOR,
+ true,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns Book.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Book")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((Book)object).getTitle();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Book_type") : //$NON-NLS-1$
+ getString("_UI_Book_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Book.class))
+ {
+ case EXTLibraryPackage.BOOK__TITLE:
+ case EXTLibraryPackage.BOOK__PAGES:
+ case EXTLibraryPackage.BOOK__CATEGORY:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/BookOnTapeItemProvider.java b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/BookOnTapeItemProvider.java
new file mode 100644
index 000000000..2f4a2824d
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/BookOnTapeItemProvider.java
@@ -0,0 +1,176 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.emf.examples.extlibrary.BookOnTape;
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.examples.extlibrary.BookOnTape} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BookOnTapeItemProvider
+ extends AudioVisualItemItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BookOnTapeItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addReaderPropertyDescriptor(object);
+ addAuthorPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Reader feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addReaderPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_BookOnTape_reader_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_BookOnTape_reader_feature", "_UI_BookOnTape_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.BOOK_ON_TAPE__READER,
+ true,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Author feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAuthorPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_BookOnTape_author_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_BookOnTape_author_feature", "_UI_BookOnTape_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.BOOK_ON_TAPE__AUTHOR,
+ true,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns BookOnTape.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/BookOnTape")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((BookOnTape)object).getTitle();
+ return label == null || label.length() == 0 ?
+ getString("_UI_BookOnTape_type") : //$NON-NLS-1$
+ getString("_UI_BookOnTape_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/BorrowerItemProvider.java b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/BorrowerItemProvider.java
new file mode 100644
index 000000000..4eaad6e79
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/BorrowerItemProvider.java
@@ -0,0 +1,152 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.emf.examples.extlibrary.Borrower;
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.examples.extlibrary.Borrower} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BorrowerItemProvider
+ extends PersonItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BorrowerItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addBorrowedPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Borrowed feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addBorrowedPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Borrower_borrowed_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Borrower_borrowed_feature", "_UI_Borrower_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.BORROWER__BORROWED,
+ true,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns Borrower.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Borrower")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((Borrower)object).getLastName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Borrower_type") : //$NON-NLS-1$
+ getString("_UI_Borrower_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/CirculatingItemItemProvider.java b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/CirculatingItemItemProvider.java
new file mode 100644
index 000000000..d607ac702
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/CirculatingItemItemProvider.java
@@ -0,0 +1,187 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.provider;
+
+
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.emf.examples.extlibrary.CirculatingItem;
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.examples.extlibrary.CirculatingItem} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CirculatingItemItemProvider
+ extends ItemItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CirculatingItemItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addCopiesPropertyDescriptor(object);
+ addBorrowersPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Copies feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addCopiesPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Lendable_copies_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Lendable_copies_feature", "_UI_Lendable_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.LENDABLE__COPIES,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Borrowers feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addBorrowersPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Lendable_borrowers_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Lendable_borrowers_feature", "_UI_Lendable_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.LENDABLE__BORROWERS,
+ true,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns CirculatingItem.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CirculatingItem")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ Date labelValue = ((CirculatingItem)object).getPublicationDate();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CirculatingItem_type") : //$NON-NLS-1$
+ getString("_UI_CirculatingItem_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(CirculatingItem.class))
+ {
+ case EXTLibraryPackage.CIRCULATING_ITEM__COPIES:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/EXTLibraryEditPlugin.java b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/EXTLibraryEditPlugin.java
new file mode 100644
index 000000000..55669ff0b
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/EXTLibraryEditPlugin.java
@@ -0,0 +1,104 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the EXTLibrary edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class EXTLibraryEditPlugin extends EMFPlugin
+{
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EXTLibraryEditPlugin INSTANCE = new EXTLibraryEditPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibraryEditPlugin()
+ {
+ super
+ (new ResourceLocator []
+ {
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator()
+ {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin()
+ {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipsePlugin
+ {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation()
+ {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/EXTLibraryItemProviderAdapterFactory.java b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/EXTLibraryItemProviderAdapterFactory.java
new file mode 100644
index 000000000..b69e90a78
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/EXTLibraryItemProviderAdapterFactory.java
@@ -0,0 +1,405 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.emf.examples.extlibrary.util.EXTLibraryAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EXTLibraryItemProviderAdapterFactory extends EXTLibraryAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable
+{
+ /**
+ * This keeps track of the root adapter factory that delegates to this adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+ /**
+ * This constructs an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibraryItemProviderAdapterFactory()
+ {
+ supportedTypes.add(IEditingDomainItemProvider.class);
+ supportedTypes.add(IStructuredItemContentProvider.class);
+ supportedTypes.add(ITreeItemContentProvider.class);
+ supportedTypes.add(IItemLabelProvider.class);
+ supportedTypes.add(IItemPropertySource.class);
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.examples.extlibrary.Book} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BookItemProvider bookItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.examples.extlibrary.Book}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createBookAdapter()
+ {
+ if (bookItemProvider == null)
+ {
+ bookItemProvider = new BookItemProvider(this);
+ }
+
+ return bookItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.examples.extlibrary.Library} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LibraryItemProvider libraryItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.examples.extlibrary.Library}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createLibraryAdapter()
+ {
+ if (libraryItemProvider == null)
+ {
+ libraryItemProvider = new LibraryItemProvider(this);
+ }
+
+ return libraryItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.examples.extlibrary.Writer} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected WriterItemProvider writerItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.examples.extlibrary.Writer}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createWriterAdapter()
+ {
+ if (writerItemProvider == null)
+ {
+ writerItemProvider = new WriterItemProvider(this);
+ }
+
+ return writerItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.examples.extlibrary.BookOnTape} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BookOnTapeItemProvider bookOnTapeItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.examples.extlibrary.BookOnTape}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createBookOnTapeAdapter()
+ {
+ if (bookOnTapeItemProvider == null)
+ {
+ bookOnTapeItemProvider = new BookOnTapeItemProvider(this);
+ }
+
+ return bookOnTapeItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.examples.extlibrary.VideoCassette} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VideoCassetteItemProvider videoCassetteItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.examples.extlibrary.VideoCassette}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createVideoCassetteAdapter()
+ {
+ if (videoCassetteItemProvider == null)
+ {
+ videoCassetteItemProvider = new VideoCassetteItemProvider(this);
+ }
+
+ return videoCassetteItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.examples.extlibrary.Borrower} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BorrowerItemProvider borrowerItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.examples.extlibrary.Borrower}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createBorrowerAdapter()
+ {
+ if (borrowerItemProvider == null)
+ {
+ borrowerItemProvider = new BorrowerItemProvider(this);
+ }
+
+ return borrowerItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.examples.extlibrary.Person} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PersonItemProvider personItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.examples.extlibrary.Person}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPersonAdapter()
+ {
+ if (personItemProvider == null)
+ {
+ personItemProvider = new PersonItemProvider(this);
+ }
+
+ return personItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.examples.extlibrary.Employee} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EmployeeItemProvider employeeItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.examples.extlibrary.Employee}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createEmployeeAdapter()
+ {
+ if (employeeItemProvider == null)
+ {
+ employeeItemProvider = new EmployeeItemProvider(this);
+ }
+
+ return employeeItemProvider;
+ }
+
+ /**
+ * This returns the root adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComposeableAdapterFactory getRootAdapterFactory()
+ {
+ return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+ }
+
+ /**
+ * This sets the composed adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory)
+ {
+ this.parentAdapterFactory = parentAdapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type)
+ {
+ return supportedTypes.contains(type) || super.isFactoryForType(type);
+ }
+
+ /**
+ * This implementation substitutes the factory itself as the key for the adapter.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter adapt(Notifier notifier, Object type)
+ {
+ return super.adapt(notifier, this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object adapt(Object object, Object type)
+ {
+ if (isFactoryForType(type))
+ {
+ Object adapter = super.adapt(object, type);
+ if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter)))
+ {
+ return adapter;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * This adds a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addListener(INotifyChangedListener notifyChangedListener)
+ {
+ changeNotifier.addListener(notifyChangedListener);
+ }
+
+ /**
+ * This removes a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeListener(INotifyChangedListener notifyChangedListener)
+ {
+ changeNotifier.removeListener(notifyChangedListener);
+ }
+
+ /**
+ * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void fireNotifyChanged(Notification notification)
+ {
+ changeNotifier.fireNotifyChanged(notification);
+
+ if (parentAdapterFactory != null)
+ {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ }
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void dispose()
+ {
+ if (bookItemProvider != null) bookItemProvider.dispose();
+ if (libraryItemProvider != null) libraryItemProvider.dispose();
+ if (writerItemProvider != null) writerItemProvider.dispose();
+ if (bookOnTapeItemProvider != null) bookOnTapeItemProvider.dispose();
+ if (videoCassetteItemProvider != null) videoCassetteItemProvider.dispose();
+ if (borrowerItemProvider != null) borrowerItemProvider.dispose();
+ if (personItemProvider != null) personItemProvider.dispose();
+ if (employeeItemProvider != null) employeeItemProvider.dispose();
+ }
+
+}
diff --git a/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/EmployeeItemProvider.java b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/EmployeeItemProvider.java
new file mode 100644
index 000000000..5c4e17a7b
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/EmployeeItemProvider.java
@@ -0,0 +1,152 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.Employee;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.examples.extlibrary.Employee} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EmployeeItemProvider
+ extends PersonItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EmployeeItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addManagerPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Manager feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addManagerPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Employee_manager_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Employee_manager_feature", "_UI_Employee_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.EMPLOYEE__MANAGER,
+ true,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns Employee.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Employee")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((Employee)object).getLastName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Employee_type") : //$NON-NLS-1$
+ getString("_UI_Employee_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/ItemItemProvider.java b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/ItemItemProvider.java
new file mode 100644
index 000000000..87fdf8543
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/ItemItemProvider.java
@@ -0,0 +1,166 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.provider;
+
+
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.Item;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.examples.extlibrary.Item} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ItemItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ItemItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addPublicationDatePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Publication Date feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addPublicationDatePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Item_publicationDate_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Item_publicationDate_feature", "_UI_Item_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.ITEM__PUBLICATION_DATE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ Date labelValue = ((Item)object).getPublicationDate();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Item_type") : //$NON-NLS-1$
+ getString("_UI_Item_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Item.class))
+ {
+ case EXTLibraryPackage.ITEM__PUBLICATION_DATE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return EXTLibraryEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/LibraryItemProvider.java b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/LibraryItemProvider.java
new file mode 100644
index 000000000..0b3267e73
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/LibraryItemProvider.java
@@ -0,0 +1,307 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.emf.examples.extlibrary.EXTLibraryFactory;
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.Library;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.examples.extlibrary.Library} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class LibraryItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LibraryItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addAddressPropertyDescriptor(object);
+ addNamePropertyDescriptor(object);
+ addBooksPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Address feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAddressPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Addressable_address_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Addressable_address_feature", "_UI_Addressable_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.ADDRESSABLE__ADDRESS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Library_name_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Library_name_feature", "_UI_Library_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.LIBRARY__NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Books feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addBooksPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Library_books_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Library_books_feature", "_UI_Library_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.LIBRARY__BOOKS,
+ false,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
+ {
+ if (childrenFeatures == null)
+ {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(EXTLibraryPackage.Literals.LIBRARY__WRITERS);
+ childrenFeatures.add(EXTLibraryPackage.Literals.LIBRARY__EMPLOYEES);
+ childrenFeatures.add(EXTLibraryPackage.Literals.LIBRARY__BORROWERS);
+ childrenFeatures.add(EXTLibraryPackage.Literals.LIBRARY__STOCK);
+ childrenFeatures.add(EXTLibraryPackage.Literals.LIBRARY__BRANCHES);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child)
+ {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns Library.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Library")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((Library)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Library_type") : //$NON-NLS-1$
+ getString("_UI_Library_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Library.class))
+ {
+ case EXTLibraryPackage.LIBRARY__ADDRESS:
+ case EXTLibraryPackage.LIBRARY__NAME:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case EXTLibraryPackage.LIBRARY__WRITERS:
+ case EXTLibraryPackage.LIBRARY__EMPLOYEES:
+ case EXTLibraryPackage.LIBRARY__BORROWERS:
+ case EXTLibraryPackage.LIBRARY__STOCK:
+ case EXTLibraryPackage.LIBRARY__BRANCHES:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (EXTLibraryPackage.Literals.LIBRARY__WRITERS,
+ EXTLibraryFactory.eINSTANCE.createWriter()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (EXTLibraryPackage.Literals.LIBRARY__EMPLOYEES,
+ EXTLibraryFactory.eINSTANCE.createEmployee()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (EXTLibraryPackage.Literals.LIBRARY__BORROWERS,
+ EXTLibraryFactory.eINSTANCE.createBorrower()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (EXTLibraryPackage.Literals.LIBRARY__STOCK,
+ EXTLibraryFactory.eINSTANCE.createBook()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (EXTLibraryPackage.Literals.LIBRARY__STOCK,
+ EXTLibraryFactory.eINSTANCE.createBookOnTape()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (EXTLibraryPackage.Literals.LIBRARY__STOCK,
+ EXTLibraryFactory.eINSTANCE.createVideoCassette()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (EXTLibraryPackage.Literals.LIBRARY__BRANCHES,
+ EXTLibraryFactory.eINSTANCE.createLibrary()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return EXTLibraryEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/PeriodicalItemProvider.java b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/PeriodicalItemProvider.java
new file mode 100644
index 000000000..065b27e46
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/PeriodicalItemProvider.java
@@ -0,0 +1,174 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.Periodical;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.examples.extlibrary.Periodical} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PeriodicalItemProvider
+ extends ItemItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PeriodicalItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addTitlePropertyDescriptor(object);
+ addIssuesPerYearPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Title feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTitlePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Periodical_title_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Periodical_title_feature", "_UI_Periodical_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.PERIODICAL__TITLE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Issues Per Year feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addIssuesPerYearPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Periodical_issuesPerYear_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Periodical_issuesPerYear_feature", "_UI_Periodical_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.PERIODICAL__ISSUES_PER_YEAR,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((Periodical)object).getTitle();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Periodical_type") : //$NON-NLS-1$
+ getString("_UI_Periodical_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Periodical.class))
+ {
+ case EXTLibraryPackage.PERIODICAL__TITLE:
+ case EXTLibraryPackage.PERIODICAL__ISSUES_PER_YEAR:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/PersonItemProvider.java b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/PersonItemProvider.java
new file mode 100644
index 000000000..9bb8d8a2a
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/PersonItemProvider.java
@@ -0,0 +1,226 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.Person;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.examples.extlibrary.Person} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PersonItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PersonItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addAddressPropertyDescriptor(object);
+ addFirstNamePropertyDescriptor(object);
+ addLastNamePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Address feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAddressPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Addressable_address_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Addressable_address_feature", "_UI_Addressable_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.ADDRESSABLE__ADDRESS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the First Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addFirstNamePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Person_firstName_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Person_firstName_feature", "_UI_Person_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.PERSON__FIRST_NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Last Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addLastNamePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Person_lastName_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Person_lastName_feature", "_UI_Person_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.PERSON__LAST_NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns Person.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Person")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((Person)object).getLastName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Person_type") : //$NON-NLS-1$
+ getString("_UI_Person_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Person.class))
+ {
+ case EXTLibraryPackage.PERSON__ADDRESS:
+ case EXTLibraryPackage.PERSON__FIRST_NAME:
+ case EXTLibraryPackage.PERSON__LAST_NAME:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return EXTLibraryEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/VideoCassetteItemProvider.java b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/VideoCassetteItemProvider.java
new file mode 100644
index 000000000..f58af887f
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/VideoCassetteItemProvider.java
@@ -0,0 +1,152 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.VideoCassette;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.examples.extlibrary.VideoCassette} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class VideoCassetteItemProvider
+ extends AudioVisualItemItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VideoCassetteItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addCastPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Cast feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addCastPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_VideoCassette_cast_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_VideoCassette_cast_feature", "_UI_VideoCassette_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.VIDEO_CASSETTE__CAST,
+ true,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns VideoCassette.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/VideoCassette")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((VideoCassette)object).getTitle();
+ return label == null || label.length() == 0 ?
+ getString("_UI_VideoCassette_type") : //$NON-NLS-1$
+ getString("_UI_VideoCassette_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/WriterItemProvider.java b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/WriterItemProvider.java
new file mode 100644
index 000000000..1de4e032c
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library.edit/src/org/eclipse/emf/examples/extlibrary/provider/WriterItemProvider.java
@@ -0,0 +1,185 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.Writer;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.examples.extlibrary.Writer} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class WriterItemProvider
+ extends PersonItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WriterItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addNamePropertyDescriptor(object);
+ addBooksPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Writer_name_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Writer_name_feature", "_UI_Writer_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.WRITER__NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Books feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addBooksPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Writer_books_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Writer_books_feature", "_UI_Writer_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.WRITER__BOOKS,
+ true,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns Writer.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Writer")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((Writer)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Writer_type") : //$NON-NLS-1$
+ getString("_UI_Writer_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Writer.class))
+ {
+ case EXTLibraryPackage.WRITER__NAME:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.examples.library/.classpath b/examples/org.eclipse.emf.examples.library/.classpath
new file mode 100644
index 000000000..304e86186
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/org.eclipse.emf.examples.library/.project b/examples/org.eclipse.emf.examples.library/.project
new file mode 100644
index 000000000..8f5017d96
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.examples.library</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.emf.cdo.releng.version.VersionBuilder</name>
+ <arguments>
+ <dictionary>
+ <key>ignore.missing.dependency.ranges</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>ignore.schema.builder</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>release.path</key>
+ <value>/org.eclipse.emf.java/release.xml</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.emf.cdo.releng.version.VersionNature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/org.eclipse.emf.examples.library/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.examples.library/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..d29b0f382
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Wed Nov 08 10:51:59 EST 2006
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/org.eclipse.emf.examples.library/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.examples.library/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.examples.library/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.examples.library/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..dfe117161
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.examples.library; singleton:=true
+Bundle-Version: 2.5.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.examples.extlibrary,
+ org.eclipse.emf.examples.extlibrary.impl,
+ org.eclipse.emf.examples.extlibrary.util
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.emf.ecore;bundle-version="2.7.0";visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;bundle-version="2.7.0";visibility:=reexport
+Eclipse-LazyStart: true
+Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.examples.library/about.html b/examples/org.eclipse.emf.examples.library/about.html
new file mode 100644
index 000000000..1b8f94080
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/examples/org.eclipse.emf.examples.library/build.properties b/examples/org.eclipse.emf.examples.library/build.properties
new file mode 100644
index 000000000..833a42733
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/build.properties
@@ -0,0 +1,9 @@
+bin.includes = model/,\
+ .,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/examples/org.eclipse.emf.examples.library/model/extlibrary.ecore b/examples/org.eclipse.emf.examples.library/model/extlibrary.ecore
new file mode 100644
index 000000000..77548b5dc
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/model/extlibrary.ecore
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="extlibrary"
+ nsURI="http:///org/eclipse/emf/examples/library/extlibrary.ecore/1.0.0" nsPrefix="extlib">
+ <eClassifiers xsi:type="ecore:EClass" name="Book" eSuperTypes="#//CirculatingItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="pages" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="100"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" eType="#//BookCategory"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="author" lowerBound="1"
+ eType="#//Writer" eOpposite="#//Writer/books"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Library" eSuperTypes="#//Addressable">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="writers" upperBound="-1"
+ eType="#//Writer" volatile="true" transient="true" derived="true" resolveProxies="false" containment="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="group" value="#people"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="employees" upperBound="-1"
+ eType="#//Employee" volatile="true" transient="true" derived="true" resolveProxies="false" containment="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="group" value="#people"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="borrowers" upperBound="-1"
+ eType="#//Borrower" volatile="true" transient="true" derived="true" resolveProxies="false" containment="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="group" value="#people"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stock" ordered="false"
+ upperBound="-1" eType="#//Item" resolveProxies="false" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="books" ordered="false"
+ upperBound="-1" eType="#//Book" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="branches" upperBound="-1"
+ eType="#//Library" containment="true" eOpposite="#//Library/parentBranch"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parentBranch" eType="#//Library"
+ eOpposite="#//Library/branches"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="people" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="group"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Writer" eSuperTypes="#//Person">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ volatile="true" transient="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="books" upperBound="-1"
+ eType="#//Book" eOpposite="#//Book/author"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="BookCategory">
+ <eLiterals name="Mystery"/>
+ <eLiterals name="ScienceFiction" value="1"/>
+ <eLiterals name="Biography" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Item" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="publicationDate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Lendable" abstract="true" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="copies" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="borrowers" ordered="false"
+ upperBound="-1" eType="#//Borrower" eOpposite="#//Borrower/borrowed"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CirculatingItem" abstract="true" eSuperTypes="#//Item #//Lendable"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Periodical" abstract="true" eSuperTypes="#//Item">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="issuesPerYear" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AudioVisualItem" abstract="true" eSuperTypes="#//CirculatingItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="minutesLength" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="damaged" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BookOnTape" eSuperTypes="#//AudioVisualItem">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="reader" eType="#//Person"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="author" eType="#//Writer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="VideoCassette" eSuperTypes="#//AudioVisualItem">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="cast" upperBound="-1" eType="#//Person"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Borrower" eSuperTypes="#//Person">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="borrowed" upperBound="-1"
+ eType="#//Lendable" eOpposite="#//Lendable/borrowers"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Person" eSuperTypes="#//Addressable">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="firstName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lastName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Employee" eSuperTypes="#//Person">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="manager" eType="#//Employee"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Addressable" abstract="true" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="address" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/examples/org.eclipse.emf.examples.library/model/extlibrary.genmodel b/examples/org.eclipse.emf.examples.library/model/extlibrary.genmodel
new file mode 100644
index 000000000..13c415d55
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/model/extlibrary.genmodel
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.examples.library/src"
+ editDirectory="/org.eclipse.emf.examples.library.edit/src" editorDirectory="/org.eclipse.emf.examples.library.editor/src"
+ modelPluginID="org.eclipse.emf.examples.library" runtimeJar="true" modelName="EXTLibrary"
+ editPluginClass="org.eclipse.emf.examples.extlibrary.provider.EXTLibraryEditPlugin"
+ editorPluginClass="org.eclipse.emf.examples.extlibrary.presentation.EXTLibraryEditorPlugin"
+ nonNLSMarkers="true" testsDirectory="" booleanFlagsField="eFlags" booleanFlagsReservedBits="8"
+ importerID="org.eclipse.emf.importer.ecore" containmentProxies="true" complianceLevel="5.0"
+ language="en">
+ <foreignModel>extlibrary.ecore</foreignModel>
+ <genPackages prefix="EXTLibrary" basePackage="org.eclipse.emf.examples" disposableProviderFactory="true"
+ contentTypeIdentifier="extendedLibrary" ecorePackage="extlibrary.ecore#/">
+ <genEnums ecoreEnum="extlibrary.ecore#//BookCategory">
+ <genEnumLiterals ecoreEnumLiteral="extlibrary.ecore#//BookCategory/Mystery"/>
+ <genEnumLiterals ecoreEnumLiteral="extlibrary.ecore#//BookCategory/ScienceFiction"/>
+ <genEnumLiterals ecoreEnumLiteral="extlibrary.ecore#//BookCategory/Biography"/>
+ </genEnums>
+ <genClasses ecoreClass="extlibrary.ecore#//Book" labelFeature="#//extlibrary/Book/title">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Book/title"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Book/pages"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Book/category"/>
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//Book/author"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//Library">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Library/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extlibrary.ecore#//Library/writers"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extlibrary.ecore#//Library/employees"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extlibrary.ecore#//Library/borrowers"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extlibrary.ecore#//Library/stock"/>
+ <genFeatures property="Readonly" notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//Library/books"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extlibrary.ecore#//Library/branches"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//Library/parentBranch"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Library/people"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//Writer">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Writer/name"/>
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//Writer/books"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="extlibrary.ecore#//Item">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Item/publicationDate"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//Lendable">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Lendable/copies"/>
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//Lendable/borrowers"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//CirculatingItem"/>
+ <genClasses image="false" ecoreClass="extlibrary.ecore#//Periodical" labelFeature="#//extlibrary/Periodical/title">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Periodical/title"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Periodical/issuesPerYear"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="extlibrary.ecore#//AudioVisualItem" labelFeature="#//extlibrary/AudioVisualItem/title">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//AudioVisualItem/title"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//AudioVisualItem/minutesLength"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//AudioVisualItem/damaged"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//BookOnTape" labelFeature="#//extlibrary/AudioVisualItem/title">
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//BookOnTape/reader"/>
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//BookOnTape/author"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//VideoCassette" labelFeature="#//extlibrary/AudioVisualItem/title">
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//VideoCassette/cast"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//Borrower" labelFeature="#//extlibrary/Person/lastName">
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//Borrower/borrowed"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//Person" labelFeature="#//extlibrary/Person/lastName">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Person/firstName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Person/lastName"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//Employee" labelFeature="#//extlibrary/Person/lastName">
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//Employee/manager"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//Addressable">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Addressable/address"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/examples/org.eclipse.emf.examples.library/plugin.properties b/examples/org.eclipse.emf.examples.library/plugin.properties
new file mode 100644
index 000000000..fa77047af
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/plugin.properties
@@ -0,0 +1,17 @@
+# /**
+# * Copyright (c) 2002-2008 IBM Corporation and others.
+# * 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:
+# * IBM - Initial API and implementation
+# */
+
+# NLS_MESSAGEFORMAT_VAR
+
+pluginName = EMF Extended Library Model Example
+providerName = Eclipse Modeling Project
+
+_UI_EXTLibrary_content_type = Extended Library File
diff --git a/examples/org.eclipse.emf.examples.library/plugin.xml b/examples/org.eclipse.emf.examples.library/plugin.xml
new file mode 100644
index 000000000..4e7a815c2
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/plugin.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http:///org/eclipse/emf/examples/library/extlibrary.ecore/1.0.0"
+ class="org.eclipse.emf.examples.extlibrary.EXTLibraryPackage"
+ genModel="model/extlibrary.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.content_parser">
+ <parser
+ contentTypeIdentifier="extendedLibrary"
+ class="org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.core.contenttype.contentTypes">
+ <content-type
+ base-type="org.eclipse.emf.ecore.xmi"
+ file-extensions="extlibrary"
+ id="extendedLibrary"
+ name="%_UI_EXTLibrary_content_type"
+ priority="normal">
+ <describer class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
+ <parameter name="namespace" value="http:///org/eclipse/emf/examples/library/extlibrary.ecore/1.0.0"/>
+ <parameter name="kind" value="xmi"/>
+ </describer>
+ </content-type>
+ </extension>
+</plugin>
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Addressable.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Addressable.java
new file mode 100644
index 000000000..527f8488d
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Addressable.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary;
+
+
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Addressable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Addressable#getAddress <em>Address</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getAddressable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface Addressable extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Address</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Address</em>' attribute.
+ * @see #setAddress(String)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getAddressable_Address()
+ * @model
+ * @generated
+ */
+ String getAddress();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.Addressable#getAddress <em>Address</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Address</em>' attribute.
+ * @see #getAddress()
+ * @generated
+ */
+ void setAddress(String value);
+
+} // Addressable
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/AudioVisualItem.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/AudioVisualItem.java
new file mode 100644
index 000000000..171ce1e04
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/AudioVisualItem.java
@@ -0,0 +1,100 @@
+/**
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Audo Visual Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.AudioVisualItem#getTitle <em>Title</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.AudioVisualItem#getMinutesLength <em>Minutes Length</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.AudioVisualItem#isDamaged <em>Damaged</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getAudioVisualItem()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AudioVisualItem extends CirculatingItem
+{
+ /**
+ * Returns the value of the '<em><b>Title</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Title</em>' attribute.
+ * @see #setTitle(String)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getAudioVisualItem_Title()
+ * @model
+ * @generated
+ */
+ String getTitle();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.AudioVisualItem#getTitle <em>Title</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Title</em>' attribute.
+ * @see #getTitle()
+ * @generated
+ */
+ void setTitle(String value);
+
+ /**
+ * Returns the value of the '<em><b>Minutes Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Minutes Length</em>' attribute.
+ * @see #setMinutesLength(int)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getAudioVisualItem_MinutesLength()
+ * @model required="true"
+ * @generated
+ */
+ int getMinutesLength();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.AudioVisualItem#getMinutesLength <em>Minutes Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Minutes Length</em>' attribute.
+ * @see #getMinutesLength()
+ * @generated
+ */
+ void setMinutesLength(int value);
+
+ /**
+ * Returns the value of the '<em><b>Damaged</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Damaged</em>' attribute.
+ * @see #setDamaged(boolean)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getAudioVisualItem_Damaged()
+ * @model
+ * @generated
+ */
+ boolean isDamaged();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.AudioVisualItem#isDamaged <em>Damaged</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Damaged</em>' attribute.
+ * @see #isDamaged()
+ * @generated
+ */
+ void setDamaged(boolean value);
+
+} // AudioVisualItem
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Book.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Book.java
new file mode 100644
index 000000000..efb51d494
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Book.java
@@ -0,0 +1,156 @@
+/**
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Book</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Book#getTitle <em>Title</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Book#getPages <em>Pages</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Book#getCategory <em>Category</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Book#getAuthor <em>Author</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getBook()
+ * @model
+ * @generated
+ */
+public interface Book extends CirculatingItem
+{
+ /**
+ * Returns the value of the '<em><b>Title</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Title</em>' attribute.
+ * @see #setTitle(String)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getBook_Title()
+ * @model
+ * @generated
+ */
+ String getTitle();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.Book#getTitle <em>Title</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Title</em>' attribute.
+ * @see #getTitle()
+ * @generated
+ */
+ void setTitle(String value);
+
+ /**
+ * Returns the value of the '<em><b>Pages</b></em>' attribute.
+ * The default value is <code>"100"</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pages</em>' attribute.
+ * @see #setPages(int)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getBook_Pages()
+ * @model default="100"
+ * @generated
+ */
+ int getPages();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.Book#getPages <em>Pages</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pages</em>' attribute.
+ * @see #getPages()
+ * @generated
+ */
+ void setPages(int value);
+
+ /**
+ * Returns the value of the '<em><b>Category</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.examples.extlibrary.BookCategory}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Category</em>' attribute.
+ * @see org.eclipse.emf.examples.extlibrary.BookCategory
+ * @see #isSetCategory()
+ * @see #unsetCategory()
+ * @see #setCategory(BookCategory)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getBook_Category()
+ * @model unsettable="true"
+ * @generated
+ */
+ BookCategory getCategory();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.Book#getCategory <em>Category</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Category</em>' attribute.
+ * @see org.eclipse.emf.examples.extlibrary.BookCategory
+ * @see #isSetCategory()
+ * @see #unsetCategory()
+ * @see #getCategory()
+ * @generated
+ */
+ void setCategory(BookCategory value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.examples.extlibrary.Book#getCategory <em>Category</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetCategory()
+ * @see #getCategory()
+ * @see #setCategory(BookCategory)
+ * @generated
+ */
+ void unsetCategory();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.examples.extlibrary.Book#getCategory <em>Category</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Category</em>' attribute is set.
+ * @see #unsetCategory()
+ * @see #getCategory()
+ * @see #setCategory(BookCategory)
+ * @generated
+ */
+ boolean isSetCategory();
+
+ /**
+ * Returns the value of the '<em><b>Author</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.examples.extlibrary.Writer#getBooks <em>Books</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Author</em>' reference.
+ * @see #setAuthor(Writer)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getBook_Author()
+ * @see org.eclipse.emf.examples.extlibrary.Writer#getBooks
+ * @model opposite="books" required="true"
+ * @generated
+ */
+ Writer getAuthor();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.Book#getAuthor <em>Author</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Author</em>' reference.
+ * @see #getAuthor()
+ * @generated
+ */
+ void setAuthor(Writer value);
+
+} // Book
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/BookCategory.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/BookCategory.java
new file mode 100644
index 000000000..239e3fdaa
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/BookCategory.java
@@ -0,0 +1,244 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary;
+
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Book Category</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getBookCategory()
+ * @model
+ * @generated
+ */
+public enum BookCategory implements Enumerator
+{
+ /**
+ * The '<em><b>Mystery</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MYSTERY
+ * @generated
+ * @ordered
+ */
+ MYSTERY_LITERAL(0, "Mystery", "Mystery"),
+ /**
+ * The '<em><b>Science Fiction</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SCIENCE_FICTION
+ * @generated
+ * @ordered
+ */
+ SCIENCE_FICTION_LITERAL(1, "ScienceFiction", "ScienceFiction"),
+ /**
+ * The '<em><b>Biography</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BIOGRAPHY
+ * @generated
+ * @ordered
+ */
+ BIOGRAPHY_LITERAL(2, "Biography", "Biography");
+ /**
+ * The '<em><b>Mystery</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MYSTERY_LITERAL
+ * @model name="Mystery"
+ * @generated
+ * @ordered
+ */
+ public static final int MYSTERY = 0;
+
+ /**
+ * The '<em><b>Science Fiction</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SCIENCE_FICTION_LITERAL
+ * @model name="ScienceFiction"
+ * @generated
+ * @ordered
+ */
+ public static final int SCIENCE_FICTION = 1;
+
+ /**
+ * The '<em><b>Biography</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BIOGRAPHY_LITERAL
+ * @model name="Biography"
+ * @generated
+ * @ordered
+ */
+ public static final int BIOGRAPHY = 2;
+
+ /**
+ * An array of all the '<em><b>Book Category</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final BookCategory[] VALUES_ARRAY =
+ new BookCategory[]
+ {
+ MYSTERY_LITERAL,
+ SCIENCE_FICTION_LITERAL,
+ BIOGRAPHY_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Book Category</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<BookCategory> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Book Category</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BookCategory get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ BookCategory result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Book Category</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BookCategory getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ BookCategory result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Book Category</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BookCategory get(int value)
+ {
+ switch (value)
+ {
+ case MYSTERY: return MYSTERY_LITERAL;
+ case SCIENCE_FICTION: return SCIENCE_FICTION_LITERAL;
+ case BIOGRAPHY: return BIOGRAPHY_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private BookCategory(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+}
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/BookOnTape.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/BookOnTape.java
new file mode 100644
index 000000000..1e7540953
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/BookOnTape.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Book On Tape</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.BookOnTape#getReader <em>Reader</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.BookOnTape#getAuthor <em>Author</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getBookOnTape()
+ * @model
+ * @generated
+ */
+public interface BookOnTape extends AudioVisualItem
+{
+ /**
+ * Returns the value of the '<em><b>Reader</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Reader</em>' reference.
+ * @see #setReader(Person)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getBookOnTape_Reader()
+ * @model
+ * @generated
+ */
+ Person getReader();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.BookOnTape#getReader <em>Reader</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Reader</em>' reference.
+ * @see #getReader()
+ * @generated
+ */
+ void setReader(Person value);
+
+ /**
+ * Returns the value of the '<em><b>Author</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Author</em>' reference.
+ * @see #setAuthor(Writer)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getBookOnTape_Author()
+ * @model
+ * @generated
+ */
+ Writer getAuthor();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.BookOnTape#getAuthor <em>Author</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Author</em>' reference.
+ * @see #getAuthor()
+ * @generated
+ */
+ void setAuthor(Writer value);
+
+} // BookOnTape
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Borrower.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Borrower.java
new file mode 100644
index 000000000..6d1d9a1fd
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Borrower.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary;
+
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Borrower</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Borrower#getBorrowed <em>Borrowed</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getBorrower()
+ * @model
+ * @generated
+ */
+public interface Borrower extends Person
+{
+ /**
+ * Returns the value of the '<em><b>Borrowed</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.examples.extlibrary.Lendable}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.examples.extlibrary.Lendable#getBorrowers <em>Borrowers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Borrowed</em>' reference list.
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getBorrower_Borrowed()
+ * @see org.eclipse.emf.examples.extlibrary.Lendable#getBorrowers
+ * @model opposite="borrowers"
+ * @generated
+ */
+ EList<Lendable> getBorrowed();
+
+} // Borrower
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/CirculatingItem.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/CirculatingItem.java
new file mode 100644
index 000000000..fbb24101c
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/CirculatingItem.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Circulating Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getCirculatingItem()
+ * @model abstract="true"
+ * @generated
+ */
+public interface CirculatingItem extends Item, Lendable
+{
+ // No additional features
+} // CirculatingItem
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/EXTLibraryFactory.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/EXTLibraryFactory.java
new file mode 100644
index 000000000..e8ad93af6
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/EXTLibraryFactory.java
@@ -0,0 +1,116 @@
+/**
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary;
+
+
+import org.eclipse.emf.ecore.EFactory;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage
+ * @generated
+ */
+public interface EXTLibraryFactory extends EFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EXTLibraryFactory eINSTANCE = org.eclipse.emf.examples.extlibrary.impl.EXTLibraryFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Book</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Book</em>'.
+ * @generated
+ */
+ Book createBook();
+
+ /**
+ * Returns a new object of class '<em>Library</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Library</em>'.
+ * @generated
+ */
+ Library createLibrary();
+
+ /**
+ * Returns a new object of class '<em>Writer</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Writer</em>'.
+ * @generated
+ */
+ Writer createWriter();
+
+ /**
+ * Returns a new object of class '<em>Book On Tape</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Book On Tape</em>'.
+ * @generated
+ */
+ BookOnTape createBookOnTape();
+
+ /**
+ * Returns a new object of class '<em>Video Cassette</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Video Cassette</em>'.
+ * @generated
+ */
+ VideoCassette createVideoCassette();
+
+ /**
+ * Returns a new object of class '<em>Borrower</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Borrower</em>'.
+ * @generated
+ */
+ Borrower createBorrower();
+
+ /**
+ * Returns a new object of class '<em>Person</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Person</em>'.
+ * @generated
+ */
+ Person createPerson();
+
+ /**
+ * Returns a new object of class '<em>Employee</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Employee</em>'.
+ * @generated
+ */
+ Employee createEmployee();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ EXTLibraryPackage getEXTLibraryPackage();
+
+} //EXTLibraryFactory
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/EXTLibraryPackage.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/EXTLibraryPackage.java
new file mode 100644
index 000000000..2fb52f919
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/EXTLibraryPackage.java
@@ -0,0 +1,1845 @@
+/**
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary;
+
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface EXTLibraryPackage extends EPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "extlibrary"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///org/eclipse/emf/examples/library/extlibrary.ecore/1.0.0"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "extlib"; //$NON-NLS-1$
+
+ /**
+ * The package content type ID.
+ * <!-- begin-user-doc -->
+ * @since 2.4
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eCONTENT_TYPE = "extendedLibrary"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EXTLibraryPackage eINSTANCE = org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.examples.extlibrary.impl.ItemImpl <em>Item</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.ItemImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getItem()
+ * @generated
+ */
+ int ITEM = 3;
+
+ /**
+ * The feature id for the '<em><b>Publication Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ITEM__PUBLICATION_DATE = 0;
+
+ /**
+ * The number of structural features of the '<em>Item</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ITEM_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.examples.extlibrary.impl.CirculatingItemImpl <em>Circulating Item</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.CirculatingItemImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getCirculatingItem()
+ * @generated
+ */
+ int CIRCULATING_ITEM = 5;
+
+ /**
+ * The feature id for the '<em><b>Publication Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CIRCULATING_ITEM__PUBLICATION_DATE = ITEM__PUBLICATION_DATE;
+
+ /**
+ * The feature id for the '<em><b>Copies</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CIRCULATING_ITEM__COPIES = ITEM_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Borrowers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CIRCULATING_ITEM__BORROWERS = ITEM_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Circulating Item</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CIRCULATING_ITEM_FEATURE_COUNT = ITEM_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.examples.extlibrary.impl.BookImpl <em>Book</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.BookImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getBook()
+ * @generated
+ */
+ int BOOK = 0;
+
+ /**
+ * The feature id for the '<em><b>Publication Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK__PUBLICATION_DATE = CIRCULATING_ITEM__PUBLICATION_DATE;
+
+ /**
+ * The feature id for the '<em><b>Copies</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK__COPIES = CIRCULATING_ITEM__COPIES;
+
+ /**
+ * The feature id for the '<em><b>Borrowers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK__BORROWERS = CIRCULATING_ITEM__BORROWERS;
+
+ /**
+ * The feature id for the '<em><b>Title</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK__TITLE = CIRCULATING_ITEM_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Pages</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK__PAGES = CIRCULATING_ITEM_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Category</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK__CATEGORY = CIRCULATING_ITEM_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Author</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK__AUTHOR = CIRCULATING_ITEM_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Book</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_FEATURE_COUNT = CIRCULATING_ITEM_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.examples.extlibrary.Addressable <em>Addressable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.Addressable
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getAddressable()
+ * @generated
+ */
+ int ADDRESSABLE = 13;
+
+ /**
+ * The feature id for the '<em><b>Address</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDRESSABLE__ADDRESS = 0;
+
+ /**
+ * The number of structural features of the '<em>Addressable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDRESSABLE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.examples.extlibrary.impl.LibraryImpl <em>Library</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.LibraryImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getLibrary()
+ * @generated
+ */
+ int LIBRARY = 1;
+
+ /**
+ * The feature id for the '<em><b>Address</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__ADDRESS = ADDRESSABLE__ADDRESS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__NAME = ADDRESSABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Writers</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__WRITERS = ADDRESSABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Employees</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__EMPLOYEES = ADDRESSABLE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Borrowers</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__BORROWERS = ADDRESSABLE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Stock</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__STOCK = ADDRESSABLE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Books</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__BOOKS = ADDRESSABLE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Branches</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__BRANCHES = ADDRESSABLE_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Parent Branch</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__PARENT_BRANCH = ADDRESSABLE_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>People</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__PEOPLE = ADDRESSABLE_FEATURE_COUNT + 8;
+
+ /**
+ * The number of structural features of the '<em>Library</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY_FEATURE_COUNT = ADDRESSABLE_FEATURE_COUNT + 9;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.examples.extlibrary.impl.PersonImpl <em>Person</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.PersonImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getPerson()
+ * @generated
+ */
+ int PERSON = 11;
+
+ /**
+ * The feature id for the '<em><b>Address</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERSON__ADDRESS = ADDRESSABLE__ADDRESS;
+
+ /**
+ * The feature id for the '<em><b>First Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERSON__FIRST_NAME = ADDRESSABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Last Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERSON__LAST_NAME = ADDRESSABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Person</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERSON_FEATURE_COUNT = ADDRESSABLE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.examples.extlibrary.impl.WriterImpl <em>Writer</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.WriterImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getWriter()
+ * @generated
+ */
+ int WRITER = 2;
+
+ /**
+ * The feature id for the '<em><b>Address</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WRITER__ADDRESS = PERSON__ADDRESS;
+
+ /**
+ * The feature id for the '<em><b>First Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WRITER__FIRST_NAME = PERSON__FIRST_NAME;
+
+ /**
+ * The feature id for the '<em><b>Last Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WRITER__LAST_NAME = PERSON__LAST_NAME;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WRITER__NAME = PERSON_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Books</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WRITER__BOOKS = PERSON_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Writer</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WRITER_FEATURE_COUNT = PERSON_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.examples.extlibrary.Lendable <em>Lendable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.Lendable
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getLendable()
+ * @generated
+ */
+ int LENDABLE = 4;
+
+ /**
+ * The feature id for the '<em><b>Copies</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LENDABLE__COPIES = 0;
+
+ /**
+ * The feature id for the '<em><b>Borrowers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LENDABLE__BORROWERS = 1;
+
+ /**
+ * The number of structural features of the '<em>Lendable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LENDABLE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.examples.extlibrary.impl.PeriodicalImpl <em>Periodical</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.PeriodicalImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getPeriodical()
+ * @generated
+ */
+ int PERIODICAL = 6;
+
+ /**
+ * The feature id for the '<em><b>Publication Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERIODICAL__PUBLICATION_DATE = ITEM__PUBLICATION_DATE;
+
+ /**
+ * The feature id for the '<em><b>Title</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERIODICAL__TITLE = ITEM_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Issues Per Year</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERIODICAL__ISSUES_PER_YEAR = ITEM_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Periodical</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERIODICAL_FEATURE_COUNT = ITEM_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.examples.extlibrary.impl.AudioVisualItemImpl <em>Audio Visual Item</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.AudioVisualItemImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getAudioVisualItem()
+ * @generated
+ */
+ int AUDIO_VISUAL_ITEM = 7;
+
+ /**
+ * The feature id for the '<em><b>Publication Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUDIO_VISUAL_ITEM__PUBLICATION_DATE = CIRCULATING_ITEM__PUBLICATION_DATE;
+
+ /**
+ * The feature id for the '<em><b>Copies</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUDIO_VISUAL_ITEM__COPIES = CIRCULATING_ITEM__COPIES;
+
+ /**
+ * The feature id for the '<em><b>Borrowers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUDIO_VISUAL_ITEM__BORROWERS = CIRCULATING_ITEM__BORROWERS;
+
+ /**
+ * The feature id for the '<em><b>Title</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUDIO_VISUAL_ITEM__TITLE = CIRCULATING_ITEM_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Minutes Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUDIO_VISUAL_ITEM__MINUTES_LENGTH = CIRCULATING_ITEM_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Damaged</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUDIO_VISUAL_ITEM__DAMAGED = CIRCULATING_ITEM_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Audio Visual Item</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUDIO_VISUAL_ITEM_FEATURE_COUNT = CIRCULATING_ITEM_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.examples.extlibrary.impl.BookOnTapeImpl <em>Book On Tape</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.BookOnTapeImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getBookOnTape()
+ * @generated
+ */
+ int BOOK_ON_TAPE = 8;
+
+ /**
+ * The feature id for the '<em><b>Publication Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_ON_TAPE__PUBLICATION_DATE = AUDIO_VISUAL_ITEM__PUBLICATION_DATE;
+
+ /**
+ * The feature id for the '<em><b>Copies</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_ON_TAPE__COPIES = AUDIO_VISUAL_ITEM__COPIES;
+
+ /**
+ * The feature id for the '<em><b>Borrowers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_ON_TAPE__BORROWERS = AUDIO_VISUAL_ITEM__BORROWERS;
+
+ /**
+ * The feature id for the '<em><b>Title</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_ON_TAPE__TITLE = AUDIO_VISUAL_ITEM__TITLE;
+
+ /**
+ * The feature id for the '<em><b>Minutes Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_ON_TAPE__MINUTES_LENGTH = AUDIO_VISUAL_ITEM__MINUTES_LENGTH;
+
+ /**
+ * The feature id for the '<em><b>Damaged</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_ON_TAPE__DAMAGED = AUDIO_VISUAL_ITEM__DAMAGED;
+
+ /**
+ * The feature id for the '<em><b>Reader</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_ON_TAPE__READER = AUDIO_VISUAL_ITEM_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Author</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_ON_TAPE__AUTHOR = AUDIO_VISUAL_ITEM_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Book On Tape</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_ON_TAPE_FEATURE_COUNT = AUDIO_VISUAL_ITEM_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.examples.extlibrary.impl.VideoCassetteImpl <em>Video Cassette</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.VideoCassetteImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getVideoCassette()
+ * @generated
+ */
+ int VIDEO_CASSETTE = 9;
+
+ /**
+ * The feature id for the '<em><b>Publication Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIDEO_CASSETTE__PUBLICATION_DATE = AUDIO_VISUAL_ITEM__PUBLICATION_DATE;
+
+ /**
+ * The feature id for the '<em><b>Copies</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIDEO_CASSETTE__COPIES = AUDIO_VISUAL_ITEM__COPIES;
+
+ /**
+ * The feature id for the '<em><b>Borrowers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIDEO_CASSETTE__BORROWERS = AUDIO_VISUAL_ITEM__BORROWERS;
+
+ /**
+ * The feature id for the '<em><b>Title</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIDEO_CASSETTE__TITLE = AUDIO_VISUAL_ITEM__TITLE;
+
+ /**
+ * The feature id for the '<em><b>Minutes Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIDEO_CASSETTE__MINUTES_LENGTH = AUDIO_VISUAL_ITEM__MINUTES_LENGTH;
+
+ /**
+ * The feature id for the '<em><b>Damaged</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIDEO_CASSETTE__DAMAGED = AUDIO_VISUAL_ITEM__DAMAGED;
+
+ /**
+ * The feature id for the '<em><b>Cast</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIDEO_CASSETTE__CAST = AUDIO_VISUAL_ITEM_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Video Cassette</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIDEO_CASSETTE_FEATURE_COUNT = AUDIO_VISUAL_ITEM_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.examples.extlibrary.impl.BorrowerImpl <em>Borrower</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.BorrowerImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getBorrower()
+ * @generated
+ */
+ int BORROWER = 10;
+
+ /**
+ * The feature id for the '<em><b>Address</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BORROWER__ADDRESS = PERSON__ADDRESS;
+
+ /**
+ * The feature id for the '<em><b>First Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BORROWER__FIRST_NAME = PERSON__FIRST_NAME;
+
+ /**
+ * The feature id for the '<em><b>Last Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BORROWER__LAST_NAME = PERSON__LAST_NAME;
+
+ /**
+ * The feature id for the '<em><b>Borrowed</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BORROWER__BORROWED = PERSON_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Borrower</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BORROWER_FEATURE_COUNT = PERSON_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.examples.extlibrary.impl.EmployeeImpl <em>Employee</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.EmployeeImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getEmployee()
+ * @generated
+ */
+ int EMPLOYEE = 12;
+
+ /**
+ * The feature id for the '<em><b>Address</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMPLOYEE__ADDRESS = PERSON__ADDRESS;
+
+ /**
+ * The feature id for the '<em><b>First Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMPLOYEE__FIRST_NAME = PERSON__FIRST_NAME;
+
+ /**
+ * The feature id for the '<em><b>Last Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMPLOYEE__LAST_NAME = PERSON__LAST_NAME;
+
+ /**
+ * The feature id for the '<em><b>Manager</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMPLOYEE__MANAGER = PERSON_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Employee</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMPLOYEE_FEATURE_COUNT = PERSON_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.examples.extlibrary.BookCategory <em>Book Category</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.BookCategory
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getBookCategory()
+ * @generated
+ */
+ int BOOK_CATEGORY = 14;
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.examples.extlibrary.Book <em>Book</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Book</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Book
+ * @generated
+ */
+ EClass getBook();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.examples.extlibrary.Book#getTitle <em>Title</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Title</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Book#getTitle()
+ * @see #getBook()
+ * @generated
+ */
+ EAttribute getBook_Title();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.examples.extlibrary.Book#getPages <em>Pages</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Pages</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Book#getPages()
+ * @see #getBook()
+ * @generated
+ */
+ EAttribute getBook_Pages();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.examples.extlibrary.Book#getCategory <em>Category</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Category</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Book#getCategory()
+ * @see #getBook()
+ * @generated
+ */
+ EAttribute getBook_Category();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.examples.extlibrary.Book#getAuthor <em>Author</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Author</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Book#getAuthor()
+ * @see #getBook()
+ * @generated
+ */
+ EReference getBook_Author();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.examples.extlibrary.Library <em>Library</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Library</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Library
+ * @generated
+ */
+ EClass getLibrary();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.examples.extlibrary.Library#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Library#getName()
+ * @see #getLibrary()
+ * @generated
+ */
+ EAttribute getLibrary_Name();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.examples.extlibrary.Library#getWriters <em>Writers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Writers</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Library#getWriters()
+ * @see #getLibrary()
+ * @generated
+ */
+ EReference getLibrary_Writers();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.examples.extlibrary.Library#getEmployees <em>Employees</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Employees</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Library#getEmployees()
+ * @see #getLibrary()
+ * @generated
+ */
+ EReference getLibrary_Employees();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.examples.extlibrary.Library#getBorrowers <em>Borrowers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Borrowers</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Library#getBorrowers()
+ * @see #getLibrary()
+ * @generated
+ */
+ EReference getLibrary_Borrowers();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.examples.extlibrary.Library#getStock <em>Stock</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Stock</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Library#getStock()
+ * @see #getLibrary()
+ * @generated
+ */
+ EReference getLibrary_Stock();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.examples.extlibrary.Library#getBooks <em>Books</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Books</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Library#getBooks()
+ * @see #getLibrary()
+ * @generated
+ */
+ EReference getLibrary_Books();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.examples.extlibrary.Library#getBranches <em>Branches</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Branches</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Library#getBranches()
+ * @see #getLibrary()
+ * @generated
+ */
+ EReference getLibrary_Branches();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.emf.examples.extlibrary.Library#getParentBranch <em>Parent Branch</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Parent Branch</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Library#getParentBranch()
+ * @see #getLibrary()
+ * @generated
+ */
+ EReference getLibrary_ParentBranch();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.emf.examples.extlibrary.Library#getPeople <em>People</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>People</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Library#getPeople()
+ * @see #getLibrary()
+ * @generated
+ */
+ EAttribute getLibrary_People();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.examples.extlibrary.Writer <em>Writer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Writer</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Writer
+ * @generated
+ */
+ EClass getWriter();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.examples.extlibrary.Writer#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Writer#getName()
+ * @see #getWriter()
+ * @generated
+ */
+ EAttribute getWriter_Name();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.examples.extlibrary.Writer#getBooks <em>Books</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Books</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Writer#getBooks()
+ * @see #getWriter()
+ * @generated
+ */
+ EReference getWriter_Books();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.examples.extlibrary.Item <em>Item</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Item</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Item
+ * @generated
+ */
+ EClass getItem();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.examples.extlibrary.Item#getPublicationDate <em>Publication Date</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Publication Date</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Item#getPublicationDate()
+ * @see #getItem()
+ * @generated
+ */
+ EAttribute getItem_PublicationDate();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.examples.extlibrary.Lendable <em>Lendable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Lendable</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Lendable
+ * @generated
+ */
+ EClass getLendable();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.examples.extlibrary.Lendable#getCopies <em>Copies</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Copies</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Lendable#getCopies()
+ * @see #getLendable()
+ * @generated
+ */
+ EAttribute getLendable_Copies();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.examples.extlibrary.Lendable#getBorrowers <em>Borrowers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Borrowers</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Lendable#getBorrowers()
+ * @see #getLendable()
+ * @generated
+ */
+ EReference getLendable_Borrowers();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.examples.extlibrary.CirculatingItem <em>Circulating Item</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Circulating Item</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.CirculatingItem
+ * @generated
+ */
+ EClass getCirculatingItem();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.examples.extlibrary.Periodical <em>Periodical</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Periodical</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Periodical
+ * @generated
+ */
+ EClass getPeriodical();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.examples.extlibrary.Periodical#getTitle <em>Title</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Title</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Periodical#getTitle()
+ * @see #getPeriodical()
+ * @generated
+ */
+ EAttribute getPeriodical_Title();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.examples.extlibrary.Periodical#getIssuesPerYear <em>Issues Per Year</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Issues Per Year</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Periodical#getIssuesPerYear()
+ * @see #getPeriodical()
+ * @generated
+ */
+ EAttribute getPeriodical_IssuesPerYear();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.examples.extlibrary.AudioVisualItem <em>Audio Visual Item</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Audio Visual Item</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.AudioVisualItem
+ * @generated
+ */
+ EClass getAudioVisualItem();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.examples.extlibrary.AudioVisualItem#getTitle <em>Title</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Title</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.AudioVisualItem#getTitle()
+ * @see #getAudioVisualItem()
+ * @generated
+ */
+ EAttribute getAudioVisualItem_Title();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.examples.extlibrary.AudioVisualItem#getMinutesLength <em>Minutes Length</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Minutes Length</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.AudioVisualItem#getMinutesLength()
+ * @see #getAudioVisualItem()
+ * @generated
+ */
+ EAttribute getAudioVisualItem_MinutesLength();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.examples.extlibrary.AudioVisualItem#isDamaged <em>Damaged</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Damaged</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.AudioVisualItem#isDamaged()
+ * @see #getAudioVisualItem()
+ * @generated
+ */
+ EAttribute getAudioVisualItem_Damaged();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.examples.extlibrary.BookOnTape <em>Book On Tape</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Book On Tape</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.BookOnTape
+ * @generated
+ */
+ EClass getBookOnTape();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.examples.extlibrary.BookOnTape#getReader <em>Reader</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Reader</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.BookOnTape#getReader()
+ * @see #getBookOnTape()
+ * @generated
+ */
+ EReference getBookOnTape_Reader();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.examples.extlibrary.BookOnTape#getAuthor <em>Author</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Author</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.BookOnTape#getAuthor()
+ * @see #getBookOnTape()
+ * @generated
+ */
+ EReference getBookOnTape_Author();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.examples.extlibrary.VideoCassette <em>Video Cassette</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Video Cassette</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.VideoCassette
+ * @generated
+ */
+ EClass getVideoCassette();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.examples.extlibrary.VideoCassette#getCast <em>Cast</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Cast</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.VideoCassette#getCast()
+ * @see #getVideoCassette()
+ * @generated
+ */
+ EReference getVideoCassette_Cast();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.examples.extlibrary.Borrower <em>Borrower</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Borrower</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Borrower
+ * @generated
+ */
+ EClass getBorrower();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.examples.extlibrary.Borrower#getBorrowed <em>Borrowed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Borrowed</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Borrower#getBorrowed()
+ * @see #getBorrower()
+ * @generated
+ */
+ EReference getBorrower_Borrowed();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.examples.extlibrary.Person <em>Person</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Person</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Person
+ * @generated
+ */
+ EClass getPerson();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.examples.extlibrary.Person#getFirstName <em>First Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>First Name</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Person#getFirstName()
+ * @see #getPerson()
+ * @generated
+ */
+ EAttribute getPerson_FirstName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.examples.extlibrary.Person#getLastName <em>Last Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Last Name</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Person#getLastName()
+ * @see #getPerson()
+ * @generated
+ */
+ EAttribute getPerson_LastName();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.examples.extlibrary.Employee <em>Employee</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Employee</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Employee
+ * @generated
+ */
+ EClass getEmployee();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.examples.extlibrary.Employee#getManager <em>Manager</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Manager</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Employee#getManager()
+ * @see #getEmployee()
+ * @generated
+ */
+ EReference getEmployee_Manager();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.examples.extlibrary.Addressable <em>Addressable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Addressable</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Addressable
+ * @generated
+ */
+ EClass getAddressable();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.examples.extlibrary.Addressable#getAddress <em>Address</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Address</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.Addressable#getAddress()
+ * @see #getAddressable()
+ * @generated
+ */
+ EAttribute getAddressable_Address();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.emf.examples.extlibrary.BookCategory <em>Book Category</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Book Category</em>'.
+ * @see org.eclipse.emf.examples.extlibrary.BookCategory
+ * @generated
+ */
+ EEnum getBookCategory();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ EXTLibraryFactory getEXTLibraryFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.examples.extlibrary.impl.BookImpl <em>Book</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.BookImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getBook()
+ * @generated
+ */
+ EClass BOOK = eINSTANCE.getBook();
+
+ /**
+ * The meta object literal for the '<em><b>Title</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BOOK__TITLE = eINSTANCE.getBook_Title();
+
+ /**
+ * The meta object literal for the '<em><b>Pages</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BOOK__PAGES = eINSTANCE.getBook_Pages();
+
+ /**
+ * The meta object literal for the '<em><b>Category</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BOOK__CATEGORY = eINSTANCE.getBook_Category();
+
+ /**
+ * The meta object literal for the '<em><b>Author</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BOOK__AUTHOR = eINSTANCE.getBook_Author();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.examples.extlibrary.impl.LibraryImpl <em>Library</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.LibraryImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getLibrary()
+ * @generated
+ */
+ EClass LIBRARY = eINSTANCE.getLibrary();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LIBRARY__NAME = eINSTANCE.getLibrary_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Writers</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LIBRARY__WRITERS = eINSTANCE.getLibrary_Writers();
+
+ /**
+ * The meta object literal for the '<em><b>Employees</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LIBRARY__EMPLOYEES = eINSTANCE.getLibrary_Employees();
+
+ /**
+ * The meta object literal for the '<em><b>Borrowers</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LIBRARY__BORROWERS = eINSTANCE.getLibrary_Borrowers();
+
+ /**
+ * The meta object literal for the '<em><b>Stock</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LIBRARY__STOCK = eINSTANCE.getLibrary_Stock();
+
+ /**
+ * The meta object literal for the '<em><b>Books</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LIBRARY__BOOKS = eINSTANCE.getLibrary_Books();
+
+ /**
+ * The meta object literal for the '<em><b>Branches</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LIBRARY__BRANCHES = eINSTANCE.getLibrary_Branches();
+
+ /**
+ * The meta object literal for the '<em><b>Parent Branch</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LIBRARY__PARENT_BRANCH = eINSTANCE.getLibrary_ParentBranch();
+
+ /**
+ * The meta object literal for the '<em><b>People</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LIBRARY__PEOPLE = eINSTANCE.getLibrary_People();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.examples.extlibrary.impl.WriterImpl <em>Writer</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.WriterImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getWriter()
+ * @generated
+ */
+ EClass WRITER = eINSTANCE.getWriter();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute WRITER__NAME = eINSTANCE.getWriter_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Books</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference WRITER__BOOKS = eINSTANCE.getWriter_Books();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.examples.extlibrary.impl.ItemImpl <em>Item</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.ItemImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getItem()
+ * @generated
+ */
+ EClass ITEM = eINSTANCE.getItem();
+
+ /**
+ * The meta object literal for the '<em><b>Publication Date</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ITEM__PUBLICATION_DATE = eINSTANCE.getItem_PublicationDate();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.examples.extlibrary.Lendable <em>Lendable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.Lendable
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getLendable()
+ * @generated
+ */
+ EClass LENDABLE = eINSTANCE.getLendable();
+
+ /**
+ * The meta object literal for the '<em><b>Copies</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LENDABLE__COPIES = eINSTANCE.getLendable_Copies();
+
+ /**
+ * The meta object literal for the '<em><b>Borrowers</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LENDABLE__BORROWERS = eINSTANCE.getLendable_Borrowers();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.examples.extlibrary.impl.CirculatingItemImpl <em>Circulating Item</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.CirculatingItemImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getCirculatingItem()
+ * @generated
+ */
+ EClass CIRCULATING_ITEM = eINSTANCE.getCirculatingItem();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.examples.extlibrary.impl.PeriodicalImpl <em>Periodical</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.PeriodicalImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getPeriodical()
+ * @generated
+ */
+ EClass PERIODICAL = eINSTANCE.getPeriodical();
+
+ /**
+ * The meta object literal for the '<em><b>Title</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PERIODICAL__TITLE = eINSTANCE.getPeriodical_Title();
+
+ /**
+ * The meta object literal for the '<em><b>Issues Per Year</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PERIODICAL__ISSUES_PER_YEAR = eINSTANCE.getPeriodical_IssuesPerYear();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.examples.extlibrary.impl.AudioVisualItemImpl <em>Audio Visual Item</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.AudioVisualItemImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getAudioVisualItem()
+ * @generated
+ */
+ EClass AUDIO_VISUAL_ITEM = eINSTANCE.getAudioVisualItem();
+
+ /**
+ * The meta object literal for the '<em><b>Title</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute AUDIO_VISUAL_ITEM__TITLE = eINSTANCE.getAudioVisualItem_Title();
+
+ /**
+ * The meta object literal for the '<em><b>Minutes Length</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute AUDIO_VISUAL_ITEM__MINUTES_LENGTH = eINSTANCE.getAudioVisualItem_MinutesLength();
+
+ /**
+ * The meta object literal for the '<em><b>Damaged</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute AUDIO_VISUAL_ITEM__DAMAGED = eINSTANCE.getAudioVisualItem_Damaged();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.examples.extlibrary.impl.BookOnTapeImpl <em>Book On Tape</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.BookOnTapeImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getBookOnTape()
+ * @generated
+ */
+ EClass BOOK_ON_TAPE = eINSTANCE.getBookOnTape();
+
+ /**
+ * The meta object literal for the '<em><b>Reader</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BOOK_ON_TAPE__READER = eINSTANCE.getBookOnTape_Reader();
+
+ /**
+ * The meta object literal for the '<em><b>Author</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BOOK_ON_TAPE__AUTHOR = eINSTANCE.getBookOnTape_Author();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.examples.extlibrary.impl.VideoCassetteImpl <em>Video Cassette</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.VideoCassetteImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getVideoCassette()
+ * @generated
+ */
+ EClass VIDEO_CASSETTE = eINSTANCE.getVideoCassette();
+
+ /**
+ * The meta object literal for the '<em><b>Cast</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VIDEO_CASSETTE__CAST = eINSTANCE.getVideoCassette_Cast();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.examples.extlibrary.impl.BorrowerImpl <em>Borrower</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.BorrowerImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getBorrower()
+ * @generated
+ */
+ EClass BORROWER = eINSTANCE.getBorrower();
+
+ /**
+ * The meta object literal for the '<em><b>Borrowed</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BORROWER__BORROWED = eINSTANCE.getBorrower_Borrowed();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.examples.extlibrary.impl.PersonImpl <em>Person</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.PersonImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getPerson()
+ * @generated
+ */
+ EClass PERSON = eINSTANCE.getPerson();
+
+ /**
+ * The meta object literal for the '<em><b>First Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PERSON__FIRST_NAME = eINSTANCE.getPerson_FirstName();
+
+ /**
+ * The meta object literal for the '<em><b>Last Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PERSON__LAST_NAME = eINSTANCE.getPerson_LastName();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.examples.extlibrary.impl.EmployeeImpl <em>Employee</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.impl.EmployeeImpl
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getEmployee()
+ * @generated
+ */
+ EClass EMPLOYEE = eINSTANCE.getEmployee();
+
+ /**
+ * The meta object literal for the '<em><b>Manager</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EMPLOYEE__MANAGER = eINSTANCE.getEmployee_Manager();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.examples.extlibrary.Addressable <em>Addressable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.Addressable
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getAddressable()
+ * @generated
+ */
+ EClass ADDRESSABLE = eINSTANCE.getAddressable();
+
+ /**
+ * The meta object literal for the '<em><b>Address</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ADDRESSABLE__ADDRESS = eINSTANCE.getAddressable_Address();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.examples.extlibrary.BookCategory <em>Book Category</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.BookCategory
+ * @see org.eclipse.emf.examples.extlibrary.impl.EXTLibraryPackageImpl#getBookCategory()
+ * @generated
+ */
+ EEnum BOOK_CATEGORY = eINSTANCE.getBookCategory();
+
+ }
+
+} //EXTLibraryPackage
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Employee.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Employee.java
new file mode 100644
index 000000000..1ef809fae
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Employee.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Employee</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Employee#getManager <em>Manager</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getEmployee()
+ * @model
+ * @generated
+ */
+public interface Employee extends Person
+{
+ /**
+ * Returns the value of the '<em><b>Manager</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Manager</em>' reference.
+ * @see #setManager(Employee)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getEmployee_Manager()
+ * @model
+ * @generated
+ */
+ Employee getManager();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.Employee#getManager <em>Manager</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Manager</em>' reference.
+ * @see #getManager()
+ * @generated
+ */
+ void setManager(Employee value);
+
+} // Employee
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Item.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Item.java
new file mode 100644
index 000000000..d5e67e9f1
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Item.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary;
+
+
+import java.util.Date;
+
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Item#getPublicationDate <em>Publication Date</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getItem()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Item extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Publication Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Publication Date</em>' attribute.
+ * @see #setPublicationDate(Date)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getItem_PublicationDate()
+ * @model
+ * @generated
+ */
+ Date getPublicationDate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.Item#getPublicationDate <em>Publication Date</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Publication Date</em>' attribute.
+ * @see #getPublicationDate()
+ * @generated
+ */
+ void setPublicationDate(Date value);
+
+} // Item
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Lendable.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Lendable.java
new file mode 100644
index 000000000..95a43a08a
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Lendable.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary;
+
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Lendable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Lendable#getCopies <em>Copies</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Lendable#getBorrowers <em>Borrowers</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getLendable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface Lendable extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Copies</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Copies</em>' attribute.
+ * @see #setCopies(int)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getLendable_Copies()
+ * @model required="true"
+ * @generated
+ */
+ int getCopies();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.Lendable#getCopies <em>Copies</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Copies</em>' attribute.
+ * @see #getCopies()
+ * @generated
+ */
+ void setCopies(int value);
+
+ /**
+ * Returns the value of the '<em><b>Borrowers</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.examples.extlibrary.Borrower}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.examples.extlibrary.Borrower#getBorrowed <em>Borrowed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Borrowers</em>' reference list.
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getLendable_Borrowers()
+ * @see org.eclipse.emf.examples.extlibrary.Borrower#getBorrowed
+ * @model opposite="borrowed" ordered="false"
+ * @generated
+ */
+ EList<Borrower> getBorrowers();
+
+} // Lendable
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Library.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Library.java
new file mode 100644
index 000000000..380f36740
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Library.java
@@ -0,0 +1,181 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary;
+
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.util.FeatureMap;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Library</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Library#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Library#getWriters <em>Writers</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Library#getEmployees <em>Employees</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Library#getBorrowers <em>Borrowers</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Library#getStock <em>Stock</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Library#getBooks <em>Books</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Library#getBranches <em>Branches</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Library#getParentBranch <em>Parent Branch</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Library#getPeople <em>People</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getLibrary()
+ * @model
+ * @generated
+ */
+public interface Library extends Addressable
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getLibrary_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.Library#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Writers</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.examples.extlibrary.Writer}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Writers</em>' containment reference list.
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getLibrary_Writers()
+ * @model containment="true" transient="true" volatile="true" derived="true"
+ * extendedMetaData="group='#people'"
+ * @generated
+ */
+ EList<Writer> getWriters();
+
+ /**
+ * Returns the value of the '<em><b>Employees</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.examples.extlibrary.Employee}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Employees</em>' containment reference list.
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getLibrary_Employees()
+ * @model containment="true" transient="true" volatile="true" derived="true"
+ * extendedMetaData="group='#people'"
+ * @generated
+ */
+ EList<Employee> getEmployees();
+
+ /**
+ * Returns the value of the '<em><b>Borrowers</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.examples.extlibrary.Borrower}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Borrowers</em>' containment reference list.
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getLibrary_Borrowers()
+ * @model containment="true" transient="true" volatile="true" derived="true"
+ * extendedMetaData="group='#people'"
+ * @generated
+ */
+ EList<Borrower> getBorrowers();
+
+ /**
+ * Returns the value of the '<em><b>Stock</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.examples.extlibrary.Item}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stock</em>' containment reference list.
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getLibrary_Stock()
+ * @model containment="true" ordered="false"
+ * @generated
+ */
+ EList<Item> getStock();
+
+ /**
+ * Returns the value of the '<em><b>Books</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.examples.extlibrary.Book}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Books</em>' reference list.
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getLibrary_Books()
+ * @model transient="true" derived="true" ordered="false"
+ * @generated
+ */
+ EList<Book> getBooks();
+
+ /**
+ * Returns the value of the '<em><b>Branches</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.examples.extlibrary.Library}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.examples.extlibrary.Library#getParentBranch <em>Parent Branch</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Branches</em>' containment reference list.
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getLibrary_Branches()
+ * @see org.eclipse.emf.examples.extlibrary.Library#getParentBranch
+ * @model opposite="parentBranch" containment="true" resolveProxies="true"
+ * @generated
+ */
+ EList<Library> getBranches();
+
+ /**
+ * Returns the value of the '<em><b>Parent Branch</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.examples.extlibrary.Library#getBranches <em>Branches</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parent Branch</em>' container reference.
+ * @see #setParentBranch(Library)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getLibrary_ParentBranch()
+ * @see org.eclipse.emf.examples.extlibrary.Library#getBranches
+ * @model opposite="branches" transient="false"
+ * @generated
+ */
+ Library getParentBranch();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.Library#getParentBranch <em>Parent Branch</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Parent Branch</em>' container reference.
+ * @see #getParentBranch()
+ * @generated
+ */
+ void setParentBranch(Library value);
+
+ /**
+ * Returns the value of the '<em><b>People</b></em>' attribute list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>People</em>' attribute list.
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getLibrary_People()
+ * @model dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
+ * extendedMetaData="kind='group'"
+ * @generated
+ */
+ FeatureMap getPeople();
+
+} // Library
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Periodical.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Periodical.java
new file mode 100644
index 000000000..468292e31
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Periodical.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Periodical</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Periodical#getTitle <em>Title</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Periodical#getIssuesPerYear <em>Issues Per Year</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getPeriodical()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Periodical extends Item
+{
+ /**
+ * Returns the value of the '<em><b>Title</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Title</em>' attribute.
+ * @see #setTitle(String)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getPeriodical_Title()
+ * @model
+ * @generated
+ */
+ String getTitle();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.Periodical#getTitle <em>Title</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Title</em>' attribute.
+ * @see #getTitle()
+ * @generated
+ */
+ void setTitle(String value);
+
+ /**
+ * Returns the value of the '<em><b>Issues Per Year</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Issues Per Year</em>' attribute.
+ * @see #setIssuesPerYear(int)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getPeriodical_IssuesPerYear()
+ * @model required="true"
+ * @generated
+ */
+ int getIssuesPerYear();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.Periodical#getIssuesPerYear <em>Issues Per Year</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Issues Per Year</em>' attribute.
+ * @see #getIssuesPerYear()
+ * @generated
+ */
+ void setIssuesPerYear(int value);
+
+} // Periodical
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Person.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Person.java
new file mode 100644
index 000000000..71b910a47
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Person.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Person</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Person#getFirstName <em>First Name</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Person#getLastName <em>Last Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getPerson()
+ * @model
+ * @generated
+ */
+public interface Person extends Addressable
+{
+ /**
+ * Returns the value of the '<em><b>First Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>First Name</em>' attribute.
+ * @see #setFirstName(String)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getPerson_FirstName()
+ * @model required="true"
+ * @generated
+ */
+ String getFirstName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.Person#getFirstName <em>First Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>First Name</em>' attribute.
+ * @see #getFirstName()
+ * @generated
+ */
+ void setFirstName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Last Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Last Name</em>' attribute.
+ * @see #setLastName(String)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getPerson_LastName()
+ * @model required="true"
+ * @generated
+ */
+ String getLastName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.Person#getLastName <em>Last Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Last Name</em>' attribute.
+ * @see #getLastName()
+ * @generated
+ */
+ void setLastName(String value);
+
+} // Person
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/VideoCassette.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/VideoCassette.java
new file mode 100644
index 000000000..9dcb8fb03
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/VideoCassette.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary;
+
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Video Cassette</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.VideoCassette#getCast <em>Cast</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getVideoCassette()
+ * @model
+ * @generated
+ */
+public interface VideoCassette extends AudioVisualItem
+{
+ /**
+ * Returns the value of the '<em><b>Cast</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.examples.extlibrary.Person}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cast</em>' reference list.
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getVideoCassette_Cast()
+ * @model
+ * @generated
+ */
+ EList<Person> getCast();
+
+} // VideoCassette
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Writer.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Writer.java
new file mode 100644
index 000000000..39851705f
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/Writer.java
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary;
+
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Writer</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Writer#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.Writer#getBooks <em>Books</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getWriter()
+ * @model
+ * @generated
+ */
+public interface Writer extends Person
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getWriter_Name()
+ * @model transient="true" volatile="true"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.examples.extlibrary.Writer#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Books</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.examples.extlibrary.Book}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.examples.extlibrary.Book#getAuthor <em>Author</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Books</em>' reference list.
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#getWriter_Books()
+ * @see org.eclipse.emf.examples.extlibrary.Book#getAuthor
+ * @model opposite="author"
+ * @generated
+ */
+ EList<Book> getBooks();
+
+} // Writer
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/AudioVisualItemImpl.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/AudioVisualItemImpl.java
new file mode 100644
index 000000000..825ab0b9c
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/AudioVisualItemImpl.java
@@ -0,0 +1,297 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.examples.extlibrary.AudioVisualItem;
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Audo Visual Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.AudioVisualItemImpl#getTitle <em>Title</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.AudioVisualItemImpl#getMinutesLength <em>Minutes Length</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.AudioVisualItemImpl#isDamaged <em>Damaged</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class AudioVisualItemImpl extends CirculatingItemImpl implements AudioVisualItem
+{
+ /**
+ * The default value of the '{@link #getTitle() <em>Title</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTitle()
+ * @generated
+ * @ordered
+ */
+ protected static final String TITLE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTitle() <em>Title</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTitle()
+ * @generated
+ * @ordered
+ */
+ protected String title = TITLE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getMinutesLength() <em>Minutes Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMinutesLength()
+ * @generated
+ * @ordered
+ */
+ protected static final int MINUTES_LENGTH_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getMinutesLength() <em>Minutes Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMinutesLength()
+ * @generated
+ * @ordered
+ */
+ protected int minutesLength = MINUTES_LENGTH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isDamaged() <em>Damaged</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDamaged()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean DAMAGED_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isDamaged() <em>Damaged</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDamaged()
+ * @generated
+ * @ordered
+ */
+ protected static final int DAMAGED_EFLAG = 1 << 8;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AudioVisualItemImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.AUDIO_VISUAL_ITEM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTitle()
+ {
+ return title;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTitle(String newTitle)
+ {
+ String oldTitle = title;
+ title = newTitle;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.AUDIO_VISUAL_ITEM__TITLE, oldTitle, title));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getMinutesLength()
+ {
+ return minutesLength;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMinutesLength(int newMinutesLength)
+ {
+ int oldMinutesLength = minutesLength;
+ minutesLength = newMinutesLength;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.AUDIO_VISUAL_ITEM__MINUTES_LENGTH, oldMinutesLength, minutesLength));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDamaged()
+ {
+ return (eFlags & DAMAGED_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDamaged(boolean newDamaged)
+ {
+ boolean oldDamaged = (eFlags & DAMAGED_EFLAG) != 0;
+ if (newDamaged) eFlags |= DAMAGED_EFLAG; else eFlags &= ~DAMAGED_EFLAG;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.AUDIO_VISUAL_ITEM__DAMAGED, oldDamaged, newDamaged));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__TITLE:
+ return getTitle();
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__MINUTES_LENGTH:
+ return getMinutesLength();
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__DAMAGED:
+ return isDamaged();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__TITLE:
+ setTitle((String)newValue);
+ return;
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__MINUTES_LENGTH:
+ setMinutesLength((Integer)newValue);
+ return;
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__DAMAGED:
+ setDamaged((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__TITLE:
+ setTitle(TITLE_EDEFAULT);
+ return;
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__MINUTES_LENGTH:
+ setMinutesLength(MINUTES_LENGTH_EDEFAULT);
+ return;
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__DAMAGED:
+ setDamaged(DAMAGED_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__TITLE:
+ return TITLE_EDEFAULT == null ? title != null : !TITLE_EDEFAULT.equals(title);
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__MINUTES_LENGTH:
+ return minutesLength != MINUTES_LENGTH_EDEFAULT;
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__DAMAGED:
+ return ((eFlags & DAMAGED_EFLAG) != 0) != DAMAGED_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (title: "); //$NON-NLS-1$
+ result.append(title);
+ result.append(", minutesLength: "); //$NON-NLS-1$
+ result.append(minutesLength);
+ result.append(", damaged: "); //$NON-NLS-1$
+ result.append((eFlags & DAMAGED_EFLAG) != 0);
+ result.append(')');
+ return result.toString();
+ }
+
+} //AudioVisualItemImpl
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/BookImpl.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/BookImpl.java
new file mode 100644
index 000000000..c6942dd6c
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/BookImpl.java
@@ -0,0 +1,462 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.examples.extlibrary.Book;
+import org.eclipse.emf.examples.extlibrary.BookCategory;
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.Writer;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Book</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.BookImpl#getTitle <em>Title</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.BookImpl#getPages <em>Pages</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.BookImpl#getCategory <em>Category</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.BookImpl#getAuthor <em>Author</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BookImpl extends CirculatingItemImpl implements Book
+{
+ /**
+ * The default value of the '{@link #getTitle() <em>Title</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTitle()
+ * @generated
+ * @ordered
+ */
+ protected static final String TITLE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTitle() <em>Title</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTitle()
+ * @generated
+ * @ordered
+ */
+ protected String title = TITLE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPages() <em>Pages</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPages()
+ * @generated
+ * @ordered
+ */
+ protected static final int PAGES_EDEFAULT = 100;
+
+ /**
+ * The cached value of the '{@link #getPages() <em>Pages</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPages()
+ * @generated
+ * @ordered
+ */
+ protected int pages = PAGES_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCategory() <em>Category</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCategory()
+ * @generated
+ * @ordered
+ */
+ protected static final BookCategory CATEGORY_EDEFAULT = BookCategory.MYSTERY_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getCategory() <em>Category</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCategory()
+ * @generated
+ * @ordered
+ */
+ protected BookCategory category = CATEGORY_EDEFAULT;
+
+ /**
+ * The flag representing whether the Category attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected static final int CATEGORY_ESETFLAG = 1 << 8;
+
+ /**
+ * The cached value of the '{@link #getAuthor() <em>Author</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAuthor()
+ * @generated
+ * @ordered
+ */
+ protected Writer author;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BookImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.BOOK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTitle()
+ {
+ return title;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTitle(String newTitle)
+ {
+ String oldTitle = title;
+ title = newTitle;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.BOOK__TITLE, oldTitle, title));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getPages()
+ {
+ return pages;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPages(int newPages)
+ {
+ int oldPages = pages;
+ pages = newPages;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.BOOK__PAGES, oldPages, pages));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BookCategory getCategory()
+ {
+ return category;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCategory(BookCategory newCategory)
+ {
+ BookCategory oldCategory = category;
+ category = newCategory == null ? CATEGORY_EDEFAULT : newCategory;
+ boolean oldCategoryESet = (eFlags & CATEGORY_ESETFLAG) != 0;
+ eFlags |= CATEGORY_ESETFLAG;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.BOOK__CATEGORY, oldCategory, category, !oldCategoryESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetCategory()
+ {
+ BookCategory oldCategory = category;
+ boolean oldCategoryESet = (eFlags & CATEGORY_ESETFLAG) != 0;
+ category = CATEGORY_EDEFAULT;
+ eFlags &= ~CATEGORY_ESETFLAG;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EXTLibraryPackage.BOOK__CATEGORY, oldCategory, CATEGORY_EDEFAULT, oldCategoryESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetCategory()
+ {
+ return (eFlags & CATEGORY_ESETFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Writer getAuthor()
+ {
+ if (author != null && author.eIsProxy())
+ {
+ InternalEObject oldAuthor = (InternalEObject)author;
+ author = (Writer)eResolveProxy(oldAuthor);
+ if (author != oldAuthor)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, EXTLibraryPackage.BOOK__AUTHOR, oldAuthor, author));
+ }
+ }
+ return author;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Writer basicGetAuthor()
+ {
+ return author;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetAuthor(Writer newAuthor, NotificationChain msgs)
+ {
+ Writer oldAuthor = author;
+ author = newAuthor;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.BOOK__AUTHOR, oldAuthor, newAuthor);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAuthor(Writer newAuthor)
+ {
+ if (newAuthor != author)
+ {
+ NotificationChain msgs = null;
+ if (author != null)
+ msgs = ((InternalEObject)author).eInverseRemove(this, EXTLibraryPackage.WRITER__BOOKS, Writer.class, msgs);
+ if (newAuthor != null)
+ msgs = ((InternalEObject)newAuthor).eInverseAdd(this, EXTLibraryPackage.WRITER__BOOKS, Writer.class, msgs);
+ msgs = basicSetAuthor(newAuthor, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.BOOK__AUTHOR, newAuthor, newAuthor));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK__AUTHOR:
+ if (author != null)
+ msgs = ((InternalEObject)author).eInverseRemove(this, EXTLibraryPackage.WRITER__BOOKS, Writer.class, msgs);
+ return basicSetAuthor((Writer)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK__AUTHOR:
+ return basicSetAuthor(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK__TITLE:
+ return getTitle();
+ case EXTLibraryPackage.BOOK__PAGES:
+ return getPages();
+ case EXTLibraryPackage.BOOK__CATEGORY:
+ return getCategory();
+ case EXTLibraryPackage.BOOK__AUTHOR:
+ if (resolve) return getAuthor();
+ return basicGetAuthor();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK__TITLE:
+ setTitle((String)newValue);
+ return;
+ case EXTLibraryPackage.BOOK__PAGES:
+ setPages((Integer)newValue);
+ return;
+ case EXTLibraryPackage.BOOK__CATEGORY:
+ setCategory((BookCategory)newValue);
+ return;
+ case EXTLibraryPackage.BOOK__AUTHOR:
+ setAuthor((Writer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK__TITLE:
+ setTitle(TITLE_EDEFAULT);
+ return;
+ case EXTLibraryPackage.BOOK__PAGES:
+ setPages(PAGES_EDEFAULT);
+ return;
+ case EXTLibraryPackage.BOOK__CATEGORY:
+ unsetCategory();
+ return;
+ case EXTLibraryPackage.BOOK__AUTHOR:
+ setAuthor((Writer)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK__TITLE:
+ return TITLE_EDEFAULT == null ? title != null : !TITLE_EDEFAULT.equals(title);
+ case EXTLibraryPackage.BOOK__PAGES:
+ return pages != PAGES_EDEFAULT;
+ case EXTLibraryPackage.BOOK__CATEGORY:
+ return isSetCategory();
+ case EXTLibraryPackage.BOOK__AUTHOR:
+ return author != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (title: "); //$NON-NLS-1$
+ result.append(title);
+ result.append(", pages: "); //$NON-NLS-1$
+ result.append(pages);
+ result.append(", category: "); //$NON-NLS-1$
+ if ((eFlags & CATEGORY_ESETFLAG) != 0) result.append(category); else result.append("<unset>"); //$NON-NLS-1$
+ result.append(')');
+ return result.toString();
+ }
+
+} //BookImpl
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/BookOnTapeImpl.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/BookOnTapeImpl.java
new file mode 100644
index 000000000..2d15212f4
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/BookOnTapeImpl.java
@@ -0,0 +1,248 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.examples.extlibrary.BookOnTape;
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.Person;
+import org.eclipse.emf.examples.extlibrary.Writer;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Book On Tape</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.BookOnTapeImpl#getReader <em>Reader</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.BookOnTapeImpl#getAuthor <em>Author</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BookOnTapeImpl extends AudioVisualItemImpl implements BookOnTape
+{
+ /**
+ * The cached value of the '{@link #getReader() <em>Reader</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReader()
+ * @generated
+ * @ordered
+ */
+ protected Person reader;
+
+ /**
+ * The cached value of the '{@link #getAuthor() <em>Author</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAuthor()
+ * @generated
+ * @ordered
+ */
+ protected Writer author;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BookOnTapeImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.BOOK_ON_TAPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Person getReader()
+ {
+ if (reader != null && reader.eIsProxy())
+ {
+ InternalEObject oldReader = (InternalEObject)reader;
+ reader = (Person)eResolveProxy(oldReader);
+ if (reader != oldReader)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, EXTLibraryPackage.BOOK_ON_TAPE__READER, oldReader, reader));
+ }
+ }
+ return reader;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Person basicGetReader()
+ {
+ return reader;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setReader(Person newReader)
+ {
+ Person oldReader = reader;
+ reader = newReader;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.BOOK_ON_TAPE__READER, oldReader, reader));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Writer getAuthor()
+ {
+ if (author != null && author.eIsProxy())
+ {
+ InternalEObject oldAuthor = (InternalEObject)author;
+ author = (Writer)eResolveProxy(oldAuthor);
+ if (author != oldAuthor)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, EXTLibraryPackage.BOOK_ON_TAPE__AUTHOR, oldAuthor, author));
+ }
+ }
+ return author;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Writer basicGetAuthor()
+ {
+ return author;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAuthor(Writer newAuthor)
+ {
+ Writer oldAuthor = author;
+ author = newAuthor;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.BOOK_ON_TAPE__AUTHOR, oldAuthor, author));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK_ON_TAPE__READER:
+ if (resolve) return getReader();
+ return basicGetReader();
+ case EXTLibraryPackage.BOOK_ON_TAPE__AUTHOR:
+ if (resolve) return getAuthor();
+ return basicGetAuthor();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK_ON_TAPE__READER:
+ setReader((Person)newValue);
+ return;
+ case EXTLibraryPackage.BOOK_ON_TAPE__AUTHOR:
+ setAuthor((Writer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK_ON_TAPE__READER:
+ setReader((Person)null);
+ return;
+ case EXTLibraryPackage.BOOK_ON_TAPE__AUTHOR:
+ setAuthor((Writer)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK_ON_TAPE__READER:
+ return reader != null;
+ case EXTLibraryPackage.BOOK_ON_TAPE__AUTHOR:
+ return author != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //BookOnTapeImpl
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/BorrowerImpl.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/BorrowerImpl.java
new file mode 100644
index 000000000..1fa94b5f6
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/BorrowerImpl.java
@@ -0,0 +1,192 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.emf.examples.extlibrary.Borrower;
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.Lendable;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Borrower</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.BorrowerImpl#getBorrowed <em>Borrowed</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BorrowerImpl extends PersonImpl implements Borrower
+{
+ /**
+ * The cached value of the '{@link #getBorrowed() <em>Borrowed</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBorrowed()
+ * @generated
+ * @ordered
+ */
+ protected EList<Lendable> borrowed;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BorrowerImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.BORROWER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Lendable> getBorrowed()
+ {
+ if (borrowed == null)
+ {
+ borrowed = new EObjectWithInverseResolvingEList.ManyInverse<Lendable>(Lendable.class, this, EXTLibraryPackage.BORROWER__BORROWED, EXTLibraryPackage.LENDABLE__BORROWERS);
+ }
+ return borrowed;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BORROWER__BORROWED:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getBorrowed()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BORROWER__BORROWED:
+ return ((InternalEList<?>)getBorrowed()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BORROWER__BORROWED:
+ return getBorrowed();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BORROWER__BORROWED:
+ getBorrowed().clear();
+ getBorrowed().addAll((Collection<? extends Lendable>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BORROWER__BORROWED:
+ getBorrowed().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BORROWER__BORROWED:
+ return borrowed != null && !borrowed.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //BorrowerImpl
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/CirculatingItemImpl.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/CirculatingItemImpl.java
new file mode 100644
index 000000000..5e8543331
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/CirculatingItemImpl.java
@@ -0,0 +1,306 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.impl;
+
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.emf.examples.extlibrary.Borrower;
+import org.eclipse.emf.examples.extlibrary.CirculatingItem;
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.Lendable;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Circulating Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.CirculatingItemImpl#getCopies <em>Copies</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.CirculatingItemImpl#getBorrowers <em>Borrowers</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class CirculatingItemImpl extends ItemImpl implements CirculatingItem
+{
+ /**
+ * The default value of the '{@link #getCopies() <em>Copies</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCopies()
+ * @generated
+ * @ordered
+ */
+ protected static final int COPIES_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getCopies() <em>Copies</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCopies()
+ * @generated
+ * @ordered
+ */
+ protected int copies = COPIES_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBorrowers() <em>Borrowers</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBorrowers()
+ * @generated
+ * @ordered
+ */
+ protected EList<Borrower> borrowers;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CirculatingItemImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.CIRCULATING_ITEM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getCopies()
+ {
+ return copies;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCopies(int newCopies)
+ {
+ int oldCopies = copies;
+ copies = newCopies;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.CIRCULATING_ITEM__COPIES, oldCopies, copies));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Borrower> getBorrowers()
+ {
+ if (borrowers == null)
+ {
+ borrowers = new EObjectWithInverseResolvingEList.ManyInverse<Borrower>(Borrower.class, this, EXTLibraryPackage.CIRCULATING_ITEM__BORROWERS, EXTLibraryPackage.BORROWER__BORROWED);
+ }
+ return borrowers;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.CIRCULATING_ITEM__BORROWERS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getBorrowers()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.CIRCULATING_ITEM__BORROWERS:
+ return ((InternalEList<?>)getBorrowers()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.CIRCULATING_ITEM__COPIES:
+ return getCopies();
+ case EXTLibraryPackage.CIRCULATING_ITEM__BORROWERS:
+ return getBorrowers();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.CIRCULATING_ITEM__COPIES:
+ setCopies((Integer)newValue);
+ return;
+ case EXTLibraryPackage.CIRCULATING_ITEM__BORROWERS:
+ getBorrowers().clear();
+ getBorrowers().addAll((Collection<? extends Borrower>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.CIRCULATING_ITEM__COPIES:
+ setCopies(COPIES_EDEFAULT);
+ return;
+ case EXTLibraryPackage.CIRCULATING_ITEM__BORROWERS:
+ getBorrowers().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.CIRCULATING_ITEM__COPIES:
+ return copies != COPIES_EDEFAULT;
+ case EXTLibraryPackage.CIRCULATING_ITEM__BORROWERS:
+ return borrowers != null && !borrowers.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
+ {
+ if (baseClass == Lendable.class)
+ {
+ switch (derivedFeatureID)
+ {
+ case EXTLibraryPackage.CIRCULATING_ITEM__COPIES: return EXTLibraryPackage.LENDABLE__COPIES;
+ case EXTLibraryPackage.CIRCULATING_ITEM__BORROWERS: return EXTLibraryPackage.LENDABLE__BORROWERS;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
+ {
+ if (baseClass == Lendable.class)
+ {
+ switch (baseFeatureID)
+ {
+ case EXTLibraryPackage.LENDABLE__COPIES: return EXTLibraryPackage.CIRCULATING_ITEM__COPIES;
+ case EXTLibraryPackage.LENDABLE__BORROWERS: return EXTLibraryPackage.CIRCULATING_ITEM__BORROWERS;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (copies: "); //$NON-NLS-1$
+ result.append(copies);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CirculatingItemImpl
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/EXTLibraryFactoryImpl.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/EXTLibraryFactoryImpl.java
new file mode 100644
index 000000000..af37b7fee
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/EXTLibraryFactoryImpl.java
@@ -0,0 +1,258 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.impl;
+
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.emf.examples.extlibrary.*;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EXTLibraryFactoryImpl extends EFactoryImpl implements EXTLibraryFactory
+{
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static EXTLibraryFactory init()
+ {
+ try
+ {
+ EXTLibraryFactory theEXTLibraryFactory = (EXTLibraryFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/emf/examples/library/extlibrary.ecore/1.0.0"); //$NON-NLS-1$
+ if (theEXTLibraryFactory != null)
+ {
+ return theEXTLibraryFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new EXTLibraryFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibraryFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case EXTLibraryPackage.BOOK: return createBook();
+ case EXTLibraryPackage.LIBRARY: return createLibrary();
+ case EXTLibraryPackage.WRITER: return createWriter();
+ case EXTLibraryPackage.BOOK_ON_TAPE: return createBookOnTape();
+ case EXTLibraryPackage.VIDEO_CASSETTE: return createVideoCassette();
+ case EXTLibraryPackage.BORROWER: return createBorrower();
+ case EXTLibraryPackage.PERSON: return createPerson();
+ case EXTLibraryPackage.EMPLOYEE: return createEmployee();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case EXTLibraryPackage.BOOK_CATEGORY:
+ return createBookCategoryFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case EXTLibraryPackage.BOOK_CATEGORY:
+ return convertBookCategoryToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Book createBook()
+ {
+ BookImpl book = new BookImpl();
+ return book;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Library createLibrary()
+ {
+ LibraryImpl library = new LibraryImpl();
+ return library;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Writer createWriter()
+ {
+ WriterImpl writer = new WriterImpl();
+ return writer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BookOnTape createBookOnTape()
+ {
+ BookOnTapeImpl bookOnTape = new BookOnTapeImpl();
+ return bookOnTape;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VideoCassette createVideoCassette()
+ {
+ VideoCassetteImpl videoCassette = new VideoCassetteImpl();
+ return videoCassette;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Borrower createBorrower()
+ {
+ BorrowerImpl borrower = new BorrowerImpl();
+ return borrower;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Person createPerson()
+ {
+ PersonImpl person = new PersonImpl();
+ return person;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Employee createEmployee()
+ {
+ EmployeeImpl employee = new EmployeeImpl();
+ return employee;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BookCategory createBookCategoryFromString(EDataType eDataType, String initialValue)
+ {
+ BookCategory result = BookCategory.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertBookCategoryToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibraryPackage getEXTLibraryPackage()
+ {
+ return (EXTLibraryPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static EXTLibraryPackage getPackage()
+ {
+ return EXTLibraryPackage.eINSTANCE;
+ }
+
+} //EXTLibraryFactoryImpl
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/EXTLibraryPackageImpl.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/EXTLibraryPackageImpl.java
new file mode 100644
index 000000000..714ea3030
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/EXTLibraryPackageImpl.java
@@ -0,0 +1,925 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.impl;
+
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.emf.examples.extlibrary.Addressable;
+import org.eclipse.emf.examples.extlibrary.AudioVisualItem;
+import org.eclipse.emf.examples.extlibrary.Book;
+import org.eclipse.emf.examples.extlibrary.BookCategory;
+import org.eclipse.emf.examples.extlibrary.BookOnTape;
+import org.eclipse.emf.examples.extlibrary.Borrower;
+import org.eclipse.emf.examples.extlibrary.CirculatingItem;
+import org.eclipse.emf.examples.extlibrary.EXTLibraryFactory;
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.Employee;
+import org.eclipse.emf.examples.extlibrary.Item;
+import org.eclipse.emf.examples.extlibrary.Lendable;
+import org.eclipse.emf.examples.extlibrary.Library;
+import org.eclipse.emf.examples.extlibrary.Periodical;
+import org.eclipse.emf.examples.extlibrary.Person;
+import org.eclipse.emf.examples.extlibrary.VideoCassette;
+import org.eclipse.emf.examples.extlibrary.Writer;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EXTLibraryPackageImpl extends EPackageImpl implements EXTLibraryPackage
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass bookEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass libraryEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass writerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass itemEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass lendableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass circulatingItemEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass periodicalEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass audioVisualItemEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass bookOnTapeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass videoCassetteEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass borrowerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass personEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass employeeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass addressableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum bookCategoryEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private EXTLibraryPackageImpl()
+ {
+ super(eNS_URI, EXTLibraryFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link EXTLibraryPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static EXTLibraryPackage init()
+ {
+ if (isInited) return (EXTLibraryPackage)EPackage.Registry.INSTANCE.getEPackage(EXTLibraryPackage.eNS_URI);
+
+ // Obtain or create and register package
+ EXTLibraryPackageImpl theEXTLibraryPackage = (EXTLibraryPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EXTLibraryPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new EXTLibraryPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theEXTLibraryPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theEXTLibraryPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theEXTLibraryPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(EXTLibraryPackage.eNS_URI, theEXTLibraryPackage);
+ return theEXTLibraryPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBook()
+ {
+ return bookEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBook_Title()
+ {
+ return (EAttribute)bookEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBook_Pages()
+ {
+ return (EAttribute)bookEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBook_Category()
+ {
+ return (EAttribute)bookEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBook_Author()
+ {
+ return (EReference)bookEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLibrary()
+ {
+ return libraryEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLibrary_Name()
+ {
+ return (EAttribute)libraryEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLibrary_Writers()
+ {
+ return (EReference)libraryEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLibrary_Employees()
+ {
+ return (EReference)libraryEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLibrary_Borrowers()
+ {
+ return (EReference)libraryEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLibrary_Stock()
+ {
+ return (EReference)libraryEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLibrary_Books()
+ {
+ return (EReference)libraryEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLibrary_Branches()
+ {
+ return (EReference)libraryEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLibrary_ParentBranch()
+ {
+ return (EReference)libraryEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLibrary_People()
+ {
+ return (EAttribute)libraryEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getWriter()
+ {
+ return writerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getWriter_Name()
+ {
+ return (EAttribute)writerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getWriter_Books()
+ {
+ return (EReference)writerEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getItem()
+ {
+ return itemEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getItem_PublicationDate()
+ {
+ return (EAttribute)itemEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLendable()
+ {
+ return lendableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLendable_Copies()
+ {
+ return (EAttribute)lendableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLendable_Borrowers()
+ {
+ return (EReference)lendableEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCirculatingItem()
+ {
+ return circulatingItemEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPeriodical()
+ {
+ return periodicalEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPeriodical_Title()
+ {
+ return (EAttribute)periodicalEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPeriodical_IssuesPerYear()
+ {
+ return (EAttribute)periodicalEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAudioVisualItem()
+ {
+ return audioVisualItemEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAudioVisualItem_Title()
+ {
+ return (EAttribute)audioVisualItemEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAudioVisualItem_MinutesLength()
+ {
+ return (EAttribute)audioVisualItemEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAudioVisualItem_Damaged()
+ {
+ return (EAttribute)audioVisualItemEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBookOnTape()
+ {
+ return bookOnTapeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBookOnTape_Reader()
+ {
+ return (EReference)bookOnTapeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBookOnTape_Author()
+ {
+ return (EReference)bookOnTapeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVideoCassette()
+ {
+ return videoCassetteEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getVideoCassette_Cast()
+ {
+ return (EReference)videoCassetteEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBorrower()
+ {
+ return borrowerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBorrower_Borrowed()
+ {
+ return (EReference)borrowerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPerson()
+ {
+ return personEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPerson_FirstName()
+ {
+ return (EAttribute)personEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPerson_LastName()
+ {
+ return (EAttribute)personEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEmployee()
+ {
+ return employeeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEmployee_Manager()
+ {
+ return (EReference)employeeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAddressable()
+ {
+ return addressableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAddressable_Address()
+ {
+ return (EAttribute)addressableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getBookCategory()
+ {
+ return bookCategoryEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibraryFactory getEXTLibraryFactory()
+ {
+ return (EXTLibraryFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ bookEClass = createEClass(BOOK);
+ createEAttribute(bookEClass, BOOK__TITLE);
+ createEAttribute(bookEClass, BOOK__PAGES);
+ createEAttribute(bookEClass, BOOK__CATEGORY);
+ createEReference(bookEClass, BOOK__AUTHOR);
+
+ libraryEClass = createEClass(LIBRARY);
+ createEAttribute(libraryEClass, LIBRARY__NAME);
+ createEReference(libraryEClass, LIBRARY__WRITERS);
+ createEReference(libraryEClass, LIBRARY__EMPLOYEES);
+ createEReference(libraryEClass, LIBRARY__BORROWERS);
+ createEReference(libraryEClass, LIBRARY__STOCK);
+ createEReference(libraryEClass, LIBRARY__BOOKS);
+ createEReference(libraryEClass, LIBRARY__BRANCHES);
+ createEReference(libraryEClass, LIBRARY__PARENT_BRANCH);
+ createEAttribute(libraryEClass, LIBRARY__PEOPLE);
+
+ writerEClass = createEClass(WRITER);
+ createEAttribute(writerEClass, WRITER__NAME);
+ createEReference(writerEClass, WRITER__BOOKS);
+
+ itemEClass = createEClass(ITEM);
+ createEAttribute(itemEClass, ITEM__PUBLICATION_DATE);
+
+ lendableEClass = createEClass(LENDABLE);
+ createEAttribute(lendableEClass, LENDABLE__COPIES);
+ createEReference(lendableEClass, LENDABLE__BORROWERS);
+
+ circulatingItemEClass = createEClass(CIRCULATING_ITEM);
+
+ periodicalEClass = createEClass(PERIODICAL);
+ createEAttribute(periodicalEClass, PERIODICAL__TITLE);
+ createEAttribute(periodicalEClass, PERIODICAL__ISSUES_PER_YEAR);
+
+ audioVisualItemEClass = createEClass(AUDIO_VISUAL_ITEM);
+ createEAttribute(audioVisualItemEClass, AUDIO_VISUAL_ITEM__TITLE);
+ createEAttribute(audioVisualItemEClass, AUDIO_VISUAL_ITEM__MINUTES_LENGTH);
+ createEAttribute(audioVisualItemEClass, AUDIO_VISUAL_ITEM__DAMAGED);
+
+ bookOnTapeEClass = createEClass(BOOK_ON_TAPE);
+ createEReference(bookOnTapeEClass, BOOK_ON_TAPE__READER);
+ createEReference(bookOnTapeEClass, BOOK_ON_TAPE__AUTHOR);
+
+ videoCassetteEClass = createEClass(VIDEO_CASSETTE);
+ createEReference(videoCassetteEClass, VIDEO_CASSETTE__CAST);
+
+ borrowerEClass = createEClass(BORROWER);
+ createEReference(borrowerEClass, BORROWER__BORROWED);
+
+ personEClass = createEClass(PERSON);
+ createEAttribute(personEClass, PERSON__FIRST_NAME);
+ createEAttribute(personEClass, PERSON__LAST_NAME);
+
+ employeeEClass = createEClass(EMPLOYEE);
+ createEReference(employeeEClass, EMPLOYEE__MANAGER);
+
+ addressableEClass = createEClass(ADDRESSABLE);
+ createEAttribute(addressableEClass, ADDRESSABLE__ADDRESS);
+
+ // Create enums
+ bookCategoryEEnum = createEEnum(BOOK_CATEGORY);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ bookEClass.getESuperTypes().add(this.getCirculatingItem());
+ libraryEClass.getESuperTypes().add(this.getAddressable());
+ writerEClass.getESuperTypes().add(this.getPerson());
+ circulatingItemEClass.getESuperTypes().add(this.getItem());
+ circulatingItemEClass.getESuperTypes().add(this.getLendable());
+ periodicalEClass.getESuperTypes().add(this.getItem());
+ audioVisualItemEClass.getESuperTypes().add(this.getCirculatingItem());
+ bookOnTapeEClass.getESuperTypes().add(this.getAudioVisualItem());
+ videoCassetteEClass.getESuperTypes().add(this.getAudioVisualItem());
+ borrowerEClass.getESuperTypes().add(this.getPerson());
+ personEClass.getESuperTypes().add(this.getAddressable());
+ employeeEClass.getESuperTypes().add(this.getPerson());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(bookEClass, Book.class, "Book", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getBook_Title(), ecorePackage.getEString(), "title", null, 0, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getBook_Pages(), ecorePackage.getEInt(), "pages", "100", 0, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getBook_Category(), this.getBookCategory(), "category", null, 0, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getBook_Author(), this.getWriter(), this.getWriter_Books(), "author", null, 1, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(libraryEClass, Library.class, "Library", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLibrary_Name(), ecorePackage.getEString(), "name", null, 0, 1, Library.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLibrary_Writers(), this.getWriter(), null, "writers", null, 0, -1, Library.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLibrary_Employees(), this.getEmployee(), null, "employees", null, 0, -1, Library.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLibrary_Borrowers(), this.getBorrower(), null, "borrowers", null, 0, -1, Library.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLibrary_Stock(), this.getItem(), null, "stock", null, 0, -1, Library.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLibrary_Books(), this.getBook(), null, "books", null, 0, -1, Library.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLibrary_Branches(), this.getLibrary(), this.getLibrary_ParentBranch(), "branches", null, 0, -1, Library.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLibrary_ParentBranch(), this.getLibrary(), this.getLibrary_Branches(), "parentBranch", null, 0, 1, Library.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLibrary_People(), ecorePackage.getEFeatureMapEntry(), "people", null, 0, -1, Library.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(writerEClass, Writer.class, "Writer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getWriter_Name(), ecorePackage.getEString(), "name", null, 0, 1, Writer.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getWriter_Books(), this.getBook(), this.getBook_Author(), "books", null, 0, -1, Writer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(itemEClass, Item.class, "Item", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getItem_PublicationDate(), ecorePackage.getEDate(), "publicationDate", null, 0, 1, Item.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(lendableEClass, Lendable.class, "Lendable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLendable_Copies(), ecorePackage.getEInt(), "copies", null, 1, 1, Lendable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLendable_Borrowers(), this.getBorrower(), this.getBorrower_Borrowed(), "borrowers", null, 0, -1, Lendable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(circulatingItemEClass, CirculatingItem.class, "CirculatingItem", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(periodicalEClass, Periodical.class, "Periodical", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getPeriodical_Title(), ecorePackage.getEString(), "title", null, 0, 1, Periodical.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getPeriodical_IssuesPerYear(), ecorePackage.getEInt(), "issuesPerYear", null, 1, 1, Periodical.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(audioVisualItemEClass, AudioVisualItem.class, "AudioVisualItem", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getAudioVisualItem_Title(), ecorePackage.getEString(), "title", null, 0, 1, AudioVisualItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getAudioVisualItem_MinutesLength(), ecorePackage.getEInt(), "minutesLength", null, 1, 1, AudioVisualItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getAudioVisualItem_Damaged(), ecorePackage.getEBoolean(), "damaged", null, 0, 1, AudioVisualItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(bookOnTapeEClass, BookOnTape.class, "BookOnTape", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getBookOnTape_Reader(), this.getPerson(), null, "reader", null, 0, 1, BookOnTape.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getBookOnTape_Author(), this.getWriter(), null, "author", null, 0, 1, BookOnTape.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(videoCassetteEClass, VideoCassette.class, "VideoCassette", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getVideoCassette_Cast(), this.getPerson(), null, "cast", null, 0, -1, VideoCassette.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(borrowerEClass, Borrower.class, "Borrower", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getBorrower_Borrowed(), this.getLendable(), this.getLendable_Borrowers(), "borrowed", null, 0, -1, Borrower.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(personEClass, Person.class, "Person", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getPerson_FirstName(), ecorePackage.getEString(), "firstName", null, 1, 1, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getPerson_LastName(), ecorePackage.getEString(), "lastName", null, 1, 1, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(employeeEClass, Employee.class, "Employee", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getEmployee_Manager(), this.getEmployee(), null, "manager", null, 0, 1, Employee.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(addressableEClass, Addressable.class, "Addressable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getAddressable_Address(), ecorePackage.getEString(), "address", null, 0, 1, Addressable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ // Initialize enums and add enum literals
+ initEEnum(bookCategoryEEnum, BookCategory.class, "BookCategory"); //$NON-NLS-1$
+ addEEnumLiteral(bookCategoryEEnum, BookCategory.MYSTERY_LITERAL);
+ addEEnumLiteral(bookCategoryEEnum, BookCategory.SCIENCE_FICTION_LITERAL);
+ addEEnumLiteral(bookCategoryEEnum, BookCategory.BIOGRAPHY_LITERAL);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http:///org/eclipse/emf/ecore/util/ExtendedMetaData
+ createExtendedMetaDataAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/emf/ecore/util/ExtendedMetaData</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createExtendedMetaDataAnnotations()
+ {
+ String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData"; //$NON-NLS-1$
+ addAnnotation
+ (getLibrary_Writers(),
+ source,
+ new String[]
+ {
+ "group", "#people" //$NON-NLS-1$ //$NON-NLS-2$
+ });
+ addAnnotation
+ (getLibrary_Employees(),
+ source,
+ new String[]
+ {
+ "group", "#people" //$NON-NLS-1$ //$NON-NLS-2$
+ });
+ addAnnotation
+ (getLibrary_Borrowers(),
+ source,
+ new String[]
+ {
+ "group", "#people" //$NON-NLS-1$ //$NON-NLS-2$
+ });
+ addAnnotation
+ (getLibrary_People(),
+ source,
+ new String[]
+ {
+ "kind", "group" //$NON-NLS-1$ //$NON-NLS-2$
+ });
+ }
+
+} //EXTLibraryPackageImpl
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/EmployeeImpl.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/EmployeeImpl.java
new file mode 100644
index 000000000..fc1622439
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/EmployeeImpl.java
@@ -0,0 +1,181 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.Employee;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Employee</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.EmployeeImpl#getManager <em>Manager</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EmployeeImpl extends PersonImpl implements Employee
+{
+ /**
+ * The cached value of the '{@link #getManager() <em>Manager</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getManager()
+ * @generated
+ * @ordered
+ */
+ protected Employee manager;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EmployeeImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.EMPLOYEE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Employee getManager()
+ {
+ if (manager != null && manager.eIsProxy())
+ {
+ InternalEObject oldManager = (InternalEObject)manager;
+ manager = (Employee)eResolveProxy(oldManager);
+ if (manager != oldManager)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, EXTLibraryPackage.EMPLOYEE__MANAGER, oldManager, manager));
+ }
+ }
+ return manager;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Employee basicGetManager()
+ {
+ return manager;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setManager(Employee newManager)
+ {
+ Employee oldManager = manager;
+ manager = newManager;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.EMPLOYEE__MANAGER, oldManager, manager));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.EMPLOYEE__MANAGER:
+ if (resolve) return getManager();
+ return basicGetManager();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.EMPLOYEE__MANAGER:
+ setManager((Employee)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.EMPLOYEE__MANAGER:
+ setManager((Employee)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.EMPLOYEE__MANAGER:
+ return manager != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //EmployeeImpl
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/ItemImpl.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/ItemImpl.java
new file mode 100644
index 000000000..b50e79a0a
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/ItemImpl.java
@@ -0,0 +1,188 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.impl;
+
+
+import java.util.Date;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.Item;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.ItemImpl#getPublicationDate <em>Publication Date</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ItemImpl extends EObjectImpl implements Item
+{
+ /**
+ * The default value of the '{@link #getPublicationDate() <em>Publication Date</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPublicationDate()
+ * @generated
+ * @ordered
+ */
+ protected static final Date PUBLICATION_DATE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPublicationDate() <em>Publication Date</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPublicationDate()
+ * @generated
+ * @ordered
+ */
+ protected Date publicationDate = PUBLICATION_DATE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ItemImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.ITEM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getPublicationDate()
+ {
+ return publicationDate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPublicationDate(Date newPublicationDate)
+ {
+ Date oldPublicationDate = publicationDate;
+ publicationDate = newPublicationDate;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.ITEM__PUBLICATION_DATE, oldPublicationDate, publicationDate));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.ITEM__PUBLICATION_DATE:
+ return getPublicationDate();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.ITEM__PUBLICATION_DATE:
+ setPublicationDate((Date)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.ITEM__PUBLICATION_DATE:
+ setPublicationDate(PUBLICATION_DATE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.ITEM__PUBLICATION_DATE:
+ return PUBLICATION_DATE_EDEFAULT == null ? publicationDate != null : !PUBLICATION_DATE_EDEFAULT.equals(publicationDate);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (publicationDate: "); //$NON-NLS-1$
+ result.append(publicationDate);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ItemImpl
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/LibraryImpl.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/LibraryImpl.java
new file mode 100644
index 000000000..954cd7d93
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/LibraryImpl.java
@@ -0,0 +1,670 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.examples.extlibrary.Book;
+import org.eclipse.emf.examples.extlibrary.Borrower;
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.Employee;
+import org.eclipse.emf.examples.extlibrary.Item;
+import org.eclipse.emf.examples.extlibrary.Library;
+import org.eclipse.emf.examples.extlibrary.Writer;
+
+//import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Library</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.LibraryImpl#getAddress <em>Address</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.LibraryImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.LibraryImpl#getWriters <em>Writers</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.LibraryImpl#getEmployees <em>Employees</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.LibraryImpl#getBorrowers <em>Borrowers</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.LibraryImpl#getStock <em>Stock</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.LibraryImpl#getBooks <em>Books</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.LibraryImpl#getBranches <em>Branches</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.LibraryImpl#getParentBranch <em>Parent Branch</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.LibraryImpl#getPeople <em>People</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LibraryImpl extends EObjectImpl implements Library
+{
+ /**
+ * The default value of the '{@link #getAddress() <em>Address</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAddress()
+ * @generated
+ * @ordered
+ */
+ protected static final String ADDRESS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAddress() <em>Address</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAddress()
+ * @generated
+ * @ordered
+ */
+ protected String address = ADDRESS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getStock() <em>Stock</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStock()
+ * @generated
+ * @ordered
+ */
+ protected EList<Item> stock;
+
+ /**
+ * The cached value of the '{@link #getBooks() <em>Books</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBooks()
+ * @generated
+ * @ordered
+ */
+ protected EList<Book> books;
+
+ /**
+ * The cached value of the '{@link #getBranches() <em>Branches</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBranches()
+ * @generated
+ * @ordered
+ */
+ protected EList<Library> branches;
+
+ /**
+ * The cached value of the '{@link #getPeople() <em>People</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPeople()
+ * @generated
+ * @ordered
+ */
+ protected FeatureMap people;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LibraryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.LIBRARY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getAddress()
+ {
+ return address;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAddress(String newAddress)
+ {
+ String oldAddress = address;
+ address = newAddress;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.LIBRARY__ADDRESS, oldAddress, address));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.LIBRARY__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Writer> getWriters()
+ {
+ return getPeople().list(EXTLibraryPackage.Literals.LIBRARY__WRITERS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Employee> getEmployees()
+ {
+ return getPeople().list(EXTLibraryPackage.Literals.LIBRARY__EMPLOYEES);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Borrower> getBorrowers()
+ {
+ return getPeople().list(EXTLibraryPackage.Literals.LIBRARY__BORROWERS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EList<Item> getStock()
+ {
+ if (stock == null)
+ {
+ // create a custom list implementation that synchronizes its book
+ // content with the "books" subset
+ stock = new EObjectContainmentEList<Item>(Item.class, this, EXTLibraryPackage.LIBRARY__STOCK)
+ {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void didAdd(int index, Item newObject)
+ {
+ if ((newObject instanceof Book) && !getBooks().contains(newObject))
+ {
+ // these lists are unordered, so index doesn't matter
+ getBooks().add((Book)newObject);
+ }
+ }
+
+ @Override
+ protected void didRemove(int index, Item oldObject)
+ {
+ if ((oldObject instanceof Book) && getBooks().contains(oldObject))
+ {
+ // these lists are unordered, so index doesn't matter
+ getBooks().remove(oldObject);
+ }
+ }
+
+ @Override
+ protected void didSet(int index, Item newObject, Item oldObject)
+ {
+ didRemove(index, oldObject);
+ didAdd(index, newObject);
+ }
+ };
+ }
+ return stock;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EList<Book> getBooks()
+ {
+ if (books == null)
+ {
+ // create a custom list implementation that synchronizes its content
+ // with the "stock" superset
+ books = new EObjectEList<Book>(Book.class, this, EXTLibraryPackage.LIBRARY__BOOKS)
+ {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void didAdd(int index, Book newObject)
+ {
+ if (getStock().indexOf(newObject) == -1)
+ {
+ // these lists are unordered, so index doesn't matter
+ getStock().add(newObject);
+ }
+ }
+
+ @Override
+ protected void didRemove(int index, Book oldObject)
+ {
+ if (getStock().indexOf(oldObject) != -1)
+ {
+ // these lists are unordered, so index doesn't matter
+ getStock().remove(oldObject);
+ }
+ }
+
+ @Override
+ protected void didSet(int index, Book newObject, Book oldObject)
+ {
+ didRemove(index, oldObject);
+ didAdd(index, newObject);
+ }
+ };
+ }
+
+ return books;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Library> getBranches()
+ {
+ if (branches == null)
+ {
+ branches = new EObjectContainmentWithInverseEList.Resolving<Library>(Library.class, this, EXTLibraryPackage.LIBRARY__BRANCHES, EXTLibraryPackage.LIBRARY__PARENT_BRANCH);
+ }
+ return branches;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Library getParentBranch()
+ {
+ if (eContainerFeatureID() != EXTLibraryPackage.LIBRARY__PARENT_BRANCH) return null;
+ return (Library)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Library basicGetParentBranch()
+ {
+ if (eContainerFeatureID() != EXTLibraryPackage.LIBRARY__PARENT_BRANCH) return null;
+ return (Library)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetParentBranch(Library newParentBranch, NotificationChain msgs)
+ {
+ msgs = eBasicSetContainer((InternalEObject)newParentBranch, EXTLibraryPackage.LIBRARY__PARENT_BRANCH, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParentBranch(Library newParentBranch)
+ {
+ if (newParentBranch != eInternalContainer() || (eContainerFeatureID() != EXTLibraryPackage.LIBRARY__PARENT_BRANCH && newParentBranch != null))
+ {
+ if (EcoreUtil.isAncestor(this, newParentBranch))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newParentBranch != null)
+ msgs = ((InternalEObject)newParentBranch).eInverseAdd(this, EXTLibraryPackage.LIBRARY__BRANCHES, Library.class, msgs);
+ msgs = basicSetParentBranch(newParentBranch, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.LIBRARY__PARENT_BRANCH, newParentBranch, newParentBranch));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FeatureMap getPeople()
+ {
+ if (people == null)
+ {
+ people = new BasicFeatureMap(this, EXTLibraryPackage.LIBRARY__PEOPLE);
+ }
+ return people;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.LIBRARY__BRANCHES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getBranches()).basicAdd(otherEnd, msgs);
+ case EXTLibraryPackage.LIBRARY__PARENT_BRANCH:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetParentBranch((Library)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.LIBRARY__WRITERS:
+ return ((InternalEList<?>)getWriters()).basicRemove(otherEnd, msgs);
+ case EXTLibraryPackage.LIBRARY__EMPLOYEES:
+ return ((InternalEList<?>)getEmployees()).basicRemove(otherEnd, msgs);
+ case EXTLibraryPackage.LIBRARY__BORROWERS:
+ return ((InternalEList<?>)getBorrowers()).basicRemove(otherEnd, msgs);
+ case EXTLibraryPackage.LIBRARY__STOCK:
+ return ((InternalEList<?>)getStock()).basicRemove(otherEnd, msgs);
+ case EXTLibraryPackage.LIBRARY__BRANCHES:
+ return ((InternalEList<?>)getBranches()).basicRemove(otherEnd, msgs);
+ case EXTLibraryPackage.LIBRARY__PARENT_BRANCH:
+ return basicSetParentBranch(null, msgs);
+ case EXTLibraryPackage.LIBRARY__PEOPLE:
+ return ((InternalEList<?>)getPeople()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs)
+ {
+ switch (eContainerFeatureID())
+ {
+ case EXTLibraryPackage.LIBRARY__PARENT_BRANCH:
+ return eInternalContainer().eInverseRemove(this, EXTLibraryPackage.LIBRARY__BRANCHES, Library.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.LIBRARY__ADDRESS:
+ return getAddress();
+ case EXTLibraryPackage.LIBRARY__NAME:
+ return getName();
+ case EXTLibraryPackage.LIBRARY__WRITERS:
+ return getWriters();
+ case EXTLibraryPackage.LIBRARY__EMPLOYEES:
+ return getEmployees();
+ case EXTLibraryPackage.LIBRARY__BORROWERS:
+ return getBorrowers();
+ case EXTLibraryPackage.LIBRARY__STOCK:
+ return getStock();
+ case EXTLibraryPackage.LIBRARY__BOOKS:
+ return getBooks();
+ case EXTLibraryPackage.LIBRARY__BRANCHES:
+ return getBranches();
+ case EXTLibraryPackage.LIBRARY__PARENT_BRANCH:
+ if (resolve) return getParentBranch();
+ return basicGetParentBranch();
+ case EXTLibraryPackage.LIBRARY__PEOPLE:
+ if (coreType) return getPeople();
+ return ((FeatureMap.Internal)getPeople()).getWrapper();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.LIBRARY__ADDRESS:
+ setAddress((String)newValue);
+ return;
+ case EXTLibraryPackage.LIBRARY__NAME:
+ setName((String)newValue);
+ return;
+ case EXTLibraryPackage.LIBRARY__WRITERS:
+ getWriters().clear();
+ getWriters().addAll((Collection<? extends Writer>)newValue);
+ return;
+ case EXTLibraryPackage.LIBRARY__EMPLOYEES:
+ getEmployees().clear();
+ getEmployees().addAll((Collection<? extends Employee>)newValue);
+ return;
+ case EXTLibraryPackage.LIBRARY__BORROWERS:
+ getBorrowers().clear();
+ getBorrowers().addAll((Collection<? extends Borrower>)newValue);
+ return;
+ case EXTLibraryPackage.LIBRARY__STOCK:
+ getStock().clear();
+ getStock().addAll((Collection<? extends Item>)newValue);
+ return;
+ case EXTLibraryPackage.LIBRARY__BOOKS:
+ getBooks().clear();
+ getBooks().addAll((Collection<? extends Book>)newValue);
+ return;
+ case EXTLibraryPackage.LIBRARY__BRANCHES:
+ getBranches().clear();
+ getBranches().addAll((Collection<? extends Library>)newValue);
+ return;
+ case EXTLibraryPackage.LIBRARY__PARENT_BRANCH:
+ setParentBranch((Library)newValue);
+ return;
+ case EXTLibraryPackage.LIBRARY__PEOPLE:
+ ((FeatureMap.Internal)getPeople()).set(newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.LIBRARY__ADDRESS:
+ setAddress(ADDRESS_EDEFAULT);
+ return;
+ case EXTLibraryPackage.LIBRARY__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case EXTLibraryPackage.LIBRARY__WRITERS:
+ getWriters().clear();
+ return;
+ case EXTLibraryPackage.LIBRARY__EMPLOYEES:
+ getEmployees().clear();
+ return;
+ case EXTLibraryPackage.LIBRARY__BORROWERS:
+ getBorrowers().clear();
+ return;
+ case EXTLibraryPackage.LIBRARY__STOCK:
+ getStock().clear();
+ return;
+ case EXTLibraryPackage.LIBRARY__BOOKS:
+ getBooks().clear();
+ return;
+ case EXTLibraryPackage.LIBRARY__BRANCHES:
+ getBranches().clear();
+ return;
+ case EXTLibraryPackage.LIBRARY__PARENT_BRANCH:
+ setParentBranch((Library)null);
+ return;
+ case EXTLibraryPackage.LIBRARY__PEOPLE:
+ getPeople().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.LIBRARY__ADDRESS:
+ return ADDRESS_EDEFAULT == null ? address != null : !ADDRESS_EDEFAULT.equals(address);
+ case EXTLibraryPackage.LIBRARY__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case EXTLibraryPackage.LIBRARY__WRITERS:
+ return !getWriters().isEmpty();
+ case EXTLibraryPackage.LIBRARY__EMPLOYEES:
+ return !getEmployees().isEmpty();
+ case EXTLibraryPackage.LIBRARY__BORROWERS:
+ return !getBorrowers().isEmpty();
+ case EXTLibraryPackage.LIBRARY__STOCK:
+ return stock != null && !stock.isEmpty();
+ case EXTLibraryPackage.LIBRARY__BOOKS:
+ return books != null && !books.isEmpty();
+ case EXTLibraryPackage.LIBRARY__BRANCHES:
+ return branches != null && !branches.isEmpty();
+ case EXTLibraryPackage.LIBRARY__PARENT_BRANCH:
+ return basicGetParentBranch() != null;
+ case EXTLibraryPackage.LIBRARY__PEOPLE:
+ return people != null && !people.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (address: "); //$NON-NLS-1$
+ result.append(address);
+ result.append(", name: "); //$NON-NLS-1$
+ result.append(name);
+ result.append(", people: "); //$NON-NLS-1$
+ result.append(people);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LibraryImpl
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/PeriodicalImpl.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/PeriodicalImpl.java
new file mode 100644
index 000000000..efe19bddd
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/PeriodicalImpl.java
@@ -0,0 +1,241 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.Periodical;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Periodical</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.PeriodicalImpl#getTitle <em>Title</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.PeriodicalImpl#getIssuesPerYear <em>Issues Per Year</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class PeriodicalImpl extends ItemImpl implements Periodical
+{
+ /**
+ * The default value of the '{@link #getTitle() <em>Title</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTitle()
+ * @generated
+ * @ordered
+ */
+ protected static final String TITLE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTitle() <em>Title</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTitle()
+ * @generated
+ * @ordered
+ */
+ protected String title = TITLE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIssuesPerYear() <em>Issues Per Year</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIssuesPerYear()
+ * @generated
+ * @ordered
+ */
+ protected static final int ISSUES_PER_YEAR_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getIssuesPerYear() <em>Issues Per Year</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIssuesPerYear()
+ * @generated
+ * @ordered
+ */
+ protected int issuesPerYear = ISSUES_PER_YEAR_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PeriodicalImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.PERIODICAL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTitle()
+ {
+ return title;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTitle(String newTitle)
+ {
+ String oldTitle = title;
+ title = newTitle;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.PERIODICAL__TITLE, oldTitle, title));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getIssuesPerYear()
+ {
+ return issuesPerYear;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIssuesPerYear(int newIssuesPerYear)
+ {
+ int oldIssuesPerYear = issuesPerYear;
+ issuesPerYear = newIssuesPerYear;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.PERIODICAL__ISSUES_PER_YEAR, oldIssuesPerYear, issuesPerYear));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.PERIODICAL__TITLE:
+ return getTitle();
+ case EXTLibraryPackage.PERIODICAL__ISSUES_PER_YEAR:
+ return getIssuesPerYear();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.PERIODICAL__TITLE:
+ setTitle((String)newValue);
+ return;
+ case EXTLibraryPackage.PERIODICAL__ISSUES_PER_YEAR:
+ setIssuesPerYear((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.PERIODICAL__TITLE:
+ setTitle(TITLE_EDEFAULT);
+ return;
+ case EXTLibraryPackage.PERIODICAL__ISSUES_PER_YEAR:
+ setIssuesPerYear(ISSUES_PER_YEAR_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.PERIODICAL__TITLE:
+ return TITLE_EDEFAULT == null ? title != null : !TITLE_EDEFAULT.equals(title);
+ case EXTLibraryPackage.PERIODICAL__ISSUES_PER_YEAR:
+ return issuesPerYear != ISSUES_PER_YEAR_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (title: "); //$NON-NLS-1$
+ result.append(title);
+ result.append(", issuesPerYear: "); //$NON-NLS-1$
+ result.append(issuesPerYear);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PeriodicalImpl
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/PersonImpl.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/PersonImpl.java
new file mode 100644
index 000000000..c8f29257e
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/PersonImpl.java
@@ -0,0 +1,298 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.Person;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Person</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.PersonImpl#getAddress <em>Address</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.PersonImpl#getFirstName <em>First Name</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.PersonImpl#getLastName <em>Last Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PersonImpl extends EObjectImpl implements Person
+{
+ /**
+ * The default value of the '{@link #getAddress() <em>Address</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAddress()
+ * @generated
+ * @ordered
+ */
+ protected static final String ADDRESS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAddress() <em>Address</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAddress()
+ * @generated
+ * @ordered
+ */
+ protected String address = ADDRESS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getFirstName() <em>First Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFirstName()
+ * @generated
+ * @ordered
+ */
+ protected static final String FIRST_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFirstName() <em>First Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFirstName()
+ * @generated
+ * @ordered
+ */
+ protected String firstName = FIRST_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLastName() <em>Last Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLastName()
+ * @generated
+ * @ordered
+ */
+ protected static final String LAST_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLastName() <em>Last Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLastName()
+ * @generated
+ * @ordered
+ */
+ protected String lastName = LAST_NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PersonImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.PERSON;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getAddress()
+ {
+ return address;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAddress(String newAddress)
+ {
+ String oldAddress = address;
+ address = newAddress;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.PERSON__ADDRESS, oldAddress, address));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFirstName()
+ {
+ return firstName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFirstName(String newFirstName)
+ {
+ String oldFirstName = firstName;
+ firstName = newFirstName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.PERSON__FIRST_NAME, oldFirstName, firstName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLastName()
+ {
+ return lastName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLastName(String newLastName)
+ {
+ String oldLastName = lastName;
+ lastName = newLastName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.PERSON__LAST_NAME, oldLastName, lastName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.PERSON__ADDRESS:
+ return getAddress();
+ case EXTLibraryPackage.PERSON__FIRST_NAME:
+ return getFirstName();
+ case EXTLibraryPackage.PERSON__LAST_NAME:
+ return getLastName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.PERSON__ADDRESS:
+ setAddress((String)newValue);
+ return;
+ case EXTLibraryPackage.PERSON__FIRST_NAME:
+ setFirstName((String)newValue);
+ return;
+ case EXTLibraryPackage.PERSON__LAST_NAME:
+ setLastName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.PERSON__ADDRESS:
+ setAddress(ADDRESS_EDEFAULT);
+ return;
+ case EXTLibraryPackage.PERSON__FIRST_NAME:
+ setFirstName(FIRST_NAME_EDEFAULT);
+ return;
+ case EXTLibraryPackage.PERSON__LAST_NAME:
+ setLastName(LAST_NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.PERSON__ADDRESS:
+ return ADDRESS_EDEFAULT == null ? address != null : !ADDRESS_EDEFAULT.equals(address);
+ case EXTLibraryPackage.PERSON__FIRST_NAME:
+ return FIRST_NAME_EDEFAULT == null ? firstName != null : !FIRST_NAME_EDEFAULT.equals(firstName);
+ case EXTLibraryPackage.PERSON__LAST_NAME:
+ return LAST_NAME_EDEFAULT == null ? lastName != null : !LAST_NAME_EDEFAULT.equals(lastName);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (address: "); //$NON-NLS-1$
+ result.append(address);
+ result.append(", firstName: "); //$NON-NLS-1$
+ result.append(firstName);
+ result.append(", lastName: "); //$NON-NLS-1$
+ result.append(lastName);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PersonImpl
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/VideoCassetteImpl.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/VideoCassetteImpl.java
new file mode 100644
index 000000000..e5f9df9a2
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/VideoCassetteImpl.java
@@ -0,0 +1,153 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.impl;
+
+
+import java.util.Collection;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.Person;
+import org.eclipse.emf.examples.extlibrary.VideoCassette;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Video Cassette</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.VideoCassetteImpl#getCast <em>Cast</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class VideoCassetteImpl extends AudioVisualItemImpl implements VideoCassette
+{
+ /**
+ * The cached value of the '{@link #getCast() <em>Cast</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCast()
+ * @generated
+ * @ordered
+ */
+ protected EList<Person> cast;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VideoCassetteImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.VIDEO_CASSETTE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Person> getCast()
+ {
+ if (cast == null)
+ {
+ cast = new EObjectResolvingEList<Person>(Person.class, this, EXTLibraryPackage.VIDEO_CASSETTE__CAST);
+ }
+ return cast;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.VIDEO_CASSETTE__CAST:
+ return getCast();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.VIDEO_CASSETTE__CAST:
+ getCast().clear();
+ getCast().addAll((Collection<? extends Person>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.VIDEO_CASSETTE__CAST:
+ getCast().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.VIDEO_CASSETTE__CAST:
+ return cast != null && !cast.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //VideoCassetteImpl
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/WriterImpl.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/WriterImpl.java
new file mode 100644
index 000000000..fc21663b3
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/impl/WriterImpl.java
@@ -0,0 +1,278 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.emf.examples.extlibrary.Book;
+import org.eclipse.emf.examples.extlibrary.EXTLibraryPackage;
+import org.eclipse.emf.examples.extlibrary.Writer;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Writer</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.WriterImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.examples.extlibrary.impl.WriterImpl#getBooks <em>Books</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class WriterImpl extends PersonImpl implements Writer
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getBooks() <em>Books</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBooks()
+ * @generated
+ * @ordered
+ */
+ protected EList<Book> books;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected WriterImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.WRITER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String getName()
+ {
+ if (getFirstName() == null)
+ {
+ if (getLastName() == null)
+ {
+ return ""; //$NON-NLS-1$
+ }
+ else
+ {
+ return getLastName();
+ }
+ }
+ else if (getLastName() == null)
+ {
+ return getFirstName();
+ }
+ else
+ {
+ StringBuffer result = new StringBuffer();
+
+ result.append(getFirstName()).append(' ').append(getLastName());
+
+ return result.toString();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setName(String newName)
+ {
+ if (newName == null || newName.length() == 0)
+ {
+ setFirstName(null);
+ setLastName(null);
+ }
+ else
+ {
+ int comma = newName.indexOf(',');
+ if (comma < 0)
+ {
+ comma = newName.indexOf(' ');
+ }
+
+ if (comma >= 0)
+ {
+ setFirstName(newName.substring(0, comma).trim());
+ setLastName(newName.substring(comma + 1).trim());
+ }
+ else
+ {
+ setFirstName(newName);
+ setLastName(null);
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Book> getBooks()
+ {
+ if (books == null)
+ {
+ books = new EObjectWithInverseResolvingEList<Book>(Book.class, this, EXTLibraryPackage.WRITER__BOOKS, EXTLibraryPackage.BOOK__AUTHOR);
+ }
+ return books;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.WRITER__BOOKS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getBooks()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.WRITER__BOOKS:
+ return ((InternalEList<?>)getBooks()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.WRITER__NAME:
+ return getName();
+ case EXTLibraryPackage.WRITER__BOOKS:
+ return getBooks();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.WRITER__NAME:
+ setName((String)newValue);
+ return;
+ case EXTLibraryPackage.WRITER__BOOKS:
+ getBooks().clear();
+ getBooks().addAll((Collection<? extends Book>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.WRITER__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case EXTLibraryPackage.WRITER__BOOKS:
+ getBooks().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.WRITER__NAME:
+ return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
+ case EXTLibraryPackage.WRITER__BOOKS:
+ return books != null && !books.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //WriterImpl
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/util/EXTLibraryAdapterFactory.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/util/EXTLibraryAdapterFactory.java
new file mode 100644
index 000000000..d4c45efb0
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/util/EXTLibraryAdapterFactory.java
@@ -0,0 +1,402 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.util;
+
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.examples.extlibrary.*;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage
+ * @generated
+ */
+public class EXTLibraryAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static EXTLibraryPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibraryAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = EXTLibraryPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object)
+ {
+ if (object == modelPackage)
+ {
+ return true;
+ }
+ if (object instanceof EObject)
+ {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EXTLibrarySwitch<Adapter> modelSwitch =
+ new EXTLibrarySwitch<Adapter>()
+ {
+ @Override
+ public Adapter caseBook(Book object)
+ {
+ return createBookAdapter();
+ }
+ @Override
+ public Adapter caseLibrary(Library object)
+ {
+ return createLibraryAdapter();
+ }
+ @Override
+ public Adapter caseWriter(Writer object)
+ {
+ return createWriterAdapter();
+ }
+ @Override
+ public Adapter caseItem(Item object)
+ {
+ return createItemAdapter();
+ }
+ @Override
+ public Adapter caseLendable(Lendable object)
+ {
+ return createLendableAdapter();
+ }
+ @Override
+ public Adapter caseCirculatingItem(CirculatingItem object)
+ {
+ return createCirculatingItemAdapter();
+ }
+ @Override
+ public Adapter casePeriodical(Periodical object)
+ {
+ return createPeriodicalAdapter();
+ }
+ @Override
+ public Adapter caseAudioVisualItem(AudioVisualItem object)
+ {
+ return createAudioVisualItemAdapter();
+ }
+ @Override
+ public Adapter caseBookOnTape(BookOnTape object)
+ {
+ return createBookOnTapeAdapter();
+ }
+ @Override
+ public Adapter caseVideoCassette(VideoCassette object)
+ {
+ return createVideoCassetteAdapter();
+ }
+ @Override
+ public Adapter caseBorrower(Borrower object)
+ {
+ return createBorrowerAdapter();
+ }
+ @Override
+ public Adapter casePerson(Person object)
+ {
+ return createPersonAdapter();
+ }
+ @Override
+ public Adapter caseEmployee(Employee object)
+ {
+ return createEmployeeAdapter();
+ }
+ @Override
+ public Adapter caseAddressable(Addressable object)
+ {
+ return createAddressableAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object)
+ {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target)
+ {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.examples.extlibrary.Book <em>Book</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.examples.extlibrary.Book
+ * @generated
+ */
+ public Adapter createBookAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.examples.extlibrary.Library <em>Library</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.examples.extlibrary.Library
+ * @generated
+ */
+ public Adapter createLibraryAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.examples.extlibrary.Writer <em>Writer</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.examples.extlibrary.Writer
+ * @generated
+ */
+ public Adapter createWriterAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.examples.extlibrary.Item <em>Item</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.examples.extlibrary.Item
+ * @generated
+ */
+ public Adapter createItemAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.examples.extlibrary.Lendable <em>Lendable</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.examples.extlibrary.Lendable
+ * @generated
+ */
+ public Adapter createLendableAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.examples.extlibrary.CirculatingItem <em>Circulating Item</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.examples.extlibrary.CirculatingItem
+ * @generated
+ */
+ public Adapter createCirculatingItemAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.examples.extlibrary.Periodical <em>Periodical</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.examples.extlibrary.Periodical
+ * @generated
+ */
+ public Adapter createPeriodicalAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.examples.extlibrary.AudioVisualItem <em>Audio Visual Item</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.examples.extlibrary.AudioVisualItem
+ * @generated
+ */
+ public Adapter createAudioVisualItemAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.examples.extlibrary.BookOnTape <em>Book On Tape</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.examples.extlibrary.BookOnTape
+ * @generated
+ */
+ public Adapter createBookOnTapeAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.examples.extlibrary.VideoCassette <em>Video Cassette</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.examples.extlibrary.VideoCassette
+ * @generated
+ */
+ public Adapter createVideoCassetteAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.examples.extlibrary.Borrower <em>Borrower</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.examples.extlibrary.Borrower
+ * @generated
+ */
+ public Adapter createBorrowerAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.examples.extlibrary.Person <em>Person</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.examples.extlibrary.Person
+ * @generated
+ */
+ public Adapter createPersonAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.examples.extlibrary.Employee <em>Employee</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.examples.extlibrary.Employee
+ * @generated
+ */
+ public Adapter createEmployeeAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.examples.extlibrary.Addressable <em>Addressable</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.examples.extlibrary.Addressable
+ * @generated
+ */
+ public Adapter createAddressableAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter()
+ {
+ return null;
+ }
+
+} //EXTLibraryAdapterFactory
diff --git a/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/util/EXTLibrarySwitch.java b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/util/EXTLibrarySwitch.java
new file mode 100644
index 000000000..c26e16396
--- /dev/null
+++ b/examples/org.eclipse.emf.examples.library/src/org/eclipse/emf/examples/extlibrary/util/EXTLibrarySwitch.java
@@ -0,0 +1,471 @@
+/**
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.examples.extlibrary.util;
+
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.examples.extlibrary.*;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.examples.extlibrary.EXTLibraryPackage
+ * @generated
+ */
+public class EXTLibrarySwitch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static EXTLibraryPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibrarySwitch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = EXTLibraryPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ public T doSwitch(EObject theEObject)
+ {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject)
+ {
+ if (theEClass.eContainer() == modelPackage)
+ {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else
+ {
+ List<EClass> eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch(eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(int classifierID, EObject theEObject)
+ {
+ switch (classifierID)
+ {
+ case EXTLibraryPackage.BOOK:
+ {
+ Book book = (Book)theEObject;
+ T result = caseBook(book);
+ if (result == null) result = caseCirculatingItem(book);
+ if (result == null) result = caseItem(book);
+ if (result == null) result = caseLendable(book);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.LIBRARY:
+ {
+ Library library = (Library)theEObject;
+ T result = caseLibrary(library);
+ if (result == null) result = caseAddressable(library);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.WRITER:
+ {
+ Writer writer = (Writer)theEObject;
+ T result = caseWriter(writer);
+ if (result == null) result = casePerson(writer);
+ if (result == null) result = caseAddressable(writer);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.ITEM:
+ {
+ Item item = (Item)theEObject;
+ T result = caseItem(item);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.LENDABLE:
+ {
+ Lendable lendable = (Lendable)theEObject;
+ T result = caseLendable(lendable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.CIRCULATING_ITEM:
+ {
+ CirculatingItem circulatingItem = (CirculatingItem)theEObject;
+ T result = caseCirculatingItem(circulatingItem);
+ if (result == null) result = caseItem(circulatingItem);
+ if (result == null) result = caseLendable(circulatingItem);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.PERIODICAL:
+ {
+ Periodical periodical = (Periodical)theEObject;
+ T result = casePeriodical(periodical);
+ if (result == null) result = caseItem(periodical);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM:
+ {
+ AudioVisualItem audioVisualItem = (AudioVisualItem)theEObject;
+ T result = caseAudioVisualItem(audioVisualItem);
+ if (result == null) result = caseCirculatingItem(audioVisualItem);
+ if (result == null) result = caseItem(audioVisualItem);
+ if (result == null) result = caseLendable(audioVisualItem);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.BOOK_ON_TAPE:
+ {
+ BookOnTape bookOnTape = (BookOnTape)theEObject;
+ T result = caseBookOnTape(bookOnTape);
+ if (result == null) result = caseAudioVisualItem(bookOnTape);
+ if (result == null) result = caseCirculatingItem(bookOnTape);
+ if (result == null) result = caseItem(bookOnTape);
+ if (result == null) result = caseLendable(bookOnTape);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.VIDEO_CASSETTE:
+ {
+ VideoCassette videoCassette = (VideoCassette)theEObject;
+ T result = caseVideoCassette(videoCassette);
+ if (result == null) result = caseAudioVisualItem(videoCassette);
+ if (result == null) result = caseCirculatingItem(videoCassette);
+ if (result == null) result = caseItem(videoCassette);
+ if (result == null) result = caseLendable(videoCassette);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.BORROWER:
+ {
+ Borrower borrower = (Borrower)theEObject;
+ T result = caseBorrower(borrower);
+ if (result == null) result = casePerson(borrower);
+ if (result == null) result = caseAddressable(borrower);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.PERSON:
+ {
+ Person person = (Person)theEObject;
+ T result = casePerson(person);
+ if (result == null) result = caseAddressable(person);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.EMPLOYEE:
+ {
+ Employee employee = (Employee)theEObject;
+ T result = caseEmployee(employee);
+ if (result == null) result = casePerson(employee);
+ if (result == null) result = caseAddressable(employee);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.ADDRESSABLE:
+ {
+ Addressable addressable = (Addressable)theEObject;
+ T result = caseAddressable(addressable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Book</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Book</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBook(Book object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Library</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Library</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLibrary(Library object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Writer</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Writer</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseWriter(Writer object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Item</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Item</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseItem(Item object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Lendable</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Lendable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLendable(Lendable object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Circulating Item</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Circulating Item</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCirculatingItem(CirculatingItem object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Periodical</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Periodical</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePeriodical(Periodical object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Audio Visual Item</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Audio Visual Item</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAudioVisualItem(AudioVisualItem object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Book On Tape</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Book On Tape</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBookOnTape(BookOnTape object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Video Cassette</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Video Cassette</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVideoCassette(VideoCassette object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Borrower</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Borrower</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBorrower(Borrower object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Person</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Person</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePerson(Person object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Employee</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Employee</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEmployee(Employee object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Addressable</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Addressable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAddressable(Addressable object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public T defaultCase(EObject object)
+ {
+ return null;
+ }
+
+} //EXTLibrarySwitch
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/.classpath b/examples/org.eclipse.emf.parsley.examples.firstexample/.classpath
new file mode 100644
index 000000000..b83e23bcd
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="emfparsley-gen"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/.project b/examples/org.eclipse.emf.parsley.examples.firstexample/.project
new file mode 100644
index 000000000..c8a12fcc4
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.firstexample</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.parsley.examples.firstexample/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.parsley.examples.firstexample/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.parsley.examples.firstexample/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..3a164d4a3
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.emf.parsley.examples.firstexample
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: org.eclipse.emf.parsley.examples.firstexample;singleton:=true
+Bundle-Activator: org.eclipse.emf.parsley.examples.firstexample.FirstexampleActivator
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.ui;bundle-version="3.5.0",
+ org.eclipse.emf.parsley.views,
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.4.2,2.5.0)",
+ org.eclipse.emf.examples.library;bundle-version="2.5.0",
+ org.eclipse.emf.examples.library.edit;bundle-version="2.5.0"
+Import-Package: org.apache.log4j,
+ org.apache.commons.logging
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/build.properties b/examples/org.eclipse.emf.parsley.examples.firstexample/build.properties
new file mode 100644
index 000000000..bc1c86d2b
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/build.properties
@@ -0,0 +1,5 @@
+source.. = src/,\
+ emfparsley-gen/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/emfparsley-gen/org/eclipse/emf/parsley/examples/firstexample/EmfComponentsGuiceModuleGen.java b/examples/org.eclipse.emf.parsley.examples.firstexample/emfparsley-gen/org/eclipse/emf/parsley/examples/firstexample/EmfComponentsGuiceModuleGen.java
new file mode 100644
index 000000000..7af7c2c0b
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/emfparsley-gen/org/eclipse/emf/parsley/examples/firstexample/EmfComponentsGuiceModuleGen.java
@@ -0,0 +1,35 @@
+package org.eclipse.emf.parsley.examples.firstexample;
+
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.examples.firstexample.ui.provider.FeaturesProviderGen;
+import org.eclipse.emf.parsley.examples.firstexample.ui.provider.LabelProviderGen;
+import org.eclipse.emf.parsley.examples.firstexample.ui.provider.PropertyDescriptionProviderGen;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+import org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * org.eclipse.emf.parsley.examples.firstexample Emf Components Dsl Module file
+ */
+@SuppressWarnings("all")
+public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {
+ public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends ILabelProvider> bindILabelProvider() {
+ return LabelProviderGen.class;
+ }
+
+ @Override
+ public Class<? extends PropertyDescriptionProvider> bindPropertyDescriptionProvider() {
+ return PropertyDescriptionProviderGen.class;
+ }
+
+ @Override
+ public Class<? extends FeaturesProvider> bindFeaturesProvider() {
+ return FeaturesProviderGen.class;
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/emfparsley-gen/org/eclipse/emf/parsley/examples/firstexample/ui/provider/FeaturesProviderGen.java b/examples/org.eclipse.emf.parsley.examples.firstexample/emfparsley-gen/org/eclipse/emf/parsley/examples/firstexample/ui/provider/FeaturesProviderGen.java
new file mode 100644
index 000000000..20a60a5d2
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/emfparsley-gen/org/eclipse/emf/parsley/examples/firstexample/ui/provider/FeaturesProviderGen.java
@@ -0,0 +1,19 @@
+package org.eclipse.emf.parsley.examples.firstexample.ui.provider;
+
+import org.eclipse.emf.parsley.ui.provider.EClassToEStructuralFeatureAsStringsMap;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+
+@SuppressWarnings("all")
+public class FeaturesProviderGen extends FeaturesProvider {
+ @Override
+ public void buildStringMap(final EClassToEStructuralFeatureAsStringsMap stringMap) {
+ super.buildStringMap(stringMap);
+
+ stringMap.mapTo("org.eclipse.emf.examples.extlibrary.Library",
+ "name");
+ stringMap.mapTo("org.eclipse.emf.examples.extlibrary.Writer",
+ "name", "address", "books");
+ stringMap.mapTo("org.eclipse.emf.examples.extlibrary.Book",
+ "author", "title", "category");
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/emfparsley-gen/org/eclipse/emf/parsley/examples/firstexample/ui/provider/LabelProviderGen.java b/examples/org.eclipse.emf.parsley.examples.firstexample/emfparsley-gen/org/eclipse/emf/parsley/examples/firstexample/ui/provider/LabelProviderGen.java
new file mode 100644
index 000000000..63b3f4729
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/emfparsley-gen/org/eclipse/emf/parsley/examples/firstexample/ui/provider/LabelProviderGen.java
@@ -0,0 +1,36 @@
+package org.eclipse.emf.parsley.examples.firstexample.ui.provider;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.examples.extlibrary.Book;
+import org.eclipse.emf.examples.extlibrary.Writer;
+import org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider;
+
+@SuppressWarnings("all")
+public class LabelProviderGen extends ViewerLabelProvider {
+ @Inject
+ public LabelProviderGen(final AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+
+ public String text(final Book b) {
+ String _title = b.getTitle();
+ String _plus = ("\"" + _title);
+ String _plus_1 = (_plus + "\"");
+ String _xifexpression = null;
+ Writer _author = b.getAuthor();
+ boolean _notEquals = (!Objects.equal(_author, null));
+ if (_notEquals) {
+ Writer _author_1 = b.getAuthor();
+ String _name = _author_1.getName();
+ String _plus_2 = (" (by " + _name);
+ String _plus_3 = (_plus_2 + ")");
+ _xifexpression = _plus_3;
+ } else {
+ _xifexpression = "";
+ }
+ String _plus_4 = (_plus_1 + _xifexpression);
+ return _plus_4;
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/emfparsley-gen/org/eclipse/emf/parsley/examples/firstexample/ui/provider/PropertyDescriptionProviderGen.java b/examples/org.eclipse.emf.parsley.examples.firstexample/emfparsley-gen/org/eclipse/emf/parsley/examples/firstexample/ui/provider/PropertyDescriptionProviderGen.java
new file mode 100644
index 000000000..392358297
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/emfparsley-gen/org/eclipse/emf/parsley/examples/firstexample/ui/provider/PropertyDescriptionProviderGen.java
@@ -0,0 +1,15 @@
+package org.eclipse.emf.parsley.examples.firstexample.ui.provider;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider;
+
+@SuppressWarnings("all")
+public class PropertyDescriptionProviderGen extends PropertyDescriptionProvider {
+ public String text_Book_author(final EStructuralFeature it) {
+ return "Wrote by:";
+ }
+
+ public String text_Writer_name(final EStructuralFeature it) {
+ return "Name:";
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/plugin.xml b/examples/org.eclipse.emf.parsley.examples.firstexample/plugin.xml
new file mode 100644
index 000000000..c739205a7
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/plugin.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ category="org.eclipse.emf.parsley"
+ class="org.eclipse.emf.parsley.examples.firstexample.FirstexampleExecutableExtensionFactory:org.eclipse.emf.parsley.examples.firstexample.views.LibraryTreeFormView"
+ id="org.eclipse.emf.parsley.examples.firstexample.view.library.treeform"
+ name="My Library Tree Form"
+ restorable="true">
+ </view>
+ </extension>
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/plugin.xml_emfparsley_gen b/examples/org.eclipse.emf.parsley.examples.firstexample/plugin.xml_emfparsley_gen
new file mode 100644
index 000000000..c739205a7
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/plugin.xml_emfparsley_gen
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ category="org.eclipse.emf.parsley"
+ class="org.eclipse.emf.parsley.examples.firstexample.FirstexampleExecutableExtensionFactory:org.eclipse.emf.parsley.examples.firstexample.views.LibraryTreeFormView"
+ id="org.eclipse.emf.parsley.examples.firstexample.view.library.treeform"
+ name="My Library Tree Form"
+ restorable="true">
+ </view>
+ </extension>
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/FirstexampleActivator.java b/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/FirstexampleActivator.java
new file mode 100644
index 000000000..66ca0775c
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/FirstexampleActivator.java
@@ -0,0 +1,57 @@
+package org.eclipse.emf.parsley.examples.firstexample;
+
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.ui.EmfComponentsAbstractActivator;
+import org.osgi.framework.BundleContext;
+
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class FirstexampleActivator extends EmfComponentsAbstractActivator {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.parsley.examples.firstexample"; //$NON-NLS-1$
+
+ // The shared instance
+ private static FirstexampleActivator plugin;
+
+ public FirstexampleActivator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static FirstexampleActivator getDefault() {
+ return plugin;
+ }
+
+ /**
+ * Creates the EmfComponentsGuiceModule for this this plugin
+ *
+ * @return the EmfComponentsGuiceModule for this this plugin
+ */
+ public EmfComponentsGuiceModule createModule() {
+ return new FirstexampleGuiceModule(getDefault());
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/FirstexampleExecutableExtensionFactory.java b/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/FirstexampleExecutableExtensionFactory.java
new file mode 100644
index 000000000..973ece158
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/FirstexampleExecutableExtensionFactory.java
@@ -0,0 +1,27 @@
+package org.eclipse.emf.parsley.examples.firstexample;
+
+import org.eclipse.emf.parsley.EmfComponentsExtensionFactory;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.osgi.framework.Bundle;
+
+
+import com.google.inject.Injector;
+
+public class FirstexampleExecutableExtensionFactory extends
+ EmfComponentsExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return FirstexampleActivator.getDefault().getBundle();
+ }
+
+ @Override
+ protected EmfComponentsGuiceModule getModule() {
+ return FirstexampleActivator.getDefault().createModule();
+ }
+
+ @Override
+ protected Injector getInjector() {
+ return FirstexampleActivator.getDefault().getInjector();
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/FirstexampleGuiceModule.java b/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/FirstexampleGuiceModule.java
new file mode 100644
index 000000000..527cc157c
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/FirstexampleGuiceModule.java
@@ -0,0 +1,19 @@
+package org.eclipse.emf.parsley.examples.firstexample;
+
+
+import org.eclipse.emf.parsley.examples.firstexample.EmfComponentsGuiceModuleGen;
+
+import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+
+public class FirstexampleGuiceModule extends EmfComponentsGuiceModuleGen {
+
+ public FirstexampleGuiceModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ public Class<? extends EmptyResourceInitializer> bindEmptyResourceInitializer() {
+ return LibraryEmptyResourceInitializer.class;
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/LibraryEmptyResourceInitializer.java b/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/LibraryEmptyResourceInitializer.java
new file mode 100644
index 000000000..338632b37
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/LibraryEmptyResourceInitializer.java
@@ -0,0 +1,18 @@
+package org.eclipse.emf.parsley.examples.firstexample;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.examples.extlibrary.EXTLibraryFactory;
+import org.eclipse.emf.examples.extlibrary.Library;
+import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+
+public class LibraryEmptyResourceInitializer extends EmptyResourceInitializer {
+
+ public void initialize(Resource resource) {
+ super.initialize(resource);
+ Library library = EXTLibraryFactory.eINSTANCE.createLibrary();
+ resource.getContents().add(library);
+ }
+
+}
+
+
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/module.parsley b/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/module.parsley
new file mode 100644
index 000000000..332e67977
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/module.parsley
@@ -0,0 +1,41 @@
+import org.eclipse.emf.examples.extlibrary.Book
+import org.eclipse.emf.examples.extlibrary.Library
+import org.eclipse.emf.examples.extlibrary.Writer
+import org.eclipse.emf.parsley.examples.firstexample.views.LibraryTreeFormView
+
+/* org.eclipse.emf.parsley.examples.firstexample Emf Components Dsl Module file */
+module org.eclipse.emf.parsley.examples.firstexample {
+
+ parts {
+ viewpart org.eclipse.emf.parsley.examples.firstexample.view.library.treeform {
+ viewname "My Library Tree Form"
+ viewclass LibraryTreeFormView
+ }
+ }
+
+ featuresProvider {
+ features {
+ Library -> name
+ Writer -> name, address, books
+ Book -> author, title, category
+ }
+ }
+
+ propertyDescriptionProvider {
+ text {
+ Book : author -> 'Wrote by:'
+ Writer : name -> 'Name:'
+ }
+ }
+
+ labelProvider {
+ text {
+ Book b -> {
+ '"' + b.title + '"' +
+ if (b.author != null)
+ ' (by '+ b.author.name + ')'
+ else ''
+ }
+ }
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/views/LibraryTreeFormView.java b/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/views/LibraryTreeFormView.java
new file mode 100644
index 000000000..5980351b4
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.firstexample/src/org/eclipse/emf/parsley/examples/firstexample/views/LibraryTreeFormView.java
@@ -0,0 +1,13 @@
+package org.eclipse.emf.parsley.examples.firstexample.views;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.parsley.views.AbstractSaveableTreeFormView;
+
+public class LibraryTreeFormView extends AbstractSaveableTreeFormView {
+
+ protected URI createResourceURI() {
+ return URI.createFileURI( System.getProperty("user.home") + "/MyLibrary.library" );
+ }
+
+}
+
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/.classpath b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/.classpath
new file mode 100644
index 000000000..7e8449de0
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/.project b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/.project
new file mode 100644
index 000000000..d13b8ae49
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.fowlerdsl.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..c5dd0a0a7
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,85 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..ef462051e
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,24 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.emf.parsley.examples.fowlerdsl.ui
+Bundle-Vendor: My Company
+Bundle-Version: 0.1.0.qualifier
+Bundle-SymbolicName: org.eclipse.emf.parsley.examples.fowlerdsl.ui;singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.emf.parsley.examples.fowlerdsl;visibility:=reexport,
+ org.eclipse.xtext.ui,
+ org.eclipse.ui.editors;bundle-version="3.5.0",
+ org.eclipse.ui.ide;bundle-version="3.5.0",
+ org.eclipse.xtext.ui.shared,
+ org.eclipse.ui;bundle-version="3.5.0",
+ org.eclipse.xtext.builder,
+ org.antlr.runtime,
+ org.eclipse.xtext.common.types.ui,
+ org.eclipse.xtext.ui.codetemplates.ui,
+ org.eclipse.compare;bundle-version="3.5.0"
+Import-Package: org.apache.log4j,
+ org.apache.commons.logging
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist,
+ org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.antlr
+Bundle-Activator: org.eclipse.emf.parsley.examples.fowlerdsl.ui.internal.StatemachineActivator
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/build.properties b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/build.properties
new file mode 100644
index 000000000..e10dcceb6
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/build.properties
@@ -0,0 +1,5 @@
+source.. = src/,\
+ src-gen/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/plugin.xml b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/plugin.xml
new file mode 100644
index 000000000..cd723b979
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/plugin.xml
@@ -0,0 +1,280 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+ contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+ default="true"
+ extensions="statemachine"
+ id="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine"
+ name="Statemachine Editor">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+ commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ <handler
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+ commandId="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.validate">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.core.expressions.definitions">
+ <definition id="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.Editor.opened">
+ <and>
+ <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+ <with variable="activeEditor">
+ <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName"
+ value="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine"
+ forcePluginActivation="true"/>
+ </with>
+ </and>
+ </definition>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine"
+ name="Statemachine">
+ <keywordReference id="org.eclipse.emf.parsley.examples.fowlerdsl.ui.keyword_Statemachine"/>
+ </page>
+ <page
+ category="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine"
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+ id="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.coloring"
+ name="Syntax Coloring">
+ <keywordReference id="org.eclipse.emf.parsley.examples.fowlerdsl.ui.keyword_Statemachine"/>
+ </page>
+ <page
+ category="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine"
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+ id="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.templates"
+ name="Templates">
+ <keywordReference id="org.eclipse.emf.parsley.examples.fowlerdsl.ui.keyword_Statemachine"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+ id="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine"
+ name="Statemachine">
+ <keywordReference id="org.eclipse.emf.parsley.examples.fowlerdsl.ui.keyword_Statemachine"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.keywords">
+ <keyword
+ id="org.eclipse.emf.parsley.examples.fowlerdsl.ui.keyword_Statemachine"
+ label="Statemachine"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Trigger expensive validation"
+ id="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.validate"
+ name="Validate">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command
+ commandId="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.validate"
+ style="push"
+ tooltip="Trigger expensive validation">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution locationURI="popup:#TextEditorContext?endof=group.find">
+ <command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+ commandId="org.eclipse.xtext.ui.editor.FindReferences">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+
+<!-- adding resource factories -->
+
+ <extension
+ point="org.eclipse.emf.ecore.extension_parser">
+ <parser
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+ type="statemachine">
+ </parser>
+ </extension>
+ <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+ <resourceServiceProvider
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+ uriExtension="statemachine">
+ </resourceServiceProvider>
+ </extension>
+
+
+
+ <extension
+ point="org.eclipse.xtext.builder.participant">
+ <participant
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant">
+ </participant>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine"
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.compiler.preferencePage"
+ name="Compiler">
+ <keywordReference id="org.eclipse.emf.parsley.examples.fowlerdsl.ui.keyword_Statemachine"/>
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ category="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine"
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+ id="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.compiler.propertyPage"
+ name="Compiler">
+ <keywordReference id="org.eclipse.emf.parsley.examples.fowlerdsl.ui.keyword_Statemachine"/>
+ <enabledWhen>
+ <adapt type="org.eclipse.core.resources.IProject"/>
+ </enabledWhen>
+ <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+ </page>
+ </extension>
+
+ <!-- Quick Outline -->
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+ commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ description="Open the quick outline."
+ id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ name="Quick Outline">
+ </command>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.open">
+ <command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+ style="push"
+ tooltip="Open Quick Outline">
+ <visibleWhen checkEnabled="false">
+ <reference definitionId="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.Editor.opened"/>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <!-- quickfix marker resolution generator -->
+ <extension
+ point="org.eclipse.ui.ide.markerResolution">
+ <markerResolutionGenerator
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator">
+ </markerResolutionGenerator>
+ </extension>
+ <!-- Rename Refactoring -->
+ <extension point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.IRenameElementHandler"
+ commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+ <activeWhen>
+ <reference
+ definitionId="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.Editor.opened">
+ </reference>
+ </activeWhen>
+ </handler>
+ </extension>
+ <extension point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="popup:#TextEditorContext?after=group.edit">
+ <command commandId="org.eclipse.xtext.ui.refactoring.RenameElement"
+ style="push">
+ <visibleWhen checkEnabled="false">
+ <reference
+ definitionId="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.Editor.opened">
+ </reference>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+ <extension point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine"
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+ id="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.refactoring"
+ name="Refactoring">
+ <keywordReference id="org.eclipse.emf.parsley.examples.fowlerdsl.ui.keyword_Statemachine"/>
+ </page>
+ </extension>
+
+ <extension point="org.eclipse.compare.contentViewers">
+ <viewer id="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.compare.contentViewers"
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="statemachine">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.compare.contentMergeViewers">
+ <viewer id="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.compare.contentMergeViewers"
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+ extensions="statemachine" label="Statemachine Compare">
+ </viewer>
+ </extension>
+ <extension point="org.eclipse.ui.editors.documentProviders">
+ <provider id="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine.editors.documentProviders"
+ class="org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+ extensions="statemachine">
+ </provider>
+ </extension>
+
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/AbstractStatemachineUiModule.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/AbstractStatemachineUiModule.java
new file mode 100644
index 000000000..42498920a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/AbstractStatemachineUiModule.java
@@ -0,0 +1,242 @@
+
+/*
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.ui;
+
+import org.eclipse.xtext.ui.DefaultUiModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Manual modifications go to {org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineUiModule}
+ */
+@SuppressWarnings("all")
+public abstract class AbstractStatemachineUiModule extends DefaultUiModule {
+
+ public AbstractStatemachineUiModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+
+ // contributed by org.eclipse.xtext.ui.generator.ImplicitUiFragment
+ public com.google.inject.Provider<org.eclipse.xtext.resource.containers.IAllContainersState> provideIAllContainersState() {
+ return org.eclipse.xtext.ui.shared.Access.getJavaProjectsState();
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IProposalConflictHelper> bindIProposalConflictHelper() {
+ return org.eclipse.xtext.ui.editor.contentassist.antlr.AntlrProposalConflictHelper.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public void configureHighlightingLexer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.emf.parsley.examples.fowlerdsl.parser.antlr.internal.InternalStatemachineLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public void configureHighlightingTokenDefProvider(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.parser.antlr.ITokenDefProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.exporting.QualifiedNamesFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator> bindIDependentElementsCalculator() {
+ return org.eclipse.xtext.ui.refactoring.impl.DefaultDependentElementsCalculator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(org.eclipse.xtext.builder.clustering.CurrentDescriptions.ResourceSetAware.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.IXtextEditorCallback> bindIXtextEditorCallback() {
+ return org.eclipse.xtext.builder.nature.NatureAddingEditorCallback.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public void configureIResourceDescriptionsPersisted(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource.PERSISTED_DESCRIPTIONS)).to(org.eclipse.xtext.builder.builderState.IBuilderState.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource> bindDocumentBasedDirtyResource() {
+ return org.eclipse.xtext.builder.impl.PersistentDataAwareDirtyResource.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+ public Class<? extends org.eclipse.xtext.builder.IXtextBuilderParticipant> bindIXtextBuilderParticipant() {
+ return org.eclipse.xtext.builder.BuilderParticipant.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+ public org.eclipse.core.resources.IWorkspaceRoot bindIWorkspaceRootToInstance() {
+ return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot();
+ }
+
+ // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+ public void configureBuilderPreferenceStoreInitializer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("builderPreferenceInitializer")).to(org.eclipse.xtext.builder.preferences.BuilderPreferenceAccess.Initializer.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment
+ public Class<? extends org.eclipse.jface.viewers.ILabelProvider> bindILabelProvider() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.ui.labeling.StatemachineLabelProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.labeling.LabelProviderFragment
+ public void configureResourceUIServiceLabelProvider(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.jface.viewers.ILabelProvider.class).annotatedWith(org.eclipse.xtext.ui.resource.ResourceServiceDescriptionLabelProvider.class).to(org.eclipse.emf.parsley.examples.fowlerdsl.ui.labeling.StatemachineDescriptionLabelProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.outline.IOutlineTreeProvider> bindIOutlineTreeProvider() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.ui.outline.StatemachineOutlineTreeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.outline.OutlineTreeProviderFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.outline.impl.IOutlineTreeStructureProvider> bindIOutlineTreeStructureProvider() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.ui.outline.StatemachineOutlineTreeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.quickfix.QuickfixProviderFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.quickfix.IssueResolutionProvider> bindIssueResolutionProvider() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.ui.quickfix.StatemachineQuickfixProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.contentAssist.JavaBasedContentAssistFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider> bindIContentProposalProvider() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.StatemachineProposalProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext.Factory> bindContentAssistContext$Factory() {
+ return org.eclipse.xtext.ui.editor.contentassist.antlr.ParserBasedContentAssistContextFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.antlr.IContentAssistParser> bindIContentAssistParser() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.antlr.StatemachineParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public void configureContentAssistLexerProvider(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.antlr.internal.InternalStatemachineLexer.class).toProvider(org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.antlr.internal.InternalStatemachineLexer.class));
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+ public void configureContentAssistLexer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.CONTENT_ASSIST)).to(org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.antlr.internal.InternalStatemachineLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameStrategy> bindIRenameStrategy() {
+ return org.eclipse.xtext.ui.refactoring.impl.DefaultRenameStrategy.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.IReferenceUpdater> bindIReferenceUpdater() {
+ return org.eclipse.xtext.ui.refactoring.impl.DefaultReferenceUpdater.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public void configureIPreferenceStoreInitializer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreInitializer.class).annotatedWith(com.google.inject.name.Names.named("RefactoringPreferences")).to(org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferences.Initializer.class);
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.IRenameRefactoringProvider> bindIRenameRefactoringProvider() {
+ return org.eclipse.xtext.ui.refactoring.impl.DefaultRenameRefactoringProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.ui.IRenameSupport.Factory> bindIRenameSupport$Factory() {
+ return org.eclipse.xtext.ui.refactoring.ui.DefaultRenameSupport.Factory.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.refactoring.RefactorElementNameFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.ui.IRenameElementHandler> bindIRenameElementHandler() {
+ return org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public java.lang.ClassLoader bindClassLoaderToInstance() {
+ return getClass().getClassLoader();
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.access.IJvmTypeProvider.Factory> bindIJvmTypeProvider$Factory() {
+ return org.eclipse.xtext.common.types.access.jdt.JdtTypeProviderFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.xtext.AbstractTypeScopeProvider> bindAbstractTypeScopeProvider() {
+ return org.eclipse.xtext.common.types.xtext.ui.JdtBasedSimpleTypeScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.xtext.ui.ITypesProposalProvider> bindITypesProposalProvider() {
+ return org.eclipse.xtext.common.types.xtext.ui.JdtTypesProposalProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.access.jdt.IJavaProjectProvider> bindIJavaProjectProvider() {
+ return org.eclipse.xtext.common.types.xtext.ui.XtextResourceSetBasedProjectProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkHelper> bindIHyperlinkHelper() {
+ return org.eclipse.xtext.common.types.xtext.ui.TypeAwareHyperlinkHelper.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher> bindPrefixMatcher() {
+ return org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.contentassist.AbstractJavaBasedContentProposalProvider.ReferenceProposalCreator> bindAbstractJavaBasedContentProposalProvider$ReferenceProposalCreator() {
+ return org.eclipse.xtext.common.types.xtext.ui.TypeAwareReferenceProposalCreator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.IValidationJobScheduler> bindIValidationJobScheduler() {
+ return org.eclipse.xtext.common.types.xtext.ui.JdtValidationJobScheduler.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.refactoring.impl.RefactoringResourceSetProvider> bindRefactoringResourceSetProvider() {
+ return org.eclipse.xtext.common.types.ui.refactoring.JvmRefactoringResourceSetProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.preferences.TemplatesLanguageConfiguration> provideTemplatesLanguageConfiguration() {
+ return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getTemplatesLanguageConfigurationProvider();
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ public com.google.inject.Provider<org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistry> provideLanguageRegistry() {
+ return org.eclipse.xtext.ui.codetemplates.ui.AccessibleCodetemplatesActivator.getLanguageRegistry();
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar> bindLanguageRegistrar() {
+ return org.eclipse.xtext.ui.codetemplates.ui.registry.LanguageRegistrar.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage> bindXtextTemplatePreferencePage() {
+ return org.eclipse.xtext.ui.codetemplates.ui.preferences.AdvancedTemplatesPreferencePage.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.templates.CodetemplatesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser> bindIPartialContentAssistParser() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.antlr.PartialStatemachineContentAssistParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.ui.generator.compare.CompareFragment
+ public Class<? extends org.eclipse.compare.IViewerCreator> bindIViewerCreator() {
+ return org.eclipse.xtext.ui.compare.DefaultViewerCreator.class;
+ }
+
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/StatemachineExecutableExtensionFactory.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/StatemachineExecutableExtensionFactory.java
new file mode 100644
index 000000000..58b4d38ca
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/StatemachineExecutableExtensionFactory.java
@@ -0,0 +1,27 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.ui;
+
+import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
+import org.osgi.framework.Bundle;
+
+import com.google.inject.Injector;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class StatemachineExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.ui.internal.StatemachineActivator.getInstance().getBundle();
+ }
+
+ @Override
+ protected Injector getInjector() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.ui.internal.StatemachineActivator.getInstance().getInjector("org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine");
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/AbstractStatemachineProposalProvider.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/AbstractStatemachineProposalProvider.java
new file mode 100644
index 000000000..d843bf6ff
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/AbstractStatemachineProposalProvider.java
@@ -0,0 +1,75 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+
+/**
+ * Represents a generated, default implementation of interface {@link IProposalProvider}.
+ * Methods are dynamically dispatched on the first parameter, i.e., you can override them
+ * with a more concrete subtype.
+ */
+@SuppressWarnings("all")
+public class AbstractStatemachineProposalProvider extends TerminalsProposalProvider {
+
+ public void completeStatemachine_Events(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStatemachine_ResetEvents(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStatemachine_Commands(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeStatemachine_States(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeEvent_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeEvent_Code(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCommand_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeCommand_Code(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeState_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeState_Actions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeState_Transitions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTransition_Event(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+ public void completeTransition_State(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+ }
+
+ public void complete_Statemachine(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Event(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Command(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_State(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+ public void complete_Transition(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+ // subclasses may override
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/PartialStatemachineContentAssistParser.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/PartialStatemachineContentAssistParser.java
new file mode 100644
index 000000000..8f8242172
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/PartialStatemachineContentAssistParser.java
@@ -0,0 +1,37 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.xtext.AbstractRule;
+import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.util.PolymorphicDispatcher;
+
+/**
+ * @author Sebastian Zarnekow - Initial contribution and API
+ */
+public class PartialStatemachineContentAssistParser extends StatemachineParser implements IPartialContentAssistParser {
+
+ private AbstractRule rule;
+
+ public void initializeFor(AbstractRule rule) {
+ this.rule = rule;
+ }
+
+ @Override
+ protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+ if (rule == null || rule.eIsProxy())
+ return Collections.emptyList();
+ String methodName = "entryRule" + rule.getName();
+ PolymorphicDispatcher<Collection<FollowElement>> dispatcher =
+ new PolymorphicDispatcher<Collection<FollowElement>>(methodName, 0, 0, Collections.singletonList(parser));
+ dispatcher.invoke();
+ return parser.getFollowElements();
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/StatemachineParser.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/StatemachineParser.java
new file mode 100644
index 000000000..fd8c2a183
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/StatemachineParser.java
@@ -0,0 +1,91 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.HashMap;
+
+import org.antlr.runtime.RecognitionException;
+import org.eclipse.xtext.AbstractElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.AbstractContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+
+import com.google.inject.Inject;
+
+import org.eclipse.emf.parsley.examples.fowlerdsl.services.StatemachineGrammarAccess;
+
+public class StatemachineParser extends AbstractContentAssistParser {
+
+ @Inject
+ private StatemachineGrammarAccess grammarAccess;
+
+ private Map<AbstractElement, String> nameMappings;
+
+ @Override
+ protected org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.antlr.internal.InternalStatemachineParser createParser() {
+ org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.antlr.internal.InternalStatemachineParser result = new org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.antlr.internal.InternalStatemachineParser(null);
+ result.setGrammarAccess(grammarAccess);
+ return result;
+ }
+
+ @Override
+ protected String getRuleName(AbstractElement element) {
+ if (nameMappings == null) {
+ nameMappings = new HashMap<AbstractElement, String>() {
+ private static final long serialVersionUID = 1L;
+ {
+ put(grammarAccess.getStatemachineAccess().getGroup(), "rule__Statemachine__Group__0");
+ put(grammarAccess.getStatemachineAccess().getGroup_1(), "rule__Statemachine__Group_1__0");
+ put(grammarAccess.getStatemachineAccess().getGroup_2(), "rule__Statemachine__Group_2__0");
+ put(grammarAccess.getStatemachineAccess().getGroup_3(), "rule__Statemachine__Group_3__0");
+ put(grammarAccess.getEventAccess().getGroup(), "rule__Event__Group__0");
+ put(grammarAccess.getCommandAccess().getGroup(), "rule__Command__Group__0");
+ put(grammarAccess.getStateAccess().getGroup(), "rule__State__Group__0");
+ put(grammarAccess.getStateAccess().getGroup_2(), "rule__State__Group_2__0");
+ put(grammarAccess.getTransitionAccess().getGroup(), "rule__Transition__Group__0");
+ put(grammarAccess.getStatemachineAccess().getEventsAssignment_1_1(), "rule__Statemachine__EventsAssignment_1_1");
+ put(grammarAccess.getStatemachineAccess().getResetEventsAssignment_2_1(), "rule__Statemachine__ResetEventsAssignment_2_1");
+ put(grammarAccess.getStatemachineAccess().getCommandsAssignment_3_1(), "rule__Statemachine__CommandsAssignment_3_1");
+ put(grammarAccess.getStatemachineAccess().getStatesAssignment_4(), "rule__Statemachine__StatesAssignment_4");
+ put(grammarAccess.getEventAccess().getNameAssignment_0(), "rule__Event__NameAssignment_0");
+ put(grammarAccess.getEventAccess().getCodeAssignment_1(), "rule__Event__CodeAssignment_1");
+ put(grammarAccess.getCommandAccess().getNameAssignment_0(), "rule__Command__NameAssignment_0");
+ put(grammarAccess.getCommandAccess().getCodeAssignment_1(), "rule__Command__CodeAssignment_1");
+ put(grammarAccess.getStateAccess().getNameAssignment_1(), "rule__State__NameAssignment_1");
+ put(grammarAccess.getStateAccess().getActionsAssignment_2_2(), "rule__State__ActionsAssignment_2_2");
+ put(grammarAccess.getStateAccess().getTransitionsAssignment_3(), "rule__State__TransitionsAssignment_3");
+ put(grammarAccess.getTransitionAccess().getEventAssignment_0(), "rule__Transition__EventAssignment_0");
+ put(grammarAccess.getTransitionAccess().getStateAssignment_2(), "rule__Transition__StateAssignment_2");
+ }
+ };
+ }
+ return nameMappings.get(element);
+ }
+
+ @Override
+ protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+ try {
+ org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.antlr.internal.InternalStatemachineParser typedParser = (org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.antlr.internal.InternalStatemachineParser) parser;
+ typedParser.entryRuleStatemachine();
+ return typedParser.getFollowElements();
+ } catch(RecognitionException ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+
+ @Override
+ protected String[] getInitialHiddenTokens() {
+ return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
+ }
+
+ public StatemachineGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(StatemachineGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g
new file mode 100644
index 000000000..07f76965d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g
@@ -0,0 +1,1404 @@
+/*
+* generated by Xtext
+*/
+grammar InternalStatemachine;
+
+options {
+ superClass=AbstractInternalContentAssistParser;
+
+}
+
+@lexer::header {
+package org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer;
+}
+
+@parser::header {
+package org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.antlr.internal;
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import org.eclipse.emf.parsley.examples.fowlerdsl.services.StatemachineGrammarAccess;
+
+}
+
+@parser::members {
+
+ private StatemachineGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(StatemachineGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected Grammar getGrammar() {
+ return grammarAccess.getGrammar();
+ }
+
+ @Override
+ protected String getValueForTokenName(String tokenName) {
+ return tokenName;
+ }
+
+}
+
+
+
+
+// Entry rule entryRuleStatemachine
+entryRuleStatemachine
+:
+{ before(grammarAccess.getStatemachineRule()); }
+ ruleStatemachine
+{ after(grammarAccess.getStatemachineRule()); }
+ EOF
+;
+
+// Rule Statemachine
+ruleStatemachine
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getStatemachineAccess().getGroup()); }
+(rule__Statemachine__Group__0)
+{ after(grammarAccess.getStatemachineAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleEvent
+entryRuleEvent
+:
+{ before(grammarAccess.getEventRule()); }
+ ruleEvent
+{ after(grammarAccess.getEventRule()); }
+ EOF
+;
+
+// Rule Event
+ruleEvent
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getEventAccess().getGroup()); }
+(rule__Event__Group__0)
+{ after(grammarAccess.getEventAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleCommand
+entryRuleCommand
+:
+{ before(grammarAccess.getCommandRule()); }
+ ruleCommand
+{ after(grammarAccess.getCommandRule()); }
+ EOF
+;
+
+// Rule Command
+ruleCommand
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getCommandAccess().getGroup()); }
+(rule__Command__Group__0)
+{ after(grammarAccess.getCommandAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleState
+entryRuleState
+:
+{ before(grammarAccess.getStateRule()); }
+ ruleState
+{ after(grammarAccess.getStateRule()); }
+ EOF
+;
+
+// Rule State
+ruleState
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getStateAccess().getGroup()); }
+(rule__State__Group__0)
+{ after(grammarAccess.getStateAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleTransition
+entryRuleTransition
+:
+{ before(grammarAccess.getTransitionRule()); }
+ ruleTransition
+{ after(grammarAccess.getTransitionRule()); }
+ EOF
+;
+
+// Rule Transition
+ruleTransition
+ @init {
+ int stackSize = keepStackSize();
+ }
+ :
+(
+{ before(grammarAccess.getTransitionAccess().getGroup()); }
+(rule__Transition__Group__0)
+{ after(grammarAccess.getTransitionAccess().getGroup()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Statemachine__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__0__Impl
+ rule__Statemachine__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getStatemachineAction_0()); }
+(
+
+)
+{ after(grammarAccess.getStatemachineAccess().getStatemachineAction_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__1__Impl
+ rule__Statemachine__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getGroup_1()); }
+(rule__Statemachine__Group_1__0)?
+{ after(grammarAccess.getStatemachineAccess().getGroup_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__2__Impl
+ rule__Statemachine__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getGroup_2()); }
+(rule__Statemachine__Group_2__0)?
+{ after(grammarAccess.getStatemachineAccess().getGroup_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__3__Impl
+ rule__Statemachine__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getGroup_3()); }
+(rule__Statemachine__Group_3__0)?
+{ after(grammarAccess.getStatemachineAccess().getGroup_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getStatesAssignment_4()); }
+(rule__Statemachine__StatesAssignment_4)*
+{ after(grammarAccess.getStatemachineAccess().getStatesAssignment_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Statemachine__Group_1__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group_1__0__Impl
+ rule__Statemachine__Group_1__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group_1__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getEventsKeyword_1_0()); }
+
+ 'events'
+
+{ after(grammarAccess.getStatemachineAccess().getEventsKeyword_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group_1__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group_1__1__Impl
+ rule__Statemachine__Group_1__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group_1__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+(
+{ before(grammarAccess.getStatemachineAccess().getEventsAssignment_1_1()); }
+(rule__Statemachine__EventsAssignment_1_1)
+{ after(grammarAccess.getStatemachineAccess().getEventsAssignment_1_1()); }
+)
+(
+{ before(grammarAccess.getStatemachineAccess().getEventsAssignment_1_1()); }
+(rule__Statemachine__EventsAssignment_1_1)*
+{ after(grammarAccess.getStatemachineAccess().getEventsAssignment_1_1()); }
+)
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group_1__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group_1__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group_1__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getEndKeyword_1_2()); }
+
+ 'end'
+
+{ after(grammarAccess.getStatemachineAccess().getEndKeyword_1_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Statemachine__Group_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group_2__0__Impl
+ rule__Statemachine__Group_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getResetEventsKeyword_2_0()); }
+
+ 'resetEvents'
+
+{ after(grammarAccess.getStatemachineAccess().getResetEventsKeyword_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group_2__1__Impl
+ rule__Statemachine__Group_2__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+(
+{ before(grammarAccess.getStatemachineAccess().getResetEventsAssignment_2_1()); }
+(rule__Statemachine__ResetEventsAssignment_2_1)
+{ after(grammarAccess.getStatemachineAccess().getResetEventsAssignment_2_1()); }
+)
+(
+{ before(grammarAccess.getStatemachineAccess().getResetEventsAssignment_2_1()); }
+(rule__Statemachine__ResetEventsAssignment_2_1)*
+{ after(grammarAccess.getStatemachineAccess().getResetEventsAssignment_2_1()); }
+)
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group_2__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group_2__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group_2__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getEndKeyword_2_2()); }
+
+ 'end'
+
+{ after(grammarAccess.getStatemachineAccess().getEndKeyword_2_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Statemachine__Group_3__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group_3__0__Impl
+ rule__Statemachine__Group_3__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group_3__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getCommandsKeyword_3_0()); }
+
+ 'commands'
+
+{ after(grammarAccess.getStatemachineAccess().getCommandsKeyword_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group_3__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group_3__1__Impl
+ rule__Statemachine__Group_3__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group_3__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+(
+{ before(grammarAccess.getStatemachineAccess().getCommandsAssignment_3_1()); }
+(rule__Statemachine__CommandsAssignment_3_1)
+{ after(grammarAccess.getStatemachineAccess().getCommandsAssignment_3_1()); }
+)
+(
+{ before(grammarAccess.getStatemachineAccess().getCommandsAssignment_3_1()); }
+(rule__Statemachine__CommandsAssignment_3_1)*
+{ after(grammarAccess.getStatemachineAccess().getCommandsAssignment_3_1()); }
+)
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Statemachine__Group_3__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Statemachine__Group_3__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__Group_3__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getEndKeyword_3_2()); }
+
+ 'end'
+
+{ after(grammarAccess.getStatemachineAccess().getEndKeyword_3_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Event__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Event__Group__0__Impl
+ rule__Event__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Event__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getEventAccess().getNameAssignment_0()); }
+(rule__Event__NameAssignment_0)
+{ after(grammarAccess.getEventAccess().getNameAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Event__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Event__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Event__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getEventAccess().getCodeAssignment_1()); }
+(rule__Event__CodeAssignment_1)
+{ after(grammarAccess.getEventAccess().getCodeAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Command__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Command__Group__0__Impl
+ rule__Command__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Command__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCommandAccess().getNameAssignment_0()); }
+(rule__Command__NameAssignment_0)
+{ after(grammarAccess.getCommandAccess().getNameAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Command__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Command__Group__1__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Command__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCommandAccess().getCodeAssignment_1()); }
+(rule__Command__CodeAssignment_1)
+{ after(grammarAccess.getCommandAccess().getCodeAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__State__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__State__Group__0__Impl
+ rule__State__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__State__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateAccess().getStateKeyword_0()); }
+
+ 'state'
+
+{ after(grammarAccess.getStateAccess().getStateKeyword_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__State__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__State__Group__1__Impl
+ rule__State__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__State__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateAccess().getNameAssignment_1()); }
+(rule__State__NameAssignment_1)
+{ after(grammarAccess.getStateAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__State__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__State__Group__2__Impl
+ rule__State__Group__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__State__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateAccess().getGroup_2()); }
+(rule__State__Group_2__0)?
+{ after(grammarAccess.getStateAccess().getGroup_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__State__Group__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__State__Group__3__Impl
+ rule__State__Group__4
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__State__Group__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateAccess().getTransitionsAssignment_3()); }
+(rule__State__TransitionsAssignment_3)*
+{ after(grammarAccess.getStateAccess().getTransitionsAssignment_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__State__Group__4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__State__Group__4__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__State__Group__4__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateAccess().getEndKeyword_4()); }
+
+ 'end'
+
+{ after(grammarAccess.getStateAccess().getEndKeyword_4()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__State__Group_2__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__State__Group_2__0__Impl
+ rule__State__Group_2__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__State__Group_2__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateAccess().getActionsKeyword_2_0()); }
+
+ 'actions'
+
+{ after(grammarAccess.getStateAccess().getActionsKeyword_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__State__Group_2__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__State__Group_2__1__Impl
+ rule__State__Group_2__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__State__Group_2__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateAccess().getLeftCurlyBracketKeyword_2_1()); }
+
+ '{'
+
+{ after(grammarAccess.getStateAccess().getLeftCurlyBracketKeyword_2_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__State__Group_2__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__State__Group_2__2__Impl
+ rule__State__Group_2__3
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__State__Group_2__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+(
+{ before(grammarAccess.getStateAccess().getActionsAssignment_2_2()); }
+(rule__State__ActionsAssignment_2_2)
+{ after(grammarAccess.getStateAccess().getActionsAssignment_2_2()); }
+)
+(
+{ before(grammarAccess.getStateAccess().getActionsAssignment_2_2()); }
+(rule__State__ActionsAssignment_2_2)*
+{ after(grammarAccess.getStateAccess().getActionsAssignment_2_2()); }
+)
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__State__Group_2__3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__State__Group_2__3__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__State__Group_2__3__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateAccess().getRightCurlyBracketKeyword_2_3()); }
+
+ '}'
+
+{ after(grammarAccess.getStateAccess().getRightCurlyBracketKeyword_2_3()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__Transition__Group__0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Transition__Group__0__Impl
+ rule__Transition__Group__1
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__Group__0__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getEventAssignment_0()); }
+(rule__Transition__EventAssignment_0)
+{ after(grammarAccess.getTransitionAccess().getEventAssignment_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Transition__Group__1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Transition__Group__1__Impl
+ rule__Transition__Group__2
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__Group__1__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1()); }
+
+ '=>'
+
+{ after(grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+rule__Transition__Group__2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+ rule__Transition__Group__2__Impl
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__Group__2__Impl
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getStateAssignment_2()); }
+(rule__Transition__StateAssignment_2)
+{ after(grammarAccess.getTransitionAccess().getStateAssignment_2()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+rule__Statemachine__EventsAssignment_1_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_1_1_0()); }
+ ruleEvent{ after(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_1_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__ResetEventsAssignment_2_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getResetEventsEventCrossReference_2_1_0()); }
+(
+{ before(grammarAccess.getStatemachineAccess().getResetEventsEventIDTerminalRuleCall_2_1_0_1()); }
+ RULE_ID{ after(grammarAccess.getStatemachineAccess().getResetEventsEventIDTerminalRuleCall_2_1_0_1()); }
+)
+{ after(grammarAccess.getStatemachineAccess().getResetEventsEventCrossReference_2_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__CommandsAssignment_3_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getCommandsCommandParserRuleCall_3_1_0()); }
+ ruleCommand{ after(grammarAccess.getStatemachineAccess().getCommandsCommandParserRuleCall_3_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Statemachine__StatesAssignment_4
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_4_0()); }
+ ruleState{ after(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_4_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Event__NameAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0_0()); }
+ RULE_ID{ after(grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Event__CodeAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getEventAccess().getCodeIDTerminalRuleCall_1_0()); }
+ RULE_ID{ after(grammarAccess.getEventAccess().getCodeIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Command__NameAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCommandAccess().getNameIDTerminalRuleCall_0_0()); }
+ RULE_ID{ after(grammarAccess.getCommandAccess().getNameIDTerminalRuleCall_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Command__CodeAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getCommandAccess().getCodeIDTerminalRuleCall_1_0()); }
+ RULE_ID{ after(grammarAccess.getCommandAccess().getCodeIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__State__NameAssignment_1
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateAccess().getNameIDTerminalRuleCall_1_0()); }
+ RULE_ID{ after(grammarAccess.getStateAccess().getNameIDTerminalRuleCall_1_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__State__ActionsAssignment_2_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateAccess().getActionsCommandCrossReference_2_2_0()); }
+(
+{ before(grammarAccess.getStateAccess().getActionsCommandIDTerminalRuleCall_2_2_0_1()); }
+ RULE_ID{ after(grammarAccess.getStateAccess().getActionsCommandIDTerminalRuleCall_2_2_0_1()); }
+)
+{ after(grammarAccess.getStateAccess().getActionsCommandCrossReference_2_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__State__TransitionsAssignment_3
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getStateAccess().getTransitionsTransitionParserRuleCall_3_0()); }
+ ruleTransition{ after(grammarAccess.getStateAccess().getTransitionsTransitionParserRuleCall_3_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__EventAssignment_0
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0()); }
+(
+{ before(grammarAccess.getTransitionAccess().getEventEventIDTerminalRuleCall_0_0_1()); }
+ RULE_ID{ after(grammarAccess.getTransitionAccess().getEventEventIDTerminalRuleCall_0_0_1()); }
+)
+{ after(grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+rule__Transition__StateAssignment_2
+ @init {
+ int stackSize = keepStackSize();
+ }
+:
+(
+{ before(grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0()); }
+(
+{ before(grammarAccess.getTransitionAccess().getStateStateIDTerminalRuleCall_2_0_1()); }
+ RULE_ID{ after(grammarAccess.getTransitionAccess().getStateStateIDTerminalRuleCall_2_0_1()); }
+)
+{ after(grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0()); }
+)
+
+;
+finally {
+ restoreStackSize(stackSize);
+}
+
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'"')))* '"'|'\'' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.tokens b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.tokens
new file mode 100644
index 000000000..c40aca9b6
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.tokens
@@ -0,0 +1,25 @@
+RULE_ID=4
+RULE_ANY_OTHER=10
+RULE_SL_COMMENT=8
+RULE_ML_COMMENT=7
+T__19=19
+RULE_STRING=6
+T__16=16
+T__15=15
+T__18=18
+T__17=17
+T__12=12
+T__11=11
+T__14=14
+T__13=13
+RULE_INT=5
+RULE_WS=9
+'state'=15
+'end'=12
+'}'=18
+'actions'=16
+'commands'=14
+'=>'=19
+'events'=11
+'{'=17
+'resetEvents'=13
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachineLexer.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachineLexer.java
new file mode 100644
index 000000000..76ecb9c38
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachineLexer.java
@@ -0,0 +1,1072 @@
+package org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalStatemachineLexer extends Lexer {
+ public static final int RULE_ID=4;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int EOF=-1;
+ public static final int RULE_ML_COMMENT=7;
+ public static final int T__19=19;
+ public static final int RULE_STRING=6;
+ public static final int T__16=16;
+ public static final int T__15=15;
+ public static final int T__18=18;
+ public static final int T__17=17;
+ public static final int T__12=12;
+ public static final int T__11=11;
+ public static final int T__14=14;
+ public static final int T__13=13;
+ public static final int RULE_INT=5;
+ public static final int RULE_WS=9;
+
+ // delegates
+ // delegators
+
+ public InternalStatemachineLexer() {;}
+ public InternalStatemachineLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalStatemachineLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g"; }
+
+ // $ANTLR start "T__11"
+ public final void mT__11() throws RecognitionException {
+ try {
+ int _type = T__11;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:11:7: ( 'events' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:11:9: 'events'
+ {
+ match("events");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__11"
+
+ // $ANTLR start "T__12"
+ public final void mT__12() throws RecognitionException {
+ try {
+ int _type = T__12;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:12:7: ( 'end' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:12:9: 'end'
+ {
+ match("end");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__12"
+
+ // $ANTLR start "T__13"
+ public final void mT__13() throws RecognitionException {
+ try {
+ int _type = T__13;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:13:7: ( 'resetEvents' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:13:9: 'resetEvents'
+ {
+ match("resetEvents");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__13"
+
+ // $ANTLR start "T__14"
+ public final void mT__14() throws RecognitionException {
+ try {
+ int _type = T__14;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:14:7: ( 'commands' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:14:9: 'commands'
+ {
+ match("commands");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__14"
+
+ // $ANTLR start "T__15"
+ public final void mT__15() throws RecognitionException {
+ try {
+ int _type = T__15;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:15:7: ( 'state' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:15:9: 'state'
+ {
+ match("state");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__15"
+
+ // $ANTLR start "T__16"
+ public final void mT__16() throws RecognitionException {
+ try {
+ int _type = T__16;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:16:7: ( 'actions' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:16:9: 'actions'
+ {
+ match("actions");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__16"
+
+ // $ANTLR start "T__17"
+ public final void mT__17() throws RecognitionException {
+ try {
+ int _type = T__17;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:17:7: ( '{' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:17:9: '{'
+ {
+ match('{');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__17"
+
+ // $ANTLR start "T__18"
+ public final void mT__18() throws RecognitionException {
+ try {
+ int _type = T__18;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:18:7: ( '}' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:18:9: '}'
+ {
+ match('}');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__18"
+
+ // $ANTLR start "T__19"
+ public final void mT__19() throws RecognitionException {
+ try {
+ int _type = T__19;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:19:7: ( '=>' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:19:9: '=>'
+ {
+ match("=>");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__19"
+
+ // $ANTLR start "RULE_ID"
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1390:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1390:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1390:11: ( '^' )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='^') ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1390:11: '^'
+ {
+ match('^');
+
+ }
+ break;
+
+ }
+
+ if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1390:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ID"
+
+ // $ANTLR start "RULE_INT"
+ public final void mRULE_INT() throws RecognitionException {
+ try {
+ int _type = RULE_INT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1392:10: ( ( '0' .. '9' )+ )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1392:12: ( '0' .. '9' )+
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1392:12: ( '0' .. '9' )+
+ int cnt3=0;
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( ((LA3_0>='0' && LA3_0<='9')) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1392:13: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+ break;
+
+ default :
+ if ( cnt3 >= 1 ) break loop3;
+ EarlyExitException eee =
+ new EarlyExitException(3, input);
+ throw eee;
+ }
+ cnt3++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INT"
+
+ // $ANTLR start "RULE_STRING"
+ public final void mRULE_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_STRING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1394:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1394:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1394:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0=='\"') ) {
+ alt6=1;
+ }
+ else if ( (LA6_0=='\'') ) {
+ alt6=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1394:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1394:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
+ loop4:
+ do {
+ int alt4=3;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0=='\\') ) {
+ alt4=1;
+ }
+ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) {
+ alt4=2;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1394:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1394:66: ~ ( ( '\\\\' | '\"' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ } while (true);
+
+ match('\"');
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1394:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ {
+ match('\'');
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1394:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
+ loop5:
+ do {
+ int alt5=3;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0=='\\') ) {
+ alt5=1;
+ }
+ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>=']' && LA5_0<='\uFFFF')) ) {
+ alt5=2;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1394:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1394:137: ~ ( ( '\\\\' | '\\'' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop5;
+ }
+ } while (true);
+
+ match('\'');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_STRING"
+
+ // $ANTLR start "RULE_ML_COMMENT"
+ public final void mRULE_ML_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_ML_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1396:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1396:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1396:24: ( options {greedy=false; } : . )*
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0=='*') ) {
+ int LA7_1 = input.LA(2);
+
+ if ( (LA7_1=='/') ) {
+ alt7=2;
+ }
+ else if ( ((LA7_1>='\u0000' && LA7_1<='.')||(LA7_1>='0' && LA7_1<='\uFFFF')) ) {
+ alt7=1;
+ }
+
+
+ }
+ else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1396:52: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop7;
+ }
+ } while (true);
+
+ match("*/");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ML_COMMENT"
+
+ // $ANTLR start "RULE_SL_COMMENT"
+ public final void mRULE_SL_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_SL_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1398:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1398:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1398:24: (~ ( ( '\\n' | '\\r' ) ) )*
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( ((LA8_0>='\u0000' && LA8_0<='\t')||(LA8_0>='\u000B' && LA8_0<='\f')||(LA8_0>='\u000E' && LA8_0<='\uFFFF')) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1398:24: ~ ( ( '\\n' | '\\r' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop8;
+ }
+ } while (true);
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1398:40: ( ( '\\r' )? '\\n' )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0=='\n'||LA10_0=='\r') ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1398:41: ( '\\r' )? '\\n'
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1398:41: ( '\\r' )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='\r') ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1398:41: '\\r'
+ {
+ match('\r');
+
+ }
+ break;
+
+ }
+
+ match('\n');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SL_COMMENT"
+
+ // $ANTLR start "RULE_WS"
+ public final void mRULE_WS() throws RecognitionException {
+ try {
+ int _type = RULE_WS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1400:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1400:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1400:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ int cnt11=0;
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:
+ {
+ if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ if ( cnt11 >= 1 ) break loop11;
+ EarlyExitException eee =
+ new EarlyExitException(11, input);
+ throw eee;
+ }
+ cnt11++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_WS"
+
+ // $ANTLR start "RULE_ANY_OTHER"
+ public final void mRULE_ANY_OTHER() throws RecognitionException {
+ try {
+ int _type = RULE_ANY_OTHER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1402:16: ( . )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1402:18: .
+ {
+ matchAny();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ANY_OTHER"
+
+ public void mTokens() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+ int alt12=16;
+ alt12 = dfa12.predict(input);
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1:10: T__11
+ {
+ mT__11();
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1:16: T__12
+ {
+ mT__12();
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1:22: T__13
+ {
+ mT__13();
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1:28: T__14
+ {
+ mT__14();
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1:34: T__15
+ {
+ mT__15();
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1:40: T__16
+ {
+ mT__16();
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1:46: T__17
+ {
+ mT__17();
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1:52: T__18
+ {
+ mT__18();
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1:58: T__19
+ {
+ mT__19();
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1:64: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1:72: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 12 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1:81: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 13 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1:93: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 14 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1:109: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 15 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1:125: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 16 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1:133: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA12 dfa12 = new DFA12(this);
+ static final String DFA12_eotS =
+ "\1\uffff\5\23\2\uffff\2\20\2\uffff\3\20\2\uffff\2\23\1\uffff\4\23"+
+ "\10\uffff\1\23\1\47\5\23\1\uffff\7\23\1\64\1\23\1\66\2\23\1\uffff"+
+ "\1\23\1\uffff\2\23\1\74\1\23\1\76\1\uffff\1\23\1\uffff\1\23\1\101"+
+ "\1\uffff";
+ static final String DFA12_eofS =
+ "\102\uffff";
+ static final String DFA12_minS =
+ "\1\0\1\156\1\145\1\157\1\164\1\143\2\uffff\1\76\1\101\2\uffff\2"+
+ "\0\1\52\2\uffff\1\145\1\144\1\uffff\1\163\1\155\1\141\1\164\10\uffff"+
+ "\1\156\1\60\1\145\1\155\1\164\1\151\1\164\1\uffff\1\164\1\141\1"+
+ "\145\1\157\1\163\1\105\1\156\1\60\1\156\1\60\1\166\1\144\1\uffff"+
+ "\1\163\1\uffff\1\145\1\163\1\60\1\156\1\60\1\uffff\1\164\1\uffff"+
+ "\1\163\1\60\1\uffff";
+ static final String DFA12_maxS =
+ "\1\uffff\1\166\1\145\1\157\1\164\1\143\2\uffff\1\76\1\172\2\uffff"+
+ "\2\uffff\1\57\2\uffff\1\145\1\144\1\uffff\1\163\1\155\1\141\1\164"+
+ "\10\uffff\1\156\1\172\1\145\1\155\1\164\1\151\1\164\1\uffff\1\164"+
+ "\1\141\1\145\1\157\1\163\1\105\1\156\1\172\1\156\1\172\1\166\1\144"+
+ "\1\uffff\1\163\1\uffff\1\145\1\163\1\172\1\156\1\172\1\uffff\1\164"+
+ "\1\uffff\1\163\1\172\1\uffff";
+ static final String DFA12_acceptS =
+ "\6\uffff\1\7\1\10\2\uffff\1\12\1\13\3\uffff\1\17\1\20\2\uffff\1"+
+ "\12\4\uffff\1\7\1\10\1\11\1\13\1\14\1\15\1\16\1\17\7\uffff\1\2\14"+
+ "\uffff\1\5\1\uffff\1\1\5\uffff\1\6\1\uffff\1\4\2\uffff\1\3";
+ static final String DFA12_specialS =
+ "\1\1\13\uffff\1\2\1\0\64\uffff}>";
+ static final String[] DFA12_transitionS = {
+ "\11\20\2\17\2\20\1\17\22\20\1\17\1\20\1\14\4\20\1\15\7\20\1"+
+ "\16\12\13\3\20\1\10\3\20\32\12\3\20\1\11\1\12\1\20\1\5\1\12"+
+ "\1\3\1\12\1\1\14\12\1\2\1\4\7\12\1\6\1\20\1\7\uff82\20",
+ "\1\22\7\uffff\1\21",
+ "\1\24",
+ "\1\25",
+ "\1\26",
+ "\1\27",
+ "",
+ "",
+ "\1\32",
+ "\32\23\4\uffff\1\23\1\uffff\32\23",
+ "",
+ "",
+ "\0\34",
+ "\0\34",
+ "\1\35\4\uffff\1\36",
+ "",
+ "",
+ "\1\40",
+ "\1\41",
+ "",
+ "\1\42",
+ "\1\43",
+ "\1\44",
+ "\1\45",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\46",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "\1\50",
+ "\1\51",
+ "\1\52",
+ "\1\53",
+ "\1\54",
+ "",
+ "\1\55",
+ "\1\56",
+ "\1\57",
+ "\1\60",
+ "\1\61",
+ "\1\62",
+ "\1\63",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "\1\65",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "\1\67",
+ "\1\70",
+ "",
+ "\1\71",
+ "",
+ "\1\72",
+ "\1\73",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "\1\75",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "",
+ "\1\77",
+ "",
+ "\1\100",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ ""
+ };
+
+ static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
+ static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
+ static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
+ static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
+ static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
+ static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
+ static final short[][] DFA12_transition;
+
+ static {
+ int numStates = DFA12_transitionS.length;
+ DFA12_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
+ }
+ }
+
+ class DFA12 extends DFA {
+
+ public DFA12(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 12;
+ this.eot = DFA12_eot;
+ this.eof = DFA12_eof;
+ this.min = DFA12_min;
+ this.max = DFA12_max;
+ this.accept = DFA12_accept;
+ this.special = DFA12_special;
+ this.transition = DFA12_transition;
+ }
+ public String getDescription() {
+ return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ IntStream input = _input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA12_13 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_13>='\u0000' && LA12_13<='\uFFFF')) ) {s = 28;}
+
+ else s = 16;
+
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA12_0 = input.LA(1);
+
+ s = -1;
+ if ( (LA12_0=='e') ) {s = 1;}
+
+ else if ( (LA12_0=='r') ) {s = 2;}
+
+ else if ( (LA12_0=='c') ) {s = 3;}
+
+ else if ( (LA12_0=='s') ) {s = 4;}
+
+ else if ( (LA12_0=='a') ) {s = 5;}
+
+ else if ( (LA12_0=='{') ) {s = 6;}
+
+ else if ( (LA12_0=='}') ) {s = 7;}
+
+ else if ( (LA12_0=='=') ) {s = 8;}
+
+ else if ( (LA12_0=='^') ) {s = 9;}
+
+ else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='b'||LA12_0=='d'||(LA12_0>='f' && LA12_0<='q')||(LA12_0>='t' && LA12_0<='z')) ) {s = 10;}
+
+ else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 11;}
+
+ else if ( (LA12_0=='\"') ) {s = 12;}
+
+ else if ( (LA12_0=='\'') ) {s = 13;}
+
+ else if ( (LA12_0=='/') ) {s = 14;}
+
+ else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 15;}
+
+ else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='(' && LA12_0<='.')||(LA12_0>=':' && LA12_0<='<')||(LA12_0>='>' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 16;}
+
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA12_12 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_12>='\u0000' && LA12_12<='\uFFFF')) ) {s = 28;}
+
+ else s = 16;
+
+ if ( s>=0 ) return s;
+ break;
+ }
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 12, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+
+} \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachineParser.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachineParser.java
new file mode 100644
index 000000000..139d2ffc1
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachineParser.java
@@ -0,0 +1,3740 @@
+package org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.antlr.internal;
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import org.eclipse.emf.parsley.examples.fowlerdsl.services.StatemachineGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalStatemachineParser extends AbstractInternalContentAssistParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'events'", "'end'", "'resetEvents'", "'commands'", "'state'", "'actions'", "'{'", "'}'", "'=>'"
+ };
+ public static final int RULE_ID=4;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int EOF=-1;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int RULE_ML_COMMENT=7;
+ public static final int T__19=19;
+ public static final int RULE_STRING=6;
+ public static final int T__16=16;
+ public static final int T__15=15;
+ public static final int T__18=18;
+ public static final int T__17=17;
+ public static final int T__12=12;
+ public static final int T__11=11;
+ public static final int T__14=14;
+ public static final int T__13=13;
+ public static final int RULE_INT=5;
+ public static final int RULE_WS=9;
+
+ // delegates
+ // delegators
+
+
+ public InternalStatemachineParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalStatemachineParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalStatemachineParser.tokenNames; }
+ public String getGrammarFileName() { return "../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g"; }
+
+
+
+ private StatemachineGrammarAccess grammarAccess;
+
+ public void setGrammarAccess(StatemachineGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+ @Override
+ protected Grammar getGrammar() {
+ return grammarAccess.getGrammar();
+ }
+
+ @Override
+ protected String getValueForTokenName(String tokenName) {
+ return tokenName;
+ }
+
+
+
+
+ // $ANTLR start "entryRuleStatemachine"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:60:1: entryRuleStatemachine : ruleStatemachine EOF ;
+ public final void entryRuleStatemachine() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:61:1: ( ruleStatemachine EOF )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:62:1: ruleStatemachine EOF
+ {
+ before(grammarAccess.getStatemachineRule());
+ pushFollow(FOLLOW_ruleStatemachine_in_entryRuleStatemachine61);
+ ruleStatemachine();
+
+ state._fsp--;
+
+ after(grammarAccess.getStatemachineRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleStatemachine68);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleStatemachine"
+
+
+ // $ANTLR start "ruleStatemachine"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:69:1: ruleStatemachine : ( ( rule__Statemachine__Group__0 ) ) ;
+ public final void ruleStatemachine() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:73:2: ( ( ( rule__Statemachine__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:74:1: ( ( rule__Statemachine__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:74:1: ( ( rule__Statemachine__Group__0 ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:75:1: ( rule__Statemachine__Group__0 )
+ {
+ before(grammarAccess.getStatemachineAccess().getGroup());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:76:1: ( rule__Statemachine__Group__0 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:76:2: rule__Statemachine__Group__0
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__0_in_ruleStatemachine94);
+ rule__Statemachine__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleStatemachine"
+
+
+ // $ANTLR start "entryRuleEvent"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:88:1: entryRuleEvent : ruleEvent EOF ;
+ public final void entryRuleEvent() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:89:1: ( ruleEvent EOF )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:90:1: ruleEvent EOF
+ {
+ before(grammarAccess.getEventRule());
+ pushFollow(FOLLOW_ruleEvent_in_entryRuleEvent121);
+ ruleEvent();
+
+ state._fsp--;
+
+ after(grammarAccess.getEventRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleEvent128);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleEvent"
+
+
+ // $ANTLR start "ruleEvent"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:97:1: ruleEvent : ( ( rule__Event__Group__0 ) ) ;
+ public final void ruleEvent() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:101:2: ( ( ( rule__Event__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:102:1: ( ( rule__Event__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:102:1: ( ( rule__Event__Group__0 ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:103:1: ( rule__Event__Group__0 )
+ {
+ before(grammarAccess.getEventAccess().getGroup());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:104:1: ( rule__Event__Group__0 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:104:2: rule__Event__Group__0
+ {
+ pushFollow(FOLLOW_rule__Event__Group__0_in_ruleEvent154);
+ rule__Event__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getEventAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleEvent"
+
+
+ // $ANTLR start "entryRuleCommand"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:116:1: entryRuleCommand : ruleCommand EOF ;
+ public final void entryRuleCommand() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:117:1: ( ruleCommand EOF )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:118:1: ruleCommand EOF
+ {
+ before(grammarAccess.getCommandRule());
+ pushFollow(FOLLOW_ruleCommand_in_entryRuleCommand181);
+ ruleCommand();
+
+ state._fsp--;
+
+ after(grammarAccess.getCommandRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleCommand188);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleCommand"
+
+
+ // $ANTLR start "ruleCommand"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:125:1: ruleCommand : ( ( rule__Command__Group__0 ) ) ;
+ public final void ruleCommand() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:129:2: ( ( ( rule__Command__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:130:1: ( ( rule__Command__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:130:1: ( ( rule__Command__Group__0 ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:131:1: ( rule__Command__Group__0 )
+ {
+ before(grammarAccess.getCommandAccess().getGroup());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:132:1: ( rule__Command__Group__0 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:132:2: rule__Command__Group__0
+ {
+ pushFollow(FOLLOW_rule__Command__Group__0_in_ruleCommand214);
+ rule__Command__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getCommandAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleCommand"
+
+
+ // $ANTLR start "entryRuleState"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:144:1: entryRuleState : ruleState EOF ;
+ public final void entryRuleState() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:145:1: ( ruleState EOF )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:146:1: ruleState EOF
+ {
+ before(grammarAccess.getStateRule());
+ pushFollow(FOLLOW_ruleState_in_entryRuleState241);
+ ruleState();
+
+ state._fsp--;
+
+ after(grammarAccess.getStateRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleState248);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleState"
+
+
+ // $ANTLR start "ruleState"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:153:1: ruleState : ( ( rule__State__Group__0 ) ) ;
+ public final void ruleState() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:157:2: ( ( ( rule__State__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:158:1: ( ( rule__State__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:158:1: ( ( rule__State__Group__0 ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:159:1: ( rule__State__Group__0 )
+ {
+ before(grammarAccess.getStateAccess().getGroup());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:160:1: ( rule__State__Group__0 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:160:2: rule__State__Group__0
+ {
+ pushFollow(FOLLOW_rule__State__Group__0_in_ruleState274);
+ rule__State__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStateAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleState"
+
+
+ // $ANTLR start "entryRuleTransition"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:172:1: entryRuleTransition : ruleTransition EOF ;
+ public final void entryRuleTransition() throws RecognitionException {
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:173:1: ( ruleTransition EOF )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:174:1: ruleTransition EOF
+ {
+ before(grammarAccess.getTransitionRule());
+ pushFollow(FOLLOW_ruleTransition_in_entryRuleTransition301);
+ ruleTransition();
+
+ state._fsp--;
+
+ after(grammarAccess.getTransitionRule());
+ match(input,EOF,FOLLOW_EOF_in_entryRuleTransition308);
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end "entryRuleTransition"
+
+
+ // $ANTLR start "ruleTransition"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:181:1: ruleTransition : ( ( rule__Transition__Group__0 ) ) ;
+ public final void ruleTransition() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:185:2: ( ( ( rule__Transition__Group__0 ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:186:1: ( ( rule__Transition__Group__0 ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:186:1: ( ( rule__Transition__Group__0 ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:187:1: ( rule__Transition__Group__0 )
+ {
+ before(grammarAccess.getTransitionAccess().getGroup());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:188:1: ( rule__Transition__Group__0 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:188:2: rule__Transition__Group__0
+ {
+ pushFollow(FOLLOW_rule__Transition__Group__0_in_ruleTransition334);
+ rule__Transition__Group__0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getTransitionAccess().getGroup());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "ruleTransition"
+
+
+ // $ANTLR start "rule__Statemachine__Group__0"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:202:1: rule__Statemachine__Group__0 : rule__Statemachine__Group__0__Impl rule__Statemachine__Group__1 ;
+ public final void rule__Statemachine__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:206:1: ( rule__Statemachine__Group__0__Impl rule__Statemachine__Group__1 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:207:2: rule__Statemachine__Group__0__Impl rule__Statemachine__Group__1
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__0__Impl_in_rule__Statemachine__Group__0368);
+ rule__Statemachine__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__1_in_rule__Statemachine__Group__0371);
+ rule__Statemachine__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__0"
+
+
+ // $ANTLR start "rule__Statemachine__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:214:1: rule__Statemachine__Group__0__Impl : ( () ) ;
+ public final void rule__Statemachine__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:218:1: ( ( () ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:219:1: ( () )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:219:1: ( () )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:220:1: ()
+ {
+ before(grammarAccess.getStatemachineAccess().getStatemachineAction_0());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:221:1: ()
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:223:1:
+ {
+ }
+
+ after(grammarAccess.getStatemachineAccess().getStatemachineAction_0());
+
+ }
+
+
+ }
+
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__1"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:233:1: rule__Statemachine__Group__1 : rule__Statemachine__Group__1__Impl rule__Statemachine__Group__2 ;
+ public final void rule__Statemachine__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:237:1: ( rule__Statemachine__Group__1__Impl rule__Statemachine__Group__2 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:238:2: rule__Statemachine__Group__1__Impl rule__Statemachine__Group__2
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__1__Impl_in_rule__Statemachine__Group__1429);
+ rule__Statemachine__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__2_in_rule__Statemachine__Group__1432);
+ rule__Statemachine__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__1"
+
+
+ // $ANTLR start "rule__Statemachine__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:245:1: rule__Statemachine__Group__1__Impl : ( ( rule__Statemachine__Group_1__0 )? ) ;
+ public final void rule__Statemachine__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:249:1: ( ( ( rule__Statemachine__Group_1__0 )? ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:250:1: ( ( rule__Statemachine__Group_1__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:250:1: ( ( rule__Statemachine__Group_1__0 )? )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:251:1: ( rule__Statemachine__Group_1__0 )?
+ {
+ before(grammarAccess.getStatemachineAccess().getGroup_1());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:252:1: ( rule__Statemachine__Group_1__0 )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==11) ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:252:2: rule__Statemachine__Group_1__0
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_1__0_in_rule__Statemachine__Group__1__Impl459);
+ rule__Statemachine__Group_1__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getGroup_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__2"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:262:1: rule__Statemachine__Group__2 : rule__Statemachine__Group__2__Impl rule__Statemachine__Group__3 ;
+ public final void rule__Statemachine__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:266:1: ( rule__Statemachine__Group__2__Impl rule__Statemachine__Group__3 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:267:2: rule__Statemachine__Group__2__Impl rule__Statemachine__Group__3
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__2__Impl_in_rule__Statemachine__Group__2490);
+ rule__Statemachine__Group__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__3_in_rule__Statemachine__Group__2493);
+ rule__Statemachine__Group__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__2"
+
+
+ // $ANTLR start "rule__Statemachine__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:274:1: rule__Statemachine__Group__2__Impl : ( ( rule__Statemachine__Group_2__0 )? ) ;
+ public final void rule__Statemachine__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:278:1: ( ( ( rule__Statemachine__Group_2__0 )? ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:279:1: ( ( rule__Statemachine__Group_2__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:279:1: ( ( rule__Statemachine__Group_2__0 )? )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:280:1: ( rule__Statemachine__Group_2__0 )?
+ {
+ before(grammarAccess.getStatemachineAccess().getGroup_2());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:281:1: ( rule__Statemachine__Group_2__0 )?
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==13) ) {
+ alt2=1;
+ }
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:281:2: rule__Statemachine__Group_2__0
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_2__0_in_rule__Statemachine__Group__2__Impl520);
+ rule__Statemachine__Group_2__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getGroup_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__3"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:291:1: rule__Statemachine__Group__3 : rule__Statemachine__Group__3__Impl rule__Statemachine__Group__4 ;
+ public final void rule__Statemachine__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:295:1: ( rule__Statemachine__Group__3__Impl rule__Statemachine__Group__4 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:296:2: rule__Statemachine__Group__3__Impl rule__Statemachine__Group__4
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__3__Impl_in_rule__Statemachine__Group__3551);
+ rule__Statemachine__Group__3__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group__4_in_rule__Statemachine__Group__3554);
+ rule__Statemachine__Group__4();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__3"
+
+
+ // $ANTLR start "rule__Statemachine__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:303:1: rule__Statemachine__Group__3__Impl : ( ( rule__Statemachine__Group_3__0 )? ) ;
+ public final void rule__Statemachine__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:307:1: ( ( ( rule__Statemachine__Group_3__0 )? ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:308:1: ( ( rule__Statemachine__Group_3__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:308:1: ( ( rule__Statemachine__Group_3__0 )? )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:309:1: ( rule__Statemachine__Group_3__0 )?
+ {
+ before(grammarAccess.getStatemachineAccess().getGroup_3());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:310:1: ( rule__Statemachine__Group_3__0 )?
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==14) ) {
+ alt3=1;
+ }
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:310:2: rule__Statemachine__Group_3__0
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_3__0_in_rule__Statemachine__Group__3__Impl581);
+ rule__Statemachine__Group_3__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getGroup_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__3__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group__4"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:320:1: rule__Statemachine__Group__4 : rule__Statemachine__Group__4__Impl ;
+ public final void rule__Statemachine__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:324:1: ( rule__Statemachine__Group__4__Impl )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:325:2: rule__Statemachine__Group__4__Impl
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group__4__Impl_in_rule__Statemachine__Group__4612);
+ rule__Statemachine__Group__4__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__4"
+
+
+ // $ANTLR start "rule__Statemachine__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:331:1: rule__Statemachine__Group__4__Impl : ( ( rule__Statemachine__StatesAssignment_4 )* ) ;
+ public final void rule__Statemachine__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:335:1: ( ( ( rule__Statemachine__StatesAssignment_4 )* ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:336:1: ( ( rule__Statemachine__StatesAssignment_4 )* )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:336:1: ( ( rule__Statemachine__StatesAssignment_4 )* )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:337:1: ( rule__Statemachine__StatesAssignment_4 )*
+ {
+ before(grammarAccess.getStatemachineAccess().getStatesAssignment_4());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:338:1: ( rule__Statemachine__StatesAssignment_4 )*
+ loop4:
+ do {
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0==15) ) {
+ alt4=1;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:338:2: rule__Statemachine__StatesAssignment_4
+ {
+ pushFollow(FOLLOW_rule__Statemachine__StatesAssignment_4_in_rule__Statemachine__Group__4__Impl639);
+ rule__Statemachine__StatesAssignment_4();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ } while (true);
+
+ after(grammarAccess.getStatemachineAccess().getStatesAssignment_4());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group__4__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group_1__0"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:358:1: rule__Statemachine__Group_1__0 : rule__Statemachine__Group_1__0__Impl rule__Statemachine__Group_1__1 ;
+ public final void rule__Statemachine__Group_1__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:362:1: ( rule__Statemachine__Group_1__0__Impl rule__Statemachine__Group_1__1 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:363:2: rule__Statemachine__Group_1__0__Impl rule__Statemachine__Group_1__1
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_1__0__Impl_in_rule__Statemachine__Group_1__0680);
+ rule__Statemachine__Group_1__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group_1__1_in_rule__Statemachine__Group_1__0683);
+ rule__Statemachine__Group_1__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_1__0"
+
+
+ // $ANTLR start "rule__Statemachine__Group_1__0__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:370:1: rule__Statemachine__Group_1__0__Impl : ( 'events' ) ;
+ public final void rule__Statemachine__Group_1__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:374:1: ( ( 'events' ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:375:1: ( 'events' )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:375:1: ( 'events' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:376:1: 'events'
+ {
+ before(grammarAccess.getStatemachineAccess().getEventsKeyword_1_0());
+ match(input,11,FOLLOW_11_in_rule__Statemachine__Group_1__0__Impl711);
+ after(grammarAccess.getStatemachineAccess().getEventsKeyword_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_1__0__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group_1__1"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:389:1: rule__Statemachine__Group_1__1 : rule__Statemachine__Group_1__1__Impl rule__Statemachine__Group_1__2 ;
+ public final void rule__Statemachine__Group_1__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:393:1: ( rule__Statemachine__Group_1__1__Impl rule__Statemachine__Group_1__2 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:394:2: rule__Statemachine__Group_1__1__Impl rule__Statemachine__Group_1__2
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_1__1__Impl_in_rule__Statemachine__Group_1__1742);
+ rule__Statemachine__Group_1__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group_1__2_in_rule__Statemachine__Group_1__1745);
+ rule__Statemachine__Group_1__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_1__1"
+
+
+ // $ANTLR start "rule__Statemachine__Group_1__1__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:401:1: rule__Statemachine__Group_1__1__Impl : ( ( ( rule__Statemachine__EventsAssignment_1_1 ) ) ( ( rule__Statemachine__EventsAssignment_1_1 )* ) ) ;
+ public final void rule__Statemachine__Group_1__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:405:1: ( ( ( ( rule__Statemachine__EventsAssignment_1_1 ) ) ( ( rule__Statemachine__EventsAssignment_1_1 )* ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:406:1: ( ( ( rule__Statemachine__EventsAssignment_1_1 ) ) ( ( rule__Statemachine__EventsAssignment_1_1 )* ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:406:1: ( ( ( rule__Statemachine__EventsAssignment_1_1 ) ) ( ( rule__Statemachine__EventsAssignment_1_1 )* ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:407:1: ( ( rule__Statemachine__EventsAssignment_1_1 ) ) ( ( rule__Statemachine__EventsAssignment_1_1 )* )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:407:1: ( ( rule__Statemachine__EventsAssignment_1_1 ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:408:1: ( rule__Statemachine__EventsAssignment_1_1 )
+ {
+ before(grammarAccess.getStatemachineAccess().getEventsAssignment_1_1());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:409:1: ( rule__Statemachine__EventsAssignment_1_1 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:409:2: rule__Statemachine__EventsAssignment_1_1
+ {
+ pushFollow(FOLLOW_rule__Statemachine__EventsAssignment_1_1_in_rule__Statemachine__Group_1__1__Impl774);
+ rule__Statemachine__EventsAssignment_1_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getEventsAssignment_1_1());
+
+ }
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:412:1: ( ( rule__Statemachine__EventsAssignment_1_1 )* )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:413:1: ( rule__Statemachine__EventsAssignment_1_1 )*
+ {
+ before(grammarAccess.getStatemachineAccess().getEventsAssignment_1_1());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:414:1: ( rule__Statemachine__EventsAssignment_1_1 )*
+ loop5:
+ do {
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==RULE_ID) ) {
+ alt5=1;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:414:2: rule__Statemachine__EventsAssignment_1_1
+ {
+ pushFollow(FOLLOW_rule__Statemachine__EventsAssignment_1_1_in_rule__Statemachine__Group_1__1__Impl786);
+ rule__Statemachine__EventsAssignment_1_1();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop5;
+ }
+ } while (true);
+
+ after(grammarAccess.getStatemachineAccess().getEventsAssignment_1_1());
+
+ }
+
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_1__1__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group_1__2"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:425:1: rule__Statemachine__Group_1__2 : rule__Statemachine__Group_1__2__Impl ;
+ public final void rule__Statemachine__Group_1__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:429:1: ( rule__Statemachine__Group_1__2__Impl )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:430:2: rule__Statemachine__Group_1__2__Impl
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_1__2__Impl_in_rule__Statemachine__Group_1__2819);
+ rule__Statemachine__Group_1__2__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_1__2"
+
+
+ // $ANTLR start "rule__Statemachine__Group_1__2__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:436:1: rule__Statemachine__Group_1__2__Impl : ( 'end' ) ;
+ public final void rule__Statemachine__Group_1__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:440:1: ( ( 'end' ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:441:1: ( 'end' )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:441:1: ( 'end' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:442:1: 'end'
+ {
+ before(grammarAccess.getStatemachineAccess().getEndKeyword_1_2());
+ match(input,12,FOLLOW_12_in_rule__Statemachine__Group_1__2__Impl847);
+ after(grammarAccess.getStatemachineAccess().getEndKeyword_1_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_1__2__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group_2__0"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:461:1: rule__Statemachine__Group_2__0 : rule__Statemachine__Group_2__0__Impl rule__Statemachine__Group_2__1 ;
+ public final void rule__Statemachine__Group_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:465:1: ( rule__Statemachine__Group_2__0__Impl rule__Statemachine__Group_2__1 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:466:2: rule__Statemachine__Group_2__0__Impl rule__Statemachine__Group_2__1
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_2__0__Impl_in_rule__Statemachine__Group_2__0884);
+ rule__Statemachine__Group_2__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group_2__1_in_rule__Statemachine__Group_2__0887);
+ rule__Statemachine__Group_2__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_2__0"
+
+
+ // $ANTLR start "rule__Statemachine__Group_2__0__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:473:1: rule__Statemachine__Group_2__0__Impl : ( 'resetEvents' ) ;
+ public final void rule__Statemachine__Group_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:477:1: ( ( 'resetEvents' ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:478:1: ( 'resetEvents' )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:478:1: ( 'resetEvents' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:479:1: 'resetEvents'
+ {
+ before(grammarAccess.getStatemachineAccess().getResetEventsKeyword_2_0());
+ match(input,13,FOLLOW_13_in_rule__Statemachine__Group_2__0__Impl915);
+ after(grammarAccess.getStatemachineAccess().getResetEventsKeyword_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_2__0__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group_2__1"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:492:1: rule__Statemachine__Group_2__1 : rule__Statemachine__Group_2__1__Impl rule__Statemachine__Group_2__2 ;
+ public final void rule__Statemachine__Group_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:496:1: ( rule__Statemachine__Group_2__1__Impl rule__Statemachine__Group_2__2 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:497:2: rule__Statemachine__Group_2__1__Impl rule__Statemachine__Group_2__2
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_2__1__Impl_in_rule__Statemachine__Group_2__1946);
+ rule__Statemachine__Group_2__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group_2__2_in_rule__Statemachine__Group_2__1949);
+ rule__Statemachine__Group_2__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_2__1"
+
+
+ // $ANTLR start "rule__Statemachine__Group_2__1__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:504:1: rule__Statemachine__Group_2__1__Impl : ( ( ( rule__Statemachine__ResetEventsAssignment_2_1 ) ) ( ( rule__Statemachine__ResetEventsAssignment_2_1 )* ) ) ;
+ public final void rule__Statemachine__Group_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:508:1: ( ( ( ( rule__Statemachine__ResetEventsAssignment_2_1 ) ) ( ( rule__Statemachine__ResetEventsAssignment_2_1 )* ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:509:1: ( ( ( rule__Statemachine__ResetEventsAssignment_2_1 ) ) ( ( rule__Statemachine__ResetEventsAssignment_2_1 )* ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:509:1: ( ( ( rule__Statemachine__ResetEventsAssignment_2_1 ) ) ( ( rule__Statemachine__ResetEventsAssignment_2_1 )* ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:510:1: ( ( rule__Statemachine__ResetEventsAssignment_2_1 ) ) ( ( rule__Statemachine__ResetEventsAssignment_2_1 )* )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:510:1: ( ( rule__Statemachine__ResetEventsAssignment_2_1 ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:511:1: ( rule__Statemachine__ResetEventsAssignment_2_1 )
+ {
+ before(grammarAccess.getStatemachineAccess().getResetEventsAssignment_2_1());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:512:1: ( rule__Statemachine__ResetEventsAssignment_2_1 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:512:2: rule__Statemachine__ResetEventsAssignment_2_1
+ {
+ pushFollow(FOLLOW_rule__Statemachine__ResetEventsAssignment_2_1_in_rule__Statemachine__Group_2__1__Impl978);
+ rule__Statemachine__ResetEventsAssignment_2_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getResetEventsAssignment_2_1());
+
+ }
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:515:1: ( ( rule__Statemachine__ResetEventsAssignment_2_1 )* )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:516:1: ( rule__Statemachine__ResetEventsAssignment_2_1 )*
+ {
+ before(grammarAccess.getStatemachineAccess().getResetEventsAssignment_2_1());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:517:1: ( rule__Statemachine__ResetEventsAssignment_2_1 )*
+ loop6:
+ do {
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==RULE_ID) ) {
+ alt6=1;
+ }
+
+
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:517:2: rule__Statemachine__ResetEventsAssignment_2_1
+ {
+ pushFollow(FOLLOW_rule__Statemachine__ResetEventsAssignment_2_1_in_rule__Statemachine__Group_2__1__Impl990);
+ rule__Statemachine__ResetEventsAssignment_2_1();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop6;
+ }
+ } while (true);
+
+ after(grammarAccess.getStatemachineAccess().getResetEventsAssignment_2_1());
+
+ }
+
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_2__1__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group_2__2"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:528:1: rule__Statemachine__Group_2__2 : rule__Statemachine__Group_2__2__Impl ;
+ public final void rule__Statemachine__Group_2__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:532:1: ( rule__Statemachine__Group_2__2__Impl )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:533:2: rule__Statemachine__Group_2__2__Impl
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_2__2__Impl_in_rule__Statemachine__Group_2__21023);
+ rule__Statemachine__Group_2__2__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_2__2"
+
+
+ // $ANTLR start "rule__Statemachine__Group_2__2__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:539:1: rule__Statemachine__Group_2__2__Impl : ( 'end' ) ;
+ public final void rule__Statemachine__Group_2__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:543:1: ( ( 'end' ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:544:1: ( 'end' )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:544:1: ( 'end' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:545:1: 'end'
+ {
+ before(grammarAccess.getStatemachineAccess().getEndKeyword_2_2());
+ match(input,12,FOLLOW_12_in_rule__Statemachine__Group_2__2__Impl1051);
+ after(grammarAccess.getStatemachineAccess().getEndKeyword_2_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_2__2__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group_3__0"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:564:1: rule__Statemachine__Group_3__0 : rule__Statemachine__Group_3__0__Impl rule__Statemachine__Group_3__1 ;
+ public final void rule__Statemachine__Group_3__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:568:1: ( rule__Statemachine__Group_3__0__Impl rule__Statemachine__Group_3__1 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:569:2: rule__Statemachine__Group_3__0__Impl rule__Statemachine__Group_3__1
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_3__0__Impl_in_rule__Statemachine__Group_3__01088);
+ rule__Statemachine__Group_3__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group_3__1_in_rule__Statemachine__Group_3__01091);
+ rule__Statemachine__Group_3__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_3__0"
+
+
+ // $ANTLR start "rule__Statemachine__Group_3__0__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:576:1: rule__Statemachine__Group_3__0__Impl : ( 'commands' ) ;
+ public final void rule__Statemachine__Group_3__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:580:1: ( ( 'commands' ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:581:1: ( 'commands' )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:581:1: ( 'commands' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:582:1: 'commands'
+ {
+ before(grammarAccess.getStatemachineAccess().getCommandsKeyword_3_0());
+ match(input,14,FOLLOW_14_in_rule__Statemachine__Group_3__0__Impl1119);
+ after(grammarAccess.getStatemachineAccess().getCommandsKeyword_3_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_3__0__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group_3__1"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:595:1: rule__Statemachine__Group_3__1 : rule__Statemachine__Group_3__1__Impl rule__Statemachine__Group_3__2 ;
+ public final void rule__Statemachine__Group_3__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:599:1: ( rule__Statemachine__Group_3__1__Impl rule__Statemachine__Group_3__2 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:600:2: rule__Statemachine__Group_3__1__Impl rule__Statemachine__Group_3__2
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_3__1__Impl_in_rule__Statemachine__Group_3__11150);
+ rule__Statemachine__Group_3__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Statemachine__Group_3__2_in_rule__Statemachine__Group_3__11153);
+ rule__Statemachine__Group_3__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_3__1"
+
+
+ // $ANTLR start "rule__Statemachine__Group_3__1__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:607:1: rule__Statemachine__Group_3__1__Impl : ( ( ( rule__Statemachine__CommandsAssignment_3_1 ) ) ( ( rule__Statemachine__CommandsAssignment_3_1 )* ) ) ;
+ public final void rule__Statemachine__Group_3__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:611:1: ( ( ( ( rule__Statemachine__CommandsAssignment_3_1 ) ) ( ( rule__Statemachine__CommandsAssignment_3_1 )* ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:612:1: ( ( ( rule__Statemachine__CommandsAssignment_3_1 ) ) ( ( rule__Statemachine__CommandsAssignment_3_1 )* ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:612:1: ( ( ( rule__Statemachine__CommandsAssignment_3_1 ) ) ( ( rule__Statemachine__CommandsAssignment_3_1 )* ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:613:1: ( ( rule__Statemachine__CommandsAssignment_3_1 ) ) ( ( rule__Statemachine__CommandsAssignment_3_1 )* )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:613:1: ( ( rule__Statemachine__CommandsAssignment_3_1 ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:614:1: ( rule__Statemachine__CommandsAssignment_3_1 )
+ {
+ before(grammarAccess.getStatemachineAccess().getCommandsAssignment_3_1());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:615:1: ( rule__Statemachine__CommandsAssignment_3_1 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:615:2: rule__Statemachine__CommandsAssignment_3_1
+ {
+ pushFollow(FOLLOW_rule__Statemachine__CommandsAssignment_3_1_in_rule__Statemachine__Group_3__1__Impl1182);
+ rule__Statemachine__CommandsAssignment_3_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getCommandsAssignment_3_1());
+
+ }
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:618:1: ( ( rule__Statemachine__CommandsAssignment_3_1 )* )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:619:1: ( rule__Statemachine__CommandsAssignment_3_1 )*
+ {
+ before(grammarAccess.getStatemachineAccess().getCommandsAssignment_3_1());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:620:1: ( rule__Statemachine__CommandsAssignment_3_1 )*
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0==RULE_ID) ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:620:2: rule__Statemachine__CommandsAssignment_3_1
+ {
+ pushFollow(FOLLOW_rule__Statemachine__CommandsAssignment_3_1_in_rule__Statemachine__Group_3__1__Impl1194);
+ rule__Statemachine__CommandsAssignment_3_1();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop7;
+ }
+ } while (true);
+
+ after(grammarAccess.getStatemachineAccess().getCommandsAssignment_3_1());
+
+ }
+
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_3__1__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__Group_3__2"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:631:1: rule__Statemachine__Group_3__2 : rule__Statemachine__Group_3__2__Impl ;
+ public final void rule__Statemachine__Group_3__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:635:1: ( rule__Statemachine__Group_3__2__Impl )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:636:2: rule__Statemachine__Group_3__2__Impl
+ {
+ pushFollow(FOLLOW_rule__Statemachine__Group_3__2__Impl_in_rule__Statemachine__Group_3__21227);
+ rule__Statemachine__Group_3__2__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_3__2"
+
+
+ // $ANTLR start "rule__Statemachine__Group_3__2__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:642:1: rule__Statemachine__Group_3__2__Impl : ( 'end' ) ;
+ public final void rule__Statemachine__Group_3__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:646:1: ( ( 'end' ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:647:1: ( 'end' )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:647:1: ( 'end' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:648:1: 'end'
+ {
+ before(grammarAccess.getStatemachineAccess().getEndKeyword_3_2());
+ match(input,12,FOLLOW_12_in_rule__Statemachine__Group_3__2__Impl1255);
+ after(grammarAccess.getStatemachineAccess().getEndKeyword_3_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__Group_3__2__Impl"
+
+
+ // $ANTLR start "rule__Event__Group__0"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:667:1: rule__Event__Group__0 : rule__Event__Group__0__Impl rule__Event__Group__1 ;
+ public final void rule__Event__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:671:1: ( rule__Event__Group__0__Impl rule__Event__Group__1 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:672:2: rule__Event__Group__0__Impl rule__Event__Group__1
+ {
+ pushFollow(FOLLOW_rule__Event__Group__0__Impl_in_rule__Event__Group__01292);
+ rule__Event__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Event__Group__1_in_rule__Event__Group__01295);
+ rule__Event__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Event__Group__0"
+
+
+ // $ANTLR start "rule__Event__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:679:1: rule__Event__Group__0__Impl : ( ( rule__Event__NameAssignment_0 ) ) ;
+ public final void rule__Event__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:683:1: ( ( ( rule__Event__NameAssignment_0 ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:684:1: ( ( rule__Event__NameAssignment_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:684:1: ( ( rule__Event__NameAssignment_0 ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:685:1: ( rule__Event__NameAssignment_0 )
+ {
+ before(grammarAccess.getEventAccess().getNameAssignment_0());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:686:1: ( rule__Event__NameAssignment_0 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:686:2: rule__Event__NameAssignment_0
+ {
+ pushFollow(FOLLOW_rule__Event__NameAssignment_0_in_rule__Event__Group__0__Impl1322);
+ rule__Event__NameAssignment_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getEventAccess().getNameAssignment_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Event__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Event__Group__1"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:696:1: rule__Event__Group__1 : rule__Event__Group__1__Impl ;
+ public final void rule__Event__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:700:1: ( rule__Event__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:701:2: rule__Event__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__Event__Group__1__Impl_in_rule__Event__Group__11352);
+ rule__Event__Group__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Event__Group__1"
+
+
+ // $ANTLR start "rule__Event__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:707:1: rule__Event__Group__1__Impl : ( ( rule__Event__CodeAssignment_1 ) ) ;
+ public final void rule__Event__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:711:1: ( ( ( rule__Event__CodeAssignment_1 ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:712:1: ( ( rule__Event__CodeAssignment_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:712:1: ( ( rule__Event__CodeAssignment_1 ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:713:1: ( rule__Event__CodeAssignment_1 )
+ {
+ before(grammarAccess.getEventAccess().getCodeAssignment_1());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:714:1: ( rule__Event__CodeAssignment_1 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:714:2: rule__Event__CodeAssignment_1
+ {
+ pushFollow(FOLLOW_rule__Event__CodeAssignment_1_in_rule__Event__Group__1__Impl1379);
+ rule__Event__CodeAssignment_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getEventAccess().getCodeAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Event__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Command__Group__0"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:728:1: rule__Command__Group__0 : rule__Command__Group__0__Impl rule__Command__Group__1 ;
+ public final void rule__Command__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:732:1: ( rule__Command__Group__0__Impl rule__Command__Group__1 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:733:2: rule__Command__Group__0__Impl rule__Command__Group__1
+ {
+ pushFollow(FOLLOW_rule__Command__Group__0__Impl_in_rule__Command__Group__01413);
+ rule__Command__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Command__Group__1_in_rule__Command__Group__01416);
+ rule__Command__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Command__Group__0"
+
+
+ // $ANTLR start "rule__Command__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:740:1: rule__Command__Group__0__Impl : ( ( rule__Command__NameAssignment_0 ) ) ;
+ public final void rule__Command__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:744:1: ( ( ( rule__Command__NameAssignment_0 ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:745:1: ( ( rule__Command__NameAssignment_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:745:1: ( ( rule__Command__NameAssignment_0 ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:746:1: ( rule__Command__NameAssignment_0 )
+ {
+ before(grammarAccess.getCommandAccess().getNameAssignment_0());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:747:1: ( rule__Command__NameAssignment_0 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:747:2: rule__Command__NameAssignment_0
+ {
+ pushFollow(FOLLOW_rule__Command__NameAssignment_0_in_rule__Command__Group__0__Impl1443);
+ rule__Command__NameAssignment_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getCommandAccess().getNameAssignment_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Command__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Command__Group__1"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:757:1: rule__Command__Group__1 : rule__Command__Group__1__Impl ;
+ public final void rule__Command__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:761:1: ( rule__Command__Group__1__Impl )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:762:2: rule__Command__Group__1__Impl
+ {
+ pushFollow(FOLLOW_rule__Command__Group__1__Impl_in_rule__Command__Group__11473);
+ rule__Command__Group__1__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Command__Group__1"
+
+
+ // $ANTLR start "rule__Command__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:768:1: rule__Command__Group__1__Impl : ( ( rule__Command__CodeAssignment_1 ) ) ;
+ public final void rule__Command__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:772:1: ( ( ( rule__Command__CodeAssignment_1 ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:773:1: ( ( rule__Command__CodeAssignment_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:773:1: ( ( rule__Command__CodeAssignment_1 ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:774:1: ( rule__Command__CodeAssignment_1 )
+ {
+ before(grammarAccess.getCommandAccess().getCodeAssignment_1());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:775:1: ( rule__Command__CodeAssignment_1 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:775:2: rule__Command__CodeAssignment_1
+ {
+ pushFollow(FOLLOW_rule__Command__CodeAssignment_1_in_rule__Command__Group__1__Impl1500);
+ rule__Command__CodeAssignment_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getCommandAccess().getCodeAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Command__Group__1__Impl"
+
+
+ // $ANTLR start "rule__State__Group__0"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:789:1: rule__State__Group__0 : rule__State__Group__0__Impl rule__State__Group__1 ;
+ public final void rule__State__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:793:1: ( rule__State__Group__0__Impl rule__State__Group__1 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:794:2: rule__State__Group__0__Impl rule__State__Group__1
+ {
+ pushFollow(FOLLOW_rule__State__Group__0__Impl_in_rule__State__Group__01534);
+ rule__State__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__State__Group__1_in_rule__State__Group__01537);
+ rule__State__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Group__0"
+
+
+ // $ANTLR start "rule__State__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:801:1: rule__State__Group__0__Impl : ( 'state' ) ;
+ public final void rule__State__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:805:1: ( ( 'state' ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:806:1: ( 'state' )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:806:1: ( 'state' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:807:1: 'state'
+ {
+ before(grammarAccess.getStateAccess().getStateKeyword_0());
+ match(input,15,FOLLOW_15_in_rule__State__Group__0__Impl1565);
+ after(grammarAccess.getStateAccess().getStateKeyword_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Group__0__Impl"
+
+
+ // $ANTLR start "rule__State__Group__1"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:820:1: rule__State__Group__1 : rule__State__Group__1__Impl rule__State__Group__2 ;
+ public final void rule__State__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:824:1: ( rule__State__Group__1__Impl rule__State__Group__2 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:825:2: rule__State__Group__1__Impl rule__State__Group__2
+ {
+ pushFollow(FOLLOW_rule__State__Group__1__Impl_in_rule__State__Group__11596);
+ rule__State__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__State__Group__2_in_rule__State__Group__11599);
+ rule__State__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Group__1"
+
+
+ // $ANTLR start "rule__State__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:832:1: rule__State__Group__1__Impl : ( ( rule__State__NameAssignment_1 ) ) ;
+ public final void rule__State__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:836:1: ( ( ( rule__State__NameAssignment_1 ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:837:1: ( ( rule__State__NameAssignment_1 ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:837:1: ( ( rule__State__NameAssignment_1 ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:838:1: ( rule__State__NameAssignment_1 )
+ {
+ before(grammarAccess.getStateAccess().getNameAssignment_1());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:839:1: ( rule__State__NameAssignment_1 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:839:2: rule__State__NameAssignment_1
+ {
+ pushFollow(FOLLOW_rule__State__NameAssignment_1_in_rule__State__Group__1__Impl1626);
+ rule__State__NameAssignment_1();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStateAccess().getNameAssignment_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Group__1__Impl"
+
+
+ // $ANTLR start "rule__State__Group__2"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:849:1: rule__State__Group__2 : rule__State__Group__2__Impl rule__State__Group__3 ;
+ public final void rule__State__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:853:1: ( rule__State__Group__2__Impl rule__State__Group__3 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:854:2: rule__State__Group__2__Impl rule__State__Group__3
+ {
+ pushFollow(FOLLOW_rule__State__Group__2__Impl_in_rule__State__Group__21656);
+ rule__State__Group__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__State__Group__3_in_rule__State__Group__21659);
+ rule__State__Group__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Group__2"
+
+
+ // $ANTLR start "rule__State__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:861:1: rule__State__Group__2__Impl : ( ( rule__State__Group_2__0 )? ) ;
+ public final void rule__State__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:865:1: ( ( ( rule__State__Group_2__0 )? ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:866:1: ( ( rule__State__Group_2__0 )? )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:866:1: ( ( rule__State__Group_2__0 )? )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:867:1: ( rule__State__Group_2__0 )?
+ {
+ before(grammarAccess.getStateAccess().getGroup_2());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:868:1: ( rule__State__Group_2__0 )?
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==16) ) {
+ alt8=1;
+ }
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:868:2: rule__State__Group_2__0
+ {
+ pushFollow(FOLLOW_rule__State__Group_2__0_in_rule__State__Group__2__Impl1686);
+ rule__State__Group_2__0();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ }
+
+ after(grammarAccess.getStateAccess().getGroup_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Group__2__Impl"
+
+
+ // $ANTLR start "rule__State__Group__3"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:878:1: rule__State__Group__3 : rule__State__Group__3__Impl rule__State__Group__4 ;
+ public final void rule__State__Group__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:882:1: ( rule__State__Group__3__Impl rule__State__Group__4 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:883:2: rule__State__Group__3__Impl rule__State__Group__4
+ {
+ pushFollow(FOLLOW_rule__State__Group__3__Impl_in_rule__State__Group__31717);
+ rule__State__Group__3__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__State__Group__4_in_rule__State__Group__31720);
+ rule__State__Group__4();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Group__3"
+
+
+ // $ANTLR start "rule__State__Group__3__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:890:1: rule__State__Group__3__Impl : ( ( rule__State__TransitionsAssignment_3 )* ) ;
+ public final void rule__State__Group__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:894:1: ( ( ( rule__State__TransitionsAssignment_3 )* ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:895:1: ( ( rule__State__TransitionsAssignment_3 )* )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:895:1: ( ( rule__State__TransitionsAssignment_3 )* )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:896:1: ( rule__State__TransitionsAssignment_3 )*
+ {
+ before(grammarAccess.getStateAccess().getTransitionsAssignment_3());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:897:1: ( rule__State__TransitionsAssignment_3 )*
+ loop9:
+ do {
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0==RULE_ID) ) {
+ alt9=1;
+ }
+
+
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:897:2: rule__State__TransitionsAssignment_3
+ {
+ pushFollow(FOLLOW_rule__State__TransitionsAssignment_3_in_rule__State__Group__3__Impl1747);
+ rule__State__TransitionsAssignment_3();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop9;
+ }
+ } while (true);
+
+ after(grammarAccess.getStateAccess().getTransitionsAssignment_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Group__3__Impl"
+
+
+ // $ANTLR start "rule__State__Group__4"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:907:1: rule__State__Group__4 : rule__State__Group__4__Impl ;
+ public final void rule__State__Group__4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:911:1: ( rule__State__Group__4__Impl )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:912:2: rule__State__Group__4__Impl
+ {
+ pushFollow(FOLLOW_rule__State__Group__4__Impl_in_rule__State__Group__41778);
+ rule__State__Group__4__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Group__4"
+
+
+ // $ANTLR start "rule__State__Group__4__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:918:1: rule__State__Group__4__Impl : ( 'end' ) ;
+ public final void rule__State__Group__4__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:922:1: ( ( 'end' ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:923:1: ( 'end' )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:923:1: ( 'end' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:924:1: 'end'
+ {
+ before(grammarAccess.getStateAccess().getEndKeyword_4());
+ match(input,12,FOLLOW_12_in_rule__State__Group__4__Impl1806);
+ after(grammarAccess.getStateAccess().getEndKeyword_4());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Group__4__Impl"
+
+
+ // $ANTLR start "rule__State__Group_2__0"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:947:1: rule__State__Group_2__0 : rule__State__Group_2__0__Impl rule__State__Group_2__1 ;
+ public final void rule__State__Group_2__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:951:1: ( rule__State__Group_2__0__Impl rule__State__Group_2__1 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:952:2: rule__State__Group_2__0__Impl rule__State__Group_2__1
+ {
+ pushFollow(FOLLOW_rule__State__Group_2__0__Impl_in_rule__State__Group_2__01847);
+ rule__State__Group_2__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__State__Group_2__1_in_rule__State__Group_2__01850);
+ rule__State__Group_2__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Group_2__0"
+
+
+ // $ANTLR start "rule__State__Group_2__0__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:959:1: rule__State__Group_2__0__Impl : ( 'actions' ) ;
+ public final void rule__State__Group_2__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:963:1: ( ( 'actions' ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:964:1: ( 'actions' )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:964:1: ( 'actions' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:965:1: 'actions'
+ {
+ before(grammarAccess.getStateAccess().getActionsKeyword_2_0());
+ match(input,16,FOLLOW_16_in_rule__State__Group_2__0__Impl1878);
+ after(grammarAccess.getStateAccess().getActionsKeyword_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Group_2__0__Impl"
+
+
+ // $ANTLR start "rule__State__Group_2__1"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:978:1: rule__State__Group_2__1 : rule__State__Group_2__1__Impl rule__State__Group_2__2 ;
+ public final void rule__State__Group_2__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:982:1: ( rule__State__Group_2__1__Impl rule__State__Group_2__2 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:983:2: rule__State__Group_2__1__Impl rule__State__Group_2__2
+ {
+ pushFollow(FOLLOW_rule__State__Group_2__1__Impl_in_rule__State__Group_2__11909);
+ rule__State__Group_2__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__State__Group_2__2_in_rule__State__Group_2__11912);
+ rule__State__Group_2__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Group_2__1"
+
+
+ // $ANTLR start "rule__State__Group_2__1__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:990:1: rule__State__Group_2__1__Impl : ( '{' ) ;
+ public final void rule__State__Group_2__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:994:1: ( ( '{' ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:995:1: ( '{' )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:995:1: ( '{' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:996:1: '{'
+ {
+ before(grammarAccess.getStateAccess().getLeftCurlyBracketKeyword_2_1());
+ match(input,17,FOLLOW_17_in_rule__State__Group_2__1__Impl1940);
+ after(grammarAccess.getStateAccess().getLeftCurlyBracketKeyword_2_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Group_2__1__Impl"
+
+
+ // $ANTLR start "rule__State__Group_2__2"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1009:1: rule__State__Group_2__2 : rule__State__Group_2__2__Impl rule__State__Group_2__3 ;
+ public final void rule__State__Group_2__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1013:1: ( rule__State__Group_2__2__Impl rule__State__Group_2__3 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1014:2: rule__State__Group_2__2__Impl rule__State__Group_2__3
+ {
+ pushFollow(FOLLOW_rule__State__Group_2__2__Impl_in_rule__State__Group_2__21971);
+ rule__State__Group_2__2__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__State__Group_2__3_in_rule__State__Group_2__21974);
+ rule__State__Group_2__3();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Group_2__2"
+
+
+ // $ANTLR start "rule__State__Group_2__2__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1021:1: rule__State__Group_2__2__Impl : ( ( ( rule__State__ActionsAssignment_2_2 ) ) ( ( rule__State__ActionsAssignment_2_2 )* ) ) ;
+ public final void rule__State__Group_2__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1025:1: ( ( ( ( rule__State__ActionsAssignment_2_2 ) ) ( ( rule__State__ActionsAssignment_2_2 )* ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1026:1: ( ( ( rule__State__ActionsAssignment_2_2 ) ) ( ( rule__State__ActionsAssignment_2_2 )* ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1026:1: ( ( ( rule__State__ActionsAssignment_2_2 ) ) ( ( rule__State__ActionsAssignment_2_2 )* ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1027:1: ( ( rule__State__ActionsAssignment_2_2 ) ) ( ( rule__State__ActionsAssignment_2_2 )* )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1027:1: ( ( rule__State__ActionsAssignment_2_2 ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1028:1: ( rule__State__ActionsAssignment_2_2 )
+ {
+ before(grammarAccess.getStateAccess().getActionsAssignment_2_2());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1029:1: ( rule__State__ActionsAssignment_2_2 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1029:2: rule__State__ActionsAssignment_2_2
+ {
+ pushFollow(FOLLOW_rule__State__ActionsAssignment_2_2_in_rule__State__Group_2__2__Impl2003);
+ rule__State__ActionsAssignment_2_2();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getStateAccess().getActionsAssignment_2_2());
+
+ }
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1032:1: ( ( rule__State__ActionsAssignment_2_2 )* )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1033:1: ( rule__State__ActionsAssignment_2_2 )*
+ {
+ before(grammarAccess.getStateAccess().getActionsAssignment_2_2());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1034:1: ( rule__State__ActionsAssignment_2_2 )*
+ loop10:
+ do {
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0==RULE_ID) ) {
+ alt10=1;
+ }
+
+
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1034:2: rule__State__ActionsAssignment_2_2
+ {
+ pushFollow(FOLLOW_rule__State__ActionsAssignment_2_2_in_rule__State__Group_2__2__Impl2015);
+ rule__State__ActionsAssignment_2_2();
+
+ state._fsp--;
+
+
+ }
+ break;
+
+ default :
+ break loop10;
+ }
+ } while (true);
+
+ after(grammarAccess.getStateAccess().getActionsAssignment_2_2());
+
+ }
+
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Group_2__2__Impl"
+
+
+ // $ANTLR start "rule__State__Group_2__3"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1045:1: rule__State__Group_2__3 : rule__State__Group_2__3__Impl ;
+ public final void rule__State__Group_2__3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1049:1: ( rule__State__Group_2__3__Impl )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1050:2: rule__State__Group_2__3__Impl
+ {
+ pushFollow(FOLLOW_rule__State__Group_2__3__Impl_in_rule__State__Group_2__32048);
+ rule__State__Group_2__3__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Group_2__3"
+
+
+ // $ANTLR start "rule__State__Group_2__3__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1056:1: rule__State__Group_2__3__Impl : ( '}' ) ;
+ public final void rule__State__Group_2__3__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1060:1: ( ( '}' ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1061:1: ( '}' )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1061:1: ( '}' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1062:1: '}'
+ {
+ before(grammarAccess.getStateAccess().getRightCurlyBracketKeyword_2_3());
+ match(input,18,FOLLOW_18_in_rule__State__Group_2__3__Impl2076);
+ after(grammarAccess.getStateAccess().getRightCurlyBracketKeyword_2_3());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__Group_2__3__Impl"
+
+
+ // $ANTLR start "rule__Transition__Group__0"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1083:1: rule__Transition__Group__0 : rule__Transition__Group__0__Impl rule__Transition__Group__1 ;
+ public final void rule__Transition__Group__0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1087:1: ( rule__Transition__Group__0__Impl rule__Transition__Group__1 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1088:2: rule__Transition__Group__0__Impl rule__Transition__Group__1
+ {
+ pushFollow(FOLLOW_rule__Transition__Group__0__Impl_in_rule__Transition__Group__02115);
+ rule__Transition__Group__0__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Transition__Group__1_in_rule__Transition__Group__02118);
+ rule__Transition__Group__1();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__0"
+
+
+ // $ANTLR start "rule__Transition__Group__0__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1095:1: rule__Transition__Group__0__Impl : ( ( rule__Transition__EventAssignment_0 ) ) ;
+ public final void rule__Transition__Group__0__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1099:1: ( ( ( rule__Transition__EventAssignment_0 ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1100:1: ( ( rule__Transition__EventAssignment_0 ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1100:1: ( ( rule__Transition__EventAssignment_0 ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1101:1: ( rule__Transition__EventAssignment_0 )
+ {
+ before(grammarAccess.getTransitionAccess().getEventAssignment_0());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1102:1: ( rule__Transition__EventAssignment_0 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1102:2: rule__Transition__EventAssignment_0
+ {
+ pushFollow(FOLLOW_rule__Transition__EventAssignment_0_in_rule__Transition__Group__0__Impl2145);
+ rule__Transition__EventAssignment_0();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getTransitionAccess().getEventAssignment_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__0__Impl"
+
+
+ // $ANTLR start "rule__Transition__Group__1"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1112:1: rule__Transition__Group__1 : rule__Transition__Group__1__Impl rule__Transition__Group__2 ;
+ public final void rule__Transition__Group__1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1116:1: ( rule__Transition__Group__1__Impl rule__Transition__Group__2 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1117:2: rule__Transition__Group__1__Impl rule__Transition__Group__2
+ {
+ pushFollow(FOLLOW_rule__Transition__Group__1__Impl_in_rule__Transition__Group__12175);
+ rule__Transition__Group__1__Impl();
+
+ state._fsp--;
+
+ pushFollow(FOLLOW_rule__Transition__Group__2_in_rule__Transition__Group__12178);
+ rule__Transition__Group__2();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__1"
+
+
+ // $ANTLR start "rule__Transition__Group__1__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1124:1: rule__Transition__Group__1__Impl : ( '=>' ) ;
+ public final void rule__Transition__Group__1__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1128:1: ( ( '=>' ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1129:1: ( '=>' )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1129:1: ( '=>' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1130:1: '=>'
+ {
+ before(grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1());
+ match(input,19,FOLLOW_19_in_rule__Transition__Group__1__Impl2206);
+ after(grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__1__Impl"
+
+
+ // $ANTLR start "rule__Transition__Group__2"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1143:1: rule__Transition__Group__2 : rule__Transition__Group__2__Impl ;
+ public final void rule__Transition__Group__2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1147:1: ( rule__Transition__Group__2__Impl )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1148:2: rule__Transition__Group__2__Impl
+ {
+ pushFollow(FOLLOW_rule__Transition__Group__2__Impl_in_rule__Transition__Group__22237);
+ rule__Transition__Group__2__Impl();
+
+ state._fsp--;
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__2"
+
+
+ // $ANTLR start "rule__Transition__Group__2__Impl"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1154:1: rule__Transition__Group__2__Impl : ( ( rule__Transition__StateAssignment_2 ) ) ;
+ public final void rule__Transition__Group__2__Impl() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1158:1: ( ( ( rule__Transition__StateAssignment_2 ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1159:1: ( ( rule__Transition__StateAssignment_2 ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1159:1: ( ( rule__Transition__StateAssignment_2 ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1160:1: ( rule__Transition__StateAssignment_2 )
+ {
+ before(grammarAccess.getTransitionAccess().getStateAssignment_2());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1161:1: ( rule__Transition__StateAssignment_2 )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1161:2: rule__Transition__StateAssignment_2
+ {
+ pushFollow(FOLLOW_rule__Transition__StateAssignment_2_in_rule__Transition__Group__2__Impl2264);
+ rule__Transition__StateAssignment_2();
+
+ state._fsp--;
+
+
+ }
+
+ after(grammarAccess.getTransitionAccess().getStateAssignment_2());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__Group__2__Impl"
+
+
+ // $ANTLR start "rule__Statemachine__EventsAssignment_1_1"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1178:1: rule__Statemachine__EventsAssignment_1_1 : ( ruleEvent ) ;
+ public final void rule__Statemachine__EventsAssignment_1_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1182:1: ( ( ruleEvent ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1183:1: ( ruleEvent )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1183:1: ( ruleEvent )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1184:1: ruleEvent
+ {
+ before(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_1_1_0());
+ pushFollow(FOLLOW_ruleEvent_in_rule__Statemachine__EventsAssignment_1_12305);
+ ruleEvent();
+
+ state._fsp--;
+
+ after(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_1_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__EventsAssignment_1_1"
+
+
+ // $ANTLR start "rule__Statemachine__ResetEventsAssignment_2_1"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1193:1: rule__Statemachine__ResetEventsAssignment_2_1 : ( ( RULE_ID ) ) ;
+ public final void rule__Statemachine__ResetEventsAssignment_2_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1197:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1198:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1198:1: ( ( RULE_ID ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1199:1: ( RULE_ID )
+ {
+ before(grammarAccess.getStatemachineAccess().getResetEventsEventCrossReference_2_1_0());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1200:1: ( RULE_ID )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1201:1: RULE_ID
+ {
+ before(grammarAccess.getStatemachineAccess().getResetEventsEventIDTerminalRuleCall_2_1_0_1());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Statemachine__ResetEventsAssignment_2_12340);
+ after(grammarAccess.getStatemachineAccess().getResetEventsEventIDTerminalRuleCall_2_1_0_1());
+
+ }
+
+ after(grammarAccess.getStatemachineAccess().getResetEventsEventCrossReference_2_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__ResetEventsAssignment_2_1"
+
+
+ // $ANTLR start "rule__Statemachine__CommandsAssignment_3_1"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1212:1: rule__Statemachine__CommandsAssignment_3_1 : ( ruleCommand ) ;
+ public final void rule__Statemachine__CommandsAssignment_3_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1216:1: ( ( ruleCommand ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1217:1: ( ruleCommand )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1217:1: ( ruleCommand )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1218:1: ruleCommand
+ {
+ before(grammarAccess.getStatemachineAccess().getCommandsCommandParserRuleCall_3_1_0());
+ pushFollow(FOLLOW_ruleCommand_in_rule__Statemachine__CommandsAssignment_3_12375);
+ ruleCommand();
+
+ state._fsp--;
+
+ after(grammarAccess.getStatemachineAccess().getCommandsCommandParserRuleCall_3_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__CommandsAssignment_3_1"
+
+
+ // $ANTLR start "rule__Statemachine__StatesAssignment_4"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1227:1: rule__Statemachine__StatesAssignment_4 : ( ruleState ) ;
+ public final void rule__Statemachine__StatesAssignment_4() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1231:1: ( ( ruleState ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1232:1: ( ruleState )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1232:1: ( ruleState )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1233:1: ruleState
+ {
+ before(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_4_0());
+ pushFollow(FOLLOW_ruleState_in_rule__Statemachine__StatesAssignment_42406);
+ ruleState();
+
+ state._fsp--;
+
+ after(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_4_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Statemachine__StatesAssignment_4"
+
+
+ // $ANTLR start "rule__Event__NameAssignment_0"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1242:1: rule__Event__NameAssignment_0 : ( RULE_ID ) ;
+ public final void rule__Event__NameAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1246:1: ( ( RULE_ID ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1247:1: ( RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1247:1: ( RULE_ID )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1248:1: RULE_ID
+ {
+ before(grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Event__NameAssignment_02437);
+ after(grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Event__NameAssignment_0"
+
+
+ // $ANTLR start "rule__Event__CodeAssignment_1"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1257:1: rule__Event__CodeAssignment_1 : ( RULE_ID ) ;
+ public final void rule__Event__CodeAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1261:1: ( ( RULE_ID ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1262:1: ( RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1262:1: ( RULE_ID )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1263:1: RULE_ID
+ {
+ before(grammarAccess.getEventAccess().getCodeIDTerminalRuleCall_1_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Event__CodeAssignment_12468);
+ after(grammarAccess.getEventAccess().getCodeIDTerminalRuleCall_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Event__CodeAssignment_1"
+
+
+ // $ANTLR start "rule__Command__NameAssignment_0"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1272:1: rule__Command__NameAssignment_0 : ( RULE_ID ) ;
+ public final void rule__Command__NameAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1276:1: ( ( RULE_ID ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1277:1: ( RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1277:1: ( RULE_ID )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1278:1: RULE_ID
+ {
+ before(grammarAccess.getCommandAccess().getNameIDTerminalRuleCall_0_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Command__NameAssignment_02499);
+ after(grammarAccess.getCommandAccess().getNameIDTerminalRuleCall_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Command__NameAssignment_0"
+
+
+ // $ANTLR start "rule__Command__CodeAssignment_1"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1287:1: rule__Command__CodeAssignment_1 : ( RULE_ID ) ;
+ public final void rule__Command__CodeAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1291:1: ( ( RULE_ID ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1292:1: ( RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1292:1: ( RULE_ID )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1293:1: RULE_ID
+ {
+ before(grammarAccess.getCommandAccess().getCodeIDTerminalRuleCall_1_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Command__CodeAssignment_12530);
+ after(grammarAccess.getCommandAccess().getCodeIDTerminalRuleCall_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Command__CodeAssignment_1"
+
+
+ // $ANTLR start "rule__State__NameAssignment_1"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1302:1: rule__State__NameAssignment_1 : ( RULE_ID ) ;
+ public final void rule__State__NameAssignment_1() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1306:1: ( ( RULE_ID ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1307:1: ( RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1307:1: ( RULE_ID )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1308:1: RULE_ID
+ {
+ before(grammarAccess.getStateAccess().getNameIDTerminalRuleCall_1_0());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__State__NameAssignment_12561);
+ after(grammarAccess.getStateAccess().getNameIDTerminalRuleCall_1_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__NameAssignment_1"
+
+
+ // $ANTLR start "rule__State__ActionsAssignment_2_2"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1317:1: rule__State__ActionsAssignment_2_2 : ( ( RULE_ID ) ) ;
+ public final void rule__State__ActionsAssignment_2_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1321:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1322:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1322:1: ( ( RULE_ID ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1323:1: ( RULE_ID )
+ {
+ before(grammarAccess.getStateAccess().getActionsCommandCrossReference_2_2_0());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1324:1: ( RULE_ID )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1325:1: RULE_ID
+ {
+ before(grammarAccess.getStateAccess().getActionsCommandIDTerminalRuleCall_2_2_0_1());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__State__ActionsAssignment_2_22596);
+ after(grammarAccess.getStateAccess().getActionsCommandIDTerminalRuleCall_2_2_0_1());
+
+ }
+
+ after(grammarAccess.getStateAccess().getActionsCommandCrossReference_2_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__ActionsAssignment_2_2"
+
+
+ // $ANTLR start "rule__State__TransitionsAssignment_3"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1336:1: rule__State__TransitionsAssignment_3 : ( ruleTransition ) ;
+ public final void rule__State__TransitionsAssignment_3() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1340:1: ( ( ruleTransition ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1341:1: ( ruleTransition )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1341:1: ( ruleTransition )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1342:1: ruleTransition
+ {
+ before(grammarAccess.getStateAccess().getTransitionsTransitionParserRuleCall_3_0());
+ pushFollow(FOLLOW_ruleTransition_in_rule__State__TransitionsAssignment_32631);
+ ruleTransition();
+
+ state._fsp--;
+
+ after(grammarAccess.getStateAccess().getTransitionsTransitionParserRuleCall_3_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__State__TransitionsAssignment_3"
+
+
+ // $ANTLR start "rule__Transition__EventAssignment_0"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1351:1: rule__Transition__EventAssignment_0 : ( ( RULE_ID ) ) ;
+ public final void rule__Transition__EventAssignment_0() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1355:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1356:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1356:1: ( ( RULE_ID ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1357:1: ( RULE_ID )
+ {
+ before(grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1358:1: ( RULE_ID )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1359:1: RULE_ID
+ {
+ before(grammarAccess.getTransitionAccess().getEventEventIDTerminalRuleCall_0_0_1());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Transition__EventAssignment_02666);
+ after(grammarAccess.getTransitionAccess().getEventEventIDTerminalRuleCall_0_0_1());
+
+ }
+
+ after(grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__EventAssignment_0"
+
+
+ // $ANTLR start "rule__Transition__StateAssignment_2"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1370:1: rule__Transition__StateAssignment_2 : ( ( RULE_ID ) ) ;
+ public final void rule__Transition__StateAssignment_2() throws RecognitionException {
+
+ int stackSize = keepStackSize();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1374:1: ( ( ( RULE_ID ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1375:1: ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1375:1: ( ( RULE_ID ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1376:1: ( RULE_ID )
+ {
+ before(grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0());
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1377:1: ( RULE_ID )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/antlr/internal/InternalStatemachine.g:1378:1: RULE_ID
+ {
+ before(grammarAccess.getTransitionAccess().getStateStateIDTerminalRuleCall_2_0_1());
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Transition__StateAssignment_22705);
+ after(grammarAccess.getTransitionAccess().getStateStateIDTerminalRuleCall_2_0_1());
+
+ }
+
+ after(grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0());
+
+ }
+
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+
+ restoreStackSize(stackSize);
+
+ }
+ return ;
+ }
+ // $ANTLR end "rule__Transition__StateAssignment_2"
+
+ // Delegated rules
+
+
+
+
+ public static final BitSet FOLLOW_ruleStatemachine_in_entryRuleStatemachine61 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleStatemachine68 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__0_in_ruleStatemachine94 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleEvent_in_entryRuleEvent121 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleEvent128 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Event__Group__0_in_ruleEvent154 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCommand_in_entryRuleCommand181 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleCommand188 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Command__Group__0_in_ruleCommand214 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleState_in_entryRuleState241 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleState248 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__State__Group__0_in_ruleState274 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTransition_in_entryRuleTransition301 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleTransition308 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__Group__0_in_ruleTransition334 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__0__Impl_in_rule__Statemachine__Group__0368 = new BitSet(new long[]{0x000000000000E800L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__1_in_rule__Statemachine__Group__0371 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__1__Impl_in_rule__Statemachine__Group__1429 = new BitSet(new long[]{0x000000000000E800L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__2_in_rule__Statemachine__Group__1432 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_1__0_in_rule__Statemachine__Group__1__Impl459 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__2__Impl_in_rule__Statemachine__Group__2490 = new BitSet(new long[]{0x000000000000E800L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__3_in_rule__Statemachine__Group__2493 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_2__0_in_rule__Statemachine__Group__2__Impl520 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__3__Impl_in_rule__Statemachine__Group__3551 = new BitSet(new long[]{0x000000000000E800L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__4_in_rule__Statemachine__Group__3554 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_3__0_in_rule__Statemachine__Group__3__Impl581 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group__4__Impl_in_rule__Statemachine__Group__4612 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__StatesAssignment_4_in_rule__Statemachine__Group__4__Impl639 = new BitSet(new long[]{0x0000000000008002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_1__0__Impl_in_rule__Statemachine__Group_1__0680 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_1__1_in_rule__Statemachine__Group_1__0683 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_11_in_rule__Statemachine__Group_1__0__Impl711 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_1__1__Impl_in_rule__Statemachine__Group_1__1742 = new BitSet(new long[]{0x0000000000001000L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_1__2_in_rule__Statemachine__Group_1__1745 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__EventsAssignment_1_1_in_rule__Statemachine__Group_1__1__Impl774 = new BitSet(new long[]{0x0000000000000012L});
+ public static final BitSet FOLLOW_rule__Statemachine__EventsAssignment_1_1_in_rule__Statemachine__Group_1__1__Impl786 = new BitSet(new long[]{0x0000000000000012L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_1__2__Impl_in_rule__Statemachine__Group_1__2819 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_12_in_rule__Statemachine__Group_1__2__Impl847 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_2__0__Impl_in_rule__Statemachine__Group_2__0884 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_2__1_in_rule__Statemachine__Group_2__0887 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_13_in_rule__Statemachine__Group_2__0__Impl915 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_2__1__Impl_in_rule__Statemachine__Group_2__1946 = new BitSet(new long[]{0x0000000000001000L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_2__2_in_rule__Statemachine__Group_2__1949 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__ResetEventsAssignment_2_1_in_rule__Statemachine__Group_2__1__Impl978 = new BitSet(new long[]{0x0000000000000012L});
+ public static final BitSet FOLLOW_rule__Statemachine__ResetEventsAssignment_2_1_in_rule__Statemachine__Group_2__1__Impl990 = new BitSet(new long[]{0x0000000000000012L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_2__2__Impl_in_rule__Statemachine__Group_2__21023 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_12_in_rule__Statemachine__Group_2__2__Impl1051 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_3__0__Impl_in_rule__Statemachine__Group_3__01088 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_3__1_in_rule__Statemachine__Group_3__01091 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_14_in_rule__Statemachine__Group_3__0__Impl1119 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_3__1__Impl_in_rule__Statemachine__Group_3__11150 = new BitSet(new long[]{0x0000000000001000L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_3__2_in_rule__Statemachine__Group_3__11153 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Statemachine__CommandsAssignment_3_1_in_rule__Statemachine__Group_3__1__Impl1182 = new BitSet(new long[]{0x0000000000000012L});
+ public static final BitSet FOLLOW_rule__Statemachine__CommandsAssignment_3_1_in_rule__Statemachine__Group_3__1__Impl1194 = new BitSet(new long[]{0x0000000000000012L});
+ public static final BitSet FOLLOW_rule__Statemachine__Group_3__2__Impl_in_rule__Statemachine__Group_3__21227 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_12_in_rule__Statemachine__Group_3__2__Impl1255 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Event__Group__0__Impl_in_rule__Event__Group__01292 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__Event__Group__1_in_rule__Event__Group__01295 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Event__NameAssignment_0_in_rule__Event__Group__0__Impl1322 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Event__Group__1__Impl_in_rule__Event__Group__11352 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Event__CodeAssignment_1_in_rule__Event__Group__1__Impl1379 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Command__Group__0__Impl_in_rule__Command__Group__01413 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__Command__Group__1_in_rule__Command__Group__01416 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Command__NameAssignment_0_in_rule__Command__Group__0__Impl1443 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Command__Group__1__Impl_in_rule__Command__Group__11473 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Command__CodeAssignment_1_in_rule__Command__Group__1__Impl1500 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__State__Group__0__Impl_in_rule__State__Group__01534 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__State__Group__1_in_rule__State__Group__01537 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_15_in_rule__State__Group__0__Impl1565 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__State__Group__1__Impl_in_rule__State__Group__11596 = new BitSet(new long[]{0x0000000000011010L});
+ public static final BitSet FOLLOW_rule__State__Group__2_in_rule__State__Group__11599 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__State__NameAssignment_1_in_rule__State__Group__1__Impl1626 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__State__Group__2__Impl_in_rule__State__Group__21656 = new BitSet(new long[]{0x0000000000011010L});
+ public static final BitSet FOLLOW_rule__State__Group__3_in_rule__State__Group__21659 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__State__Group_2__0_in_rule__State__Group__2__Impl1686 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__State__Group__3__Impl_in_rule__State__Group__31717 = new BitSet(new long[]{0x0000000000011010L});
+ public static final BitSet FOLLOW_rule__State__Group__4_in_rule__State__Group__31720 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__State__TransitionsAssignment_3_in_rule__State__Group__3__Impl1747 = new BitSet(new long[]{0x0000000000000012L});
+ public static final BitSet FOLLOW_rule__State__Group__4__Impl_in_rule__State__Group__41778 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_12_in_rule__State__Group__4__Impl1806 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__State__Group_2__0__Impl_in_rule__State__Group_2__01847 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_rule__State__Group_2__1_in_rule__State__Group_2__01850 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_16_in_rule__State__Group_2__0__Impl1878 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__State__Group_2__1__Impl_in_rule__State__Group_2__11909 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__State__Group_2__2_in_rule__State__Group_2__11912 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_17_in_rule__State__Group_2__1__Impl1940 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__State__Group_2__2__Impl_in_rule__State__Group_2__21971 = new BitSet(new long[]{0x0000000000040000L});
+ public static final BitSet FOLLOW_rule__State__Group_2__3_in_rule__State__Group_2__21974 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__State__ActionsAssignment_2_2_in_rule__State__Group_2__2__Impl2003 = new BitSet(new long[]{0x0000000000000012L});
+ public static final BitSet FOLLOW_rule__State__ActionsAssignment_2_2_in_rule__State__Group_2__2__Impl2015 = new BitSet(new long[]{0x0000000000000012L});
+ public static final BitSet FOLLOW_rule__State__Group_2__3__Impl_in_rule__State__Group_2__32048 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_18_in_rule__State__Group_2__3__Impl2076 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__Group__0__Impl_in_rule__Transition__Group__02115 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_rule__Transition__Group__1_in_rule__Transition__Group__02118 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__EventAssignment_0_in_rule__Transition__Group__0__Impl2145 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__Group__1__Impl_in_rule__Transition__Group__12175 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_rule__Transition__Group__2_in_rule__Transition__Group__12178 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_19_in_rule__Transition__Group__1__Impl2206 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__Group__2__Impl_in_rule__Transition__Group__22237 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule__Transition__StateAssignment_2_in_rule__Transition__Group__2__Impl2264 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleEvent_in_rule__Statemachine__EventsAssignment_1_12305 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Statemachine__ResetEventsAssignment_2_12340 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCommand_in_rule__Statemachine__CommandsAssignment_3_12375 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleState_in_rule__Statemachine__StatesAssignment_42406 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Event__NameAssignment_02437 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Event__CodeAssignment_12468 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Command__NameAssignment_02499 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Command__CodeAssignment_12530 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__State__NameAssignment_12561 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__State__ActionsAssignment_2_22596 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTransition_in_rule__State__TransitionsAssignment_32631 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Transition__EventAssignment_02666 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_rule__Transition__StateAssignment_22705 = new BitSet(new long[]{0x0000000000000002L});
+
+} \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/internal/StatemachineActivator.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/internal/StatemachineActivator.java
new file mode 100644
index 000000000..ba7437aa6
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/ui/internal/StatemachineActivator.java
@@ -0,0 +1,95 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.ui.internal;
+
+import static com.google.inject.util.Modules.override;
+import static com.google.inject.Guice.createInjector;
+
+import org.apache.log4j.Logger;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+import com.google.inject.Injector;
+import com.google.inject.Module;
+import com.google.common.cache.Cache;
+import com.google.common.cache.CacheBuilder;
+import com.google.common.cache.CacheLoader;
+
+import java.util.concurrent.ExecutionException;
+
+import org.eclipse.xtext.ui.shared.SharedStateModule;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass.
+ */
+public class StatemachineActivator extends AbstractUIPlugin {
+
+ private static final Logger logger = Logger.getLogger(StatemachineActivator.class);
+
+ private Cache<String, Injector> injectors = CacheBuilder.newBuilder().build(new CacheLoader<String, Injector>() {
+ @Override
+ public Injector load(String language) throws Exception {
+ Module runtimeModule = getRuntimeModule(language);
+ Module sharedStateModule = getSharedStateModule();
+ Module uiModule = getUiModule(language);
+ Module mergedModule = override(override(runtimeModule).with(sharedStateModule)).with(uiModule);
+ return createInjector(mergedModule);
+ }
+ });
+
+ private static StatemachineActivator INSTANCE;
+
+ public static final String ORG_ECLIPSE_EMF_PARSLEY_EXAMPLES_FOWLERDSL_STATEMACHINE = "org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine";
+
+ public Injector getInjector(String languageName) {
+ try {
+ return injectors.get(languageName);
+ } catch(ExecutionException e) {
+ logger.error("Failed to create injector for " + languageName);
+ logger.error(e.getMessage(), e);
+ throw new RuntimeException("Failed to create injector for " + languageName, e);
+ }
+ }
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ INSTANCE = this;
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ injectors.invalidateAll();
+ injectors.cleanUp();
+ INSTANCE = null;
+ super.stop(context);
+ }
+
+ public static StatemachineActivator getInstance() {
+ return INSTANCE;
+ }
+
+ protected Module getRuntimeModule(String grammar) {
+ if (ORG_ECLIPSE_EMF_PARSLEY_EXAMPLES_FOWLERDSL_STATEMACHINE.equals(grammar)) {
+ return new org.eclipse.emf.parsley.examples.fowlerdsl.StatemachineRuntimeModule();
+ }
+
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getUiModule(String grammar) {
+ if (ORG_ECLIPSE_EMF_PARSLEY_EXAMPLES_FOWLERDSL_STATEMACHINE.equals(grammar)) {
+ return new org.eclipse.emf.parsley.examples.fowlerdsl.ui.StatemachineUiModule(this);
+ }
+
+ throw new IllegalArgumentException(grammar);
+ }
+
+ protected Module getSharedStateModule() {
+ return new SharedStateModule();
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/StatemachineUiModule.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/StatemachineUiModule.java
new file mode 100644
index 000000000..4f298c4bd
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/StatemachineUiModule.java
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Use this class to register components to be used within the IDE.
+ */
+public class StatemachineUiModule extends org.eclipse.emf.parsley.examples.fowlerdsl.ui.AbstractStatemachineUiModule {
+ public StatemachineUiModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/StatemachineProposalProvider.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/StatemachineProposalProvider.java
new file mode 100644
index 000000000..6de1413be
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/contentassist/StatemachineProposalProvider.java
@@ -0,0 +1,12 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist;
+
+import org.eclipse.emf.parsley.examples.fowlerdsl.ui.contentassist.AbstractStatemachineProposalProvider;
+/**
+ * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#contentAssist on how to customize content assistant
+ */
+public class StatemachineProposalProvider extends AbstractStatemachineProposalProvider {
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/labeling/StatemachineDescriptionLabelProvider.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/labeling/StatemachineDescriptionLabelProvider.java
new file mode 100644
index 000000000..c501de5e1
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/labeling/StatemachineDescriptionLabelProvider.java
@@ -0,0 +1,27 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.examples.fowlerdsl.ui.labeling;
+
+import org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider;
+
+/**
+ * Provides labels for a IEObjectDescriptions and IResourceDescriptions.
+ *
+ * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider
+ */
+public class StatemachineDescriptionLabelProvider extends DefaultDescriptionLabelProvider {
+
+/*
+ //Labels and icons can be computed like this:
+
+ String text(IEObjectDescription ele) {
+ return "my "+ele.getName();
+ }
+
+ String image(IEObjectDescription ele) {
+ return ele.getEClass().getName() + ".gif";
+ }
+*/
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/labeling/StatemachineLabelProvider.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/labeling/StatemachineLabelProvider.java
new file mode 100644
index 000000000..57173c6ae
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/labeling/StatemachineLabelProvider.java
@@ -0,0 +1,34 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.examples.fowlerdsl.ui.labeling;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider;
+
+import com.google.inject.Inject;
+
+/**
+ * Provides labels for a EObjects.
+ *
+ * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider
+ */
+public class StatemachineLabelProvider extends DefaultEObjectLabelProvider {
+
+ @Inject
+ public StatemachineLabelProvider(AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+
+/*
+ //Labels and icons can be computed like this:
+
+ String text(MyModel ele) {
+ return "my "+ele.getName();
+ }
+
+ String image(MyModel ele) {
+ return "MyModel.gif";
+ }
+*/
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/outline/StatemachineOutlineTreeProvider.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/outline/StatemachineOutlineTreeProvider.java
new file mode 100644
index 000000000..ccde1c87a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/outline/StatemachineOutlineTreeProvider.java
@@ -0,0 +1,14 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.examples.fowlerdsl.ui.outline;
+
+import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider;
+
+/**
+ * customization of the default outline structure
+ *
+ */
+public class StatemachineOutlineTreeProvider extends DefaultOutlineTreeProvider {
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/quickfix/StatemachineQuickfixProvider.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/quickfix/StatemachineQuickfixProvider.java
new file mode 100644
index 000000000..e354612f1
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl.ui/src/org/eclipse/emf/parsley/examples/fowlerdsl/ui/quickfix/StatemachineQuickfixProvider.java
@@ -0,0 +1,19 @@
+
+package org.eclipse.emf.parsley.examples.fowlerdsl.ui.quickfix;
+
+import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider;
+
+public class StatemachineQuickfixProvider extends DefaultQuickfixProvider {
+
+// @Fix(MyJavaValidator.INVALID_NAME)
+// public void capitalizeName(final Issue issue, IssueResolutionAcceptor acceptor) {
+// acceptor.accept(issue, "Capitalize name", "Capitalize the name.", "upcase.png", new IModification() {
+// public void apply(IModificationContext context) throws BadLocationException {
+// IXtextDocument xtextDocument = context.getXtextDocument();
+// String firstLetter = xtextDocument.get(issue.getOffset(), 1);
+// xtextDocument.replace(issue.getOffset(), 1, firstLetter.toUpperCase());
+// }
+// });
+// }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/.classpath b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/.classpath
new file mode 100644
index 000000000..406ca4abd
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/.launch/Generate Language Infrastructure (it.rcpvision.emf.components.examples.fowlerdsl).launch b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/.launch/Generate Language Infrastructure (it.rcpvision.emf.components.examples.fowlerdsl).launch
new file mode 100644
index 000000000..af007fee3
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/.launch/Generate Language Infrastructure (it.rcpvision.emf.components.examples.fowlerdsl).launch
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.emf.mwe2.launch.Mwe2LaunchConfigurationType">
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; id=&quot;1299248699643_13&quot; label=&quot;working set&quot; name=&quot;working set&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.emf.parsley.examples.fowlerdsl&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.emf.parsley.examples.fowlerdsl.generator&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.emf.parsley.examples.fowlerdsl.tests&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.emf.parsley.examples.fowlerdsl.ui&quot; type=&quot;4&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.examples.fowlerdsl"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="src/org/eclipse/emf/parsley/examples/fowlerdsl/GenerateStatemachine.mwe2"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.examples.fowlerdsl"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx512m"/>
+</launchConfiguration>
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/.launch/Launch Runtime Eclipse.launch b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/.launch/Launch Runtime Eclipse.launch
new file mode 100644
index 000000000..9f029b951
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/.launch/Launch Runtime Eclipse.launch
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="true"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bad_container_name" value="/org.eclipse.emf.parsley.examples.fowlerdsl/.launch/"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="false"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/Launch Runtime Eclipse"/>
+<booleanAttribute key="default" value="true"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../runtime-New_configuration"/>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx512m -XX:MaxPermSize=256m"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<booleanAttribute key="useProduct" value="true"/>
+<booleanAttribute key="usefeatures" value="false"/>
+</launchConfiguration>
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/.project b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/.project
new file mode 100644
index 000000000..e6c6ceca7
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.fowlerdsl</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..506393d2a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/META-INF/MANIFEST.MF
@@ -0,0 +1,36 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.emf.parsley.examples.fowlerdsl
+Bundle-Vendor: My Company
+Bundle-Version: 0.1.0.qualifier
+Bundle-SymbolicName: org.eclipse.emf.parsley.examples.fowlerdsl;singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.xtext;bundle-version="[2.4.2,2.5.0)";visibility:=reexport,
+ org.eclipse.xtext.xbase;bundle-version="[2.4.2,2.5.0)";resolution:=optional;visibility:=reexport,
+ org.apache.log4j;bundle-version="1.2.15";visibility:=reexport,
+ org.apache.commons.logging;bundle-version="1.0.4";resolution:=optional;visibility:=reexport,
+ org.eclipse.xtext.generator;bundle-version="[2.4.2,2.5.0)";resolution:=optional,
+ org.eclipse.emf.codegen.ecore;bundle-version="2.7.0";resolution:=optional,
+ org.eclipse.emf.mwe.utils;bundle-version="[1.3.0,1.4.0)";resolution:=optional,
+ org.eclipse.emf.mwe2.launch;bundle-version="[2.4.0,2.5.0)";resolution:=optional,
+ org.eclipse.xtext.util;bundle-version="[2.4.2,2.5.0)",
+ org.eclipse.emf.ecore;bundle-version="2.7.0",
+ org.eclipse.emf.common;bundle-version="2.7.0",
+ org.antlr.runtime,
+ org.eclipse.xtext.common.types;bundle-version="[2.4.2,2.5.0)"
+Import-Package: org.apache.commons.logging,
+ org.apache.log4j
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.parsley.examples.fowlerdsl.parser.antlr,
+ org.eclipse.emf.parsley.examples.fowlerdsl.parser.antlr.internal,
+ org.eclipse.emf.parsley.examples.fowlerdsl.serializer,
+ org.eclipse.emf.parsley.examples.fowlerdsl.services,
+ org.eclipse.emf.parsley.examples.fowlerdsl.statemachine,
+ org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl,
+ org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.util,
+ org.eclipse.emf.parsley.examples.fowlerdsl,
+ org.eclipse.emf.parsley.examples.fowlerdsl.formatting,
+ org.eclipse.emf.parsley.examples.fowlerdsl.generator,
+ org.eclipse.emf.parsley.examples.fowlerdsl.scoping,
+ org.eclipse.emf.parsley.examples.fowlerdsl.validation
+
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/build.properties b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/build.properties
new file mode 100644
index 000000000..31255ed05
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/build.properties
@@ -0,0 +1,6 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/plugin.xml b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/plugin.xml
new file mode 100644
index 000000000..37efb3828
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/plugin.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri = "http://www.eclipse.org/emf/parsley/examples/fowlerdsl/Statemachine"
+ class = "org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage"
+ genModel = "org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.genmodel" />
+
+ </extension>
+
+
+
+
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/AbstractStatemachineRuntimeModule.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/AbstractStatemachineRuntimeModule.java
new file mode 100644
index 000000000..1ec55d805
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/AbstractStatemachineRuntimeModule.java
@@ -0,0 +1,172 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl;
+
+import java.util.Properties;
+
+import org.eclipse.xtext.Constants;
+import org.eclipse.xtext.service.DefaultRuntimeModule;
+
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
+
+/**
+ * Manual modifications go to {org.eclipse.emf.parsley.examples.fowlerdsl.StatemachineRuntimeModule}
+ */
+ @SuppressWarnings("all")
+public abstract class AbstractStatemachineRuntimeModule extends DefaultRuntimeModule {
+
+ protected Properties properties = null;
+
+ @Override
+ public void configure(Binder binder) {
+ properties = tryBindProperties(binder, "org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.properties");
+ super.configure(binder);
+ }
+
+ public void configureLanguageName(Binder binder) {
+ binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine");
+ }
+
+ public void configureFileExtensions(Binder binder) {
+ if (properties == null || properties.getProperty(Constants.FILE_EXTENSIONS) == null)
+ binder.bind(String.class).annotatedWith(Names.named(Constants.FILE_EXTENSIONS)).toInstance("statemachine");
+ }
+
+ // contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+ public Class<? extends org.eclipse.xtext.IGrammarAccess> bindIGrammarAccess() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.services.StatemachineGrammarAccess.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+ public Class<? extends org.eclipse.xtext.serializer.sequencer.ISemanticSequencer> bindISemanticSequencer() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.serializer.AbstractStatemachineSemanticSequencer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+ public Class<? extends org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer> bindISyntacticSequencer() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.serializer.AbstractStatemachineSyntacticSequencer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+ public Class<? extends org.eclipse.xtext.serializer.ISerializer> bindISerializer() {
+ return org.eclipse.xtext.serializer.impl.Serializer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.IParser> bindIParser() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.parser.antlr.StatemachineParser.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.ITokenToStringConverter> bindITokenToStringConverter() {
+ return org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider> bindIAntlrTokenFileProvider() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.parser.antlr.StatemachineAntlrTokenFileProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.Lexer> bindLexer() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.parser.antlr.internal.InternalStatemachineLexer.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public com.google.inject.Provider<org.eclipse.emf.parsley.examples.fowlerdsl.parser.antlr.internal.InternalStatemachineLexer> provideInternalStatemachineLexer() {
+ return org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.emf.parsley.examples.fowlerdsl.parser.antlr.internal.InternalStatemachineLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public void configureRuntimeLexer(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.parser.antlr.LexerBindings.RUNTIME)).to(org.eclipse.emf.parsley.examples.fowlerdsl.parser.antlr.internal.InternalStatemachineLexer.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+ public Class<? extends org.eclipse.xtext.parser.antlr.ITokenDefProvider> bindITokenDefProvider() {
+ return org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.validation.JavaValidatorFragment
+ @org.eclipse.xtext.service.SingletonBinding(eager=true) public Class<? extends org.eclipse.emf.parsley.examples.fowlerdsl.validation.StatemachineJavaValidator> bindStatemachineJavaValidator() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.validation.StatemachineJavaValidator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+ public Class<? extends org.eclipse.xtext.scoping.IScopeProvider> bindIScopeProvider() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.scoping.StatemachineScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+ public void configureIScopeProviderDelegate(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.scoping.IScopeProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.scoping.AbstractScopingFragment
+ public void configureIgnoreCaseLinking(com.google.inject.Binder binder) {
+ binder.bindConstant().annotatedWith(org.eclipse.xtext.scoping.IgnoreCaseLinking.class).to(false);
+ }
+
+ // contributed by org.eclipse.xtext.generator.exporting.QualifiedNamesFragment
+ public Class<? extends org.eclipse.xtext.naming.IQualifiedNameProvider> bindIQualifiedNameProvider() {
+ return org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public Class<? extends org.eclipse.xtext.resource.IContainer.Manager> bindIContainer$Manager() {
+ return org.eclipse.xtext.resource.containers.StateBasedContainerManager.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public Class<? extends org.eclipse.xtext.resource.containers.IAllContainersState.Provider> bindIAllContainersState$Provider() {
+ return org.eclipse.xtext.resource.containers.ResourceSetBasedAllContainersStateProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public void configureIResourceDescriptions(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
+ public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) {
+ binder.bind(org.eclipse.xtext.resource.IResourceDescriptions.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider.NAMED_BUILDER_SCOPE)).to(org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions.class);
+ }
+
+ // contributed by org.eclipse.xtext.generator.generator.GeneratorFragment
+ public Class<? extends org.eclipse.xtext.generator.IGenerator> bindIGenerator() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.generator.StatemachineGenerator.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.formatting.FormatterFragment
+ public Class<? extends org.eclipse.xtext.formatting.IFormatter> bindIFormatter() {
+ return org.eclipse.emf.parsley.examples.fowlerdsl.formatting.StatemachineFormatter.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public java.lang.ClassLoader bindClassLoaderToInstance() {
+ return getClass().getClassLoader();
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public org.eclipse.xtext.common.types.TypesFactory bindTypesFactoryToInstance() {
+ return org.eclipse.xtext.common.types.TypesFactory.eINSTANCE;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.access.IJvmTypeProvider.Factory> bindIJvmTypeProvider$Factory() {
+ return org.eclipse.xtext.common.types.access.ClasspathTypeProviderFactory.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.common.types.xtext.AbstractTypeScopeProvider> bindAbstractTypeScopeProvider() {
+ return org.eclipse.xtext.common.types.xtext.ClasspathBasedTypeScopeProvider.class;
+ }
+
+ // contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+ public Class<? extends org.eclipse.xtext.scoping.IGlobalScopeProvider> bindIGlobalScopeProvider() {
+ return org.eclipse.xtext.common.types.xtext.TypesAwareDefaultGlobalScopeProvider.class;
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.ecore b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.ecore
new file mode 100644
index 000000000..e63af52fd
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.ecore
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="statemachine"
+ nsURI="http://www.eclipse.org/emf/parsley/examples/fowlerdsl/Statemachine"
+ nsPrefix="statemachine">
+ <eClassifiers xsi:type="ecore:EClass" name="Statemachine">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="events" upperBound="-1"
+ eType="#//Event" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="resetEvents" unique="false"
+ upperBound="-1" eType="#//Event"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="commands" upperBound="-1"
+ eType="#//Command" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="states" upperBound="-1"
+ eType="#//State" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Event">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="code" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Command">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="code" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="State">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="actions" unique="false"
+ upperBound="-1" eType="#//Command"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transitions" upperBound="-1"
+ eType="#//Transition" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Transition">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="event" eType="#//Event"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="state" eType="#//State"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.genmodel b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.genmodel
new file mode 100644
index 000000000..aa2f1c187
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.genmodel
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen"
+ editDirectory="/org.eclipse.emf.parsley.examples.fowlerdsl.edit/src" editorDirectory="/org.eclipse.emf.parsley.examples.fowlerdsl.editor/src"
+ modelPluginID="org.eclipse.emf.parsley.examples.fowlerdsl" forceOverwrite="true"
+ modelName="Statemachine" updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ complianceLevel="5.0" copyrightFields="false" editPluginID="org.eclipse.emf.parsley.examples.fowlerdsl.edit"
+ editorPluginID="org.eclipse.emf.parsley.examples.fowlerdsl.editor">
+ <genPackages prefix="Statemachine" basePackage="org.eclipse.emf.parsley.examples.fowlerdsl"
+ disposableProviderFactory="true" ecorePackage="Statemachine.ecore#/">
+ <genClasses ecoreClass="Statemachine.ecore#//Statemachine">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Statemachine.ecore#//Statemachine/events"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Statemachine.ecore#//Statemachine/resetEvents"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Statemachine.ecore#//Statemachine/commands"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Statemachine.ecore#//Statemachine/states"/>
+ </genClasses>
+ <genClasses ecoreClass="Statemachine.ecore#//Event">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Statemachine.ecore#//Event/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Statemachine.ecore#//Event/code"/>
+ </genClasses>
+ <genClasses ecoreClass="Statemachine.ecore#//Command">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Statemachine.ecore#//Command/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Statemachine.ecore#//Command/code"/>
+ </genClasses>
+ <genClasses ecoreClass="Statemachine.ecore#//State">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Statemachine.ecore#//State/name"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Statemachine.ecore#//State/actions"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Statemachine.ecore#//State/transitions"/>
+ </genClasses>
+ <genClasses ecoreClass="Statemachine.ecore#//Transition">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Statemachine.ecore#//Transition/event"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Statemachine.ecore#//Transition/state"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.xmi b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.xmi
new file mode 100644
index 000000000..b06105c0e
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.xmi
@@ -0,0 +1,280 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:xtext="http://www.eclipse.org/2008/Xtext">
+ <xtext:Grammar name="org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine" usedGrammars="/1">
+ <metamodelDeclarations xsi:type="xtext:GeneratedMetamodel" name="statemachine">
+ <ePackage href="http://www.eclipse.org/emf/parsley/examples/fowlerdsl/Statemachine#/"/>
+ </metamodelDeclarations>
+ <rules xsi:type="xtext:ParserRule" name="Statemachine">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/parsley/examples/fowlerdsl/Statemachine#//Statemachine"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Action">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/parsley/examples/fowlerdsl/Statemachine#//Statemachine"/>
+ </type>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value="events"/>
+ <elements xsi:type="xtext:Assignment" cardinality="+" feature="events" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="end"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value="resetEvents"/>
+ <elements xsi:type="xtext:Assignment" cardinality="+" feature="resetEvents" operator="+=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/parsley/examples/fowlerdsl/Statemachine#//Event"/>
+ </type>
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="end"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value="commands"/>
+ <elements xsi:type="xtext:Assignment" cardinality="+" feature="commands" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="end"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="states" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Event">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/parsley/examples/fowlerdsl/Statemachine#//Event"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="code" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Command">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/parsley/examples/fowlerdsl/Statemachine#//Command"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" feature="code" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="State">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/parsley/examples/fowlerdsl/Statemachine#//State"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="state"/>
+ <elements xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" value="actions"/>
+ <elements xsi:type="xtext:Keyword" value="{"/>
+ <elements xsi:type="xtext:Assignment" cardinality="+" feature="actions" operator="+=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/parsley/examples/fowlerdsl/Statemachine#//Command"/>
+ </type>
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="}"/>
+ </elements>
+ <elements xsi:type="xtext:Assignment" cardinality="*" feature="transitions" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="end"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Transition">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/parsley/examples/fowlerdsl/Statemachine#//Transition"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Assignment" feature="event" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/parsley/examples/fowlerdsl/Statemachine#//Event"/>
+ </type>
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="=>"/>
+ <elements xsi:type="xtext:Assignment" feature="state" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="/0/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/parsley/examples/fowlerdsl/Statemachine#//State"/>
+ </type>
+ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>
+ </terminal>
+ </elements>
+ </alternatives>
+ </rules>
+ </xtext:Grammar>
+ <xtext:Grammar name="org.eclipse.xtext.common.Terminals" definesHiddenTokens="true" hiddenTokens="/1/@rules.5 /1/@rules.3 /1/@rules.4">
+ <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">
+ <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>
+ </metamodelDeclarations>
+ <rules xsi:type="xtext:TerminalRule" name="ID">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" cardinality="?" value="^"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="a"/>
+ <right value="z"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="A"/>
+ <right value="Z"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="_"/>
+ </elements>
+ <elements xsi:type="xtext:Alternatives" cardinality="*">
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="a"/>
+ <right value="z"/>
+ </elements>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="A"/>
+ <right value="Z"/>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="_"/>
+ <elements xsi:type="xtext:CharacterRange">
+ <left value="0"/>
+ <right value="9"/>
+ </elements>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="INT">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </type>
+ <alternatives xsi:type="xtext:CharacterRange" cardinality="+">
+ <left value="0"/>
+ <right value="9"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="STRING">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ <elements xsi:type="xtext:Alternatives" cardinality="*">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="b"/>
+ <elements xsi:type="xtext:Keyword" value="t"/>
+ <elements xsi:type="xtext:Keyword" value="n"/>
+ <elements xsi:type="xtext:Keyword" value="f"/>
+ <elements xsi:type="xtext:Keyword" value="r"/>
+ <elements xsi:type="xtext:Keyword" value="u"/>
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:NegatedToken">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ </terminal>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ </elements>
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ <elements xsi:type="xtext:Alternatives" cardinality="*">
+ <elements xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="b"/>
+ <elements xsi:type="xtext:Keyword" value="t"/>
+ <elements xsi:type="xtext:Keyword" value="n"/>
+ <elements xsi:type="xtext:Keyword" value="f"/>
+ <elements xsi:type="xtext:Keyword" value="r"/>
+ <elements xsi:type="xtext:Keyword" value="u"/>
+ <elements xsi:type="xtext:Keyword" value="&quot;"/>
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:NegatedToken">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="\"/>
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ </terminal>
+ </elements>
+ </elements>
+ <elements xsi:type="xtext:Keyword" value="'"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="ML_COMMENT">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="/*"/>
+ <elements xsi:type="xtext:UntilToken">
+ <terminal xsi:type="xtext:Keyword" value="*/"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="SL_COMMENT">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <elements xsi:type="xtext:Keyword" value="//"/>
+ <elements xsi:type="xtext:NegatedToken" cardinality="*">
+ <terminal xsi:type="xtext:Alternatives">
+ <elements xsi:type="xtext:Keyword" value="&#xA;"/>
+ <elements xsi:type="xtext:Keyword" value="&#xD;"/>
+ </terminal>
+ </elements>
+ <elements xsi:type="xtext:Group" cardinality="?">
+ <elements xsi:type="xtext:Keyword" cardinality="?" value="&#xD;"/>
+ <elements xsi:type="xtext:Keyword" value="&#xA;"/>
+ </elements>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="WS">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives" cardinality="+">
+ <elements xsi:type="xtext:Keyword" value=" "/>
+ <elements xsi:type="xtext:Keyword" value="&#x9;"/>
+ <elements xsi:type="xtext:Keyword" value="&#xD;"/>
+ <elements xsi:type="xtext:Keyword" value="&#xA;"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:TerminalRule" name="ANY_OTHER">
+ <type metamodel="/1/@metamodelDeclarations.0">
+ <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ <alternatives xsi:type="xtext:Wildcard"/>
+ </rules>
+ </xtext:Grammar>
+</xmi:XMI>
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/StatemachineStandaloneSetupGenerated.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/StatemachineStandaloneSetupGenerated.java
new file mode 100644
index 000000000..128766fe4
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/StatemachineStandaloneSetupGenerated.java
@@ -0,0 +1,43 @@
+
+package org.eclipse.emf.parsley.examples.fowlerdsl;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.ISetup;
+import org.eclipse.emf.ecore.resource.Resource;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+/**
+ * Generated from StandaloneSetup.xpt!
+ */
+@SuppressWarnings("all")
+public class StatemachineStandaloneSetupGenerated implements ISetup {
+
+ public Injector createInjectorAndDoEMFRegistration() {
+ org.eclipse.xtext.common.TerminalsStandaloneSetup.doSetup();
+
+ Injector injector = createInjector();
+ register(injector);
+ return injector;
+ }
+
+ public Injector createInjector() {
+ return Guice.createInjector(new org.eclipse.emf.parsley.examples.fowlerdsl.StatemachineRuntimeModule());
+ }
+
+ public void register(Injector injector) {
+ if (!EPackage.Registry.INSTANCE.containsKey("http://www.eclipse.org/emf/parsley/examples/fowlerdsl/Statemachine")) {
+ EPackage.Registry.INSTANCE.put("http://www.eclipse.org/emf/parsley/examples/fowlerdsl/Statemachine", org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage.eINSTANCE);
+ }
+
+ org.eclipse.xtext.resource.IResourceFactory resourceFactory = injector.getInstance(org.eclipse.xtext.resource.IResourceFactory.class);
+ org.eclipse.xtext.resource.IResourceServiceProvider serviceProvider = injector.getInstance(org.eclipse.xtext.resource.IResourceServiceProvider.class);
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("statemachine", resourceFactory);
+ org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("statemachine", serviceProvider);
+
+
+
+
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/StatemachineAntlrTokenFileProvider.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/StatemachineAntlrTokenFileProvider.java
new file mode 100644
index 000000000..c8d6a7d5d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/StatemachineAntlrTokenFileProvider.java
@@ -0,0 +1,15 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.examples.fowlerdsl.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class StatemachineAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+
+ public InputStream getAntlrTokenFile() {
+ ClassLoader classLoader = getClass().getClassLoader();
+ return classLoader.getResourceAsStream("org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.tokens");
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/StatemachineParser.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/StatemachineParser.java
new file mode 100644
index 000000000..a843017b8
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/StatemachineParser.java
@@ -0,0 +1,39 @@
+/*
+* generated by Xtext
+*/
+package org.eclipse.emf.parsley.examples.fowlerdsl.parser.antlr;
+
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.emf.parsley.examples.fowlerdsl.services.StatemachineGrammarAccess;
+
+public class StatemachineParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+
+ @Inject
+ private StatemachineGrammarAccess grammarAccess;
+
+ @Override
+ protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+ tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+ }
+
+ @Override
+ protected org.eclipse.emf.parsley.examples.fowlerdsl.parser.antlr.internal.InternalStatemachineParser createParser(XtextTokenStream stream) {
+ return new org.eclipse.emf.parsley.examples.fowlerdsl.parser.antlr.internal.InternalStatemachineParser(stream, getGrammarAccess());
+ }
+
+ @Override
+ protected String getDefaultRuleName() {
+ return "Statemachine";
+ }
+
+ public StatemachineGrammarAccess getGrammarAccess() {
+ return this.grammarAccess;
+ }
+
+ public void setGrammarAccess(StatemachineGrammarAccess grammarAccess) {
+ this.grammarAccess = grammarAccess;
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g
new file mode 100644
index 000000000..963335ea6
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g
@@ -0,0 +1,453 @@
+/*
+* generated by Xtext
+*/
+grammar InternalStatemachine;
+
+options {
+ superClass=AbstractInternalAntlrParser;
+
+}
+
+@lexer::header {
+package org.eclipse.emf.parsley.examples.fowlerdsl.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+}
+
+@parser::header {
+package org.eclipse.emf.parsley.examples.fowlerdsl.parser.antlr.internal;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.emf.parsley.examples.fowlerdsl.services.StatemachineGrammarAccess;
+
+}
+
+@parser::members {
+
+ private StatemachineGrammarAccess grammarAccess;
+
+ public InternalStatemachineParser(TokenStream input, StatemachineGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Statemachine";
+ }
+
+ @Override
+ protected StatemachineGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+}
+
+@rulecatch {
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+}
+
+
+
+
+// Entry rule entryRuleStatemachine
+entryRuleStatemachine returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getStatemachineRule()); }
+ iv_ruleStatemachine=ruleStatemachine
+ { $current=$iv_ruleStatemachine.current; }
+ EOF
+;
+
+// Rule Statemachine
+ruleStatemachine returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+ {
+ $current = forceCreateModelElement(
+ grammarAccess.getStatemachineAccess().getStatemachineAction_0(),
+ $current);
+ }
+)( otherlv_1='events'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getStatemachineAccess().getEventsKeyword_1_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_1_1_0());
+ }
+ lv_events_2_0=ruleEvent {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getStatemachineRule());
+ }
+ add(
+ $current,
+ "events",
+ lv_events_2_0,
+ "Event");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)+ otherlv_3='end'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getStatemachineAccess().getEndKeyword_1_2());
+ }
+)?( otherlv_4='resetEvents'
+ {
+ newLeafNode(otherlv_4, grammarAccess.getStatemachineAccess().getResetEventsKeyword_2_0());
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getStatemachineRule());
+ }
+ }
+ otherlv_5=RULE_ID
+ {
+ newLeafNode(otherlv_5, grammarAccess.getStatemachineAccess().getResetEventsEventCrossReference_2_1_0());
+ }
+
+)
+)+ otherlv_6='end'
+ {
+ newLeafNode(otherlv_6, grammarAccess.getStatemachineAccess().getEndKeyword_2_2());
+ }
+)?( otherlv_7='commands'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getStatemachineAccess().getCommandsKeyword_3_0());
+ }
+(
+(
+ {
+ newCompositeNode(grammarAccess.getStatemachineAccess().getCommandsCommandParserRuleCall_3_1_0());
+ }
+ lv_commands_8_0=ruleCommand {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getStatemachineRule());
+ }
+ add(
+ $current,
+ "commands",
+ lv_commands_8_0,
+ "Command");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)+ otherlv_9='end'
+ {
+ newLeafNode(otherlv_9, grammarAccess.getStatemachineAccess().getEndKeyword_3_2());
+ }
+)?(
+(
+ {
+ newCompositeNode(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_4_0());
+ }
+ lv_states_10_0=ruleState {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getStatemachineRule());
+ }
+ add(
+ $current,
+ "states",
+ lv_states_10_0,
+ "State");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)*)
+;
+
+
+
+
+
+// Entry rule entryRuleEvent
+entryRuleEvent returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getEventRule()); }
+ iv_ruleEvent=ruleEvent
+ { $current=$iv_ruleEvent.current; }
+ EOF
+;
+
+// Rule Event
+ruleEvent returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ lv_name_0_0=RULE_ID
+ {
+ newLeafNode(lv_name_0_0, grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getEventRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_0_0,
+ "ID");
+ }
+
+)
+)(
+(
+ lv_code_1_0=RULE_ID
+ {
+ newLeafNode(lv_code_1_0, grammarAccess.getEventAccess().getCodeIDTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getEventRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "code",
+ lv_code_1_0,
+ "ID");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleCommand
+entryRuleCommand returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getCommandRule()); }
+ iv_ruleCommand=ruleCommand
+ { $current=$iv_ruleCommand.current; }
+ EOF
+;
+
+// Rule Command
+ruleCommand returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ lv_name_0_0=RULE_ID
+ {
+ newLeafNode(lv_name_0_0, grammarAccess.getCommandAccess().getNameIDTerminalRuleCall_0_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCommandRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_0_0,
+ "ID");
+ }
+
+)
+)(
+(
+ lv_code_1_0=RULE_ID
+ {
+ newLeafNode(lv_code_1_0, grammarAccess.getCommandAccess().getCodeIDTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getCommandRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "code",
+ lv_code_1_0,
+ "ID");
+ }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleState
+entryRuleState returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getStateRule()); }
+ iv_ruleState=ruleState
+ { $current=$iv_ruleState.current; }
+ EOF
+;
+
+// Rule State
+ruleState returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+( otherlv_0='state'
+ {
+ newLeafNode(otherlv_0, grammarAccess.getStateAccess().getStateKeyword_0());
+ }
+(
+(
+ lv_name_1_0=RULE_ID
+ {
+ newLeafNode(lv_name_1_0, grammarAccess.getStateAccess().getNameIDTerminalRuleCall_1_0());
+ }
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getStateRule());
+ }
+ setWithLastConsumed(
+ $current,
+ "name",
+ lv_name_1_0,
+ "ID");
+ }
+
+)
+)( otherlv_2='actions'
+ {
+ newLeafNode(otherlv_2, grammarAccess.getStateAccess().getActionsKeyword_2_0());
+ }
+ otherlv_3='{'
+ {
+ newLeafNode(otherlv_3, grammarAccess.getStateAccess().getLeftCurlyBracketKeyword_2_1());
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getStateRule());
+ }
+ }
+ otherlv_4=RULE_ID
+ {
+ newLeafNode(otherlv_4, grammarAccess.getStateAccess().getActionsCommandCrossReference_2_2_0());
+ }
+
+)
+)+ otherlv_5='}'
+ {
+ newLeafNode(otherlv_5, grammarAccess.getStateAccess().getRightCurlyBracketKeyword_2_3());
+ }
+)?(
+(
+ {
+ newCompositeNode(grammarAccess.getStateAccess().getTransitionsTransitionParserRuleCall_3_0());
+ }
+ lv_transitions_6_0=ruleTransition {
+ if ($current==null) {
+ $current = createModelElementForParent(grammarAccess.getStateRule());
+ }
+ add(
+ $current,
+ "transitions",
+ lv_transitions_6_0,
+ "Transition");
+ afterParserOrEnumRuleCall();
+ }
+
+)
+)* otherlv_7='end'
+ {
+ newLeafNode(otherlv_7, grammarAccess.getStateAccess().getEndKeyword_4());
+ }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleTransition
+entryRuleTransition returns [EObject current=null]
+ :
+ { newCompositeNode(grammarAccess.getTransitionRule()); }
+ iv_ruleTransition=ruleTransition
+ { $current=$iv_ruleTransition.current; }
+ EOF
+;
+
+// Rule Transition
+ruleTransition returns [EObject current=null]
+ @init { enterRule();
+ }
+ @after { leaveRule(); }:
+((
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getTransitionRule());
+ }
+ }
+ otherlv_0=RULE_ID
+ {
+ newLeafNode(otherlv_0, grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0());
+ }
+
+)
+) otherlv_1='=>'
+ {
+ newLeafNode(otherlv_1, grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1());
+ }
+(
+(
+ {
+ if ($current==null) {
+ $current = createModelElement(grammarAccess.getTransitionRule());
+ }
+ }
+ otherlv_2=RULE_ID
+ {
+ newLeafNode(otherlv_2, grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0());
+ }
+
+)
+))
+;
+
+
+
+
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : ('"' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'"')))* '"'|'\'' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'\'')))* '\'');
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.tokens b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.tokens
new file mode 100644
index 000000000..c40aca9b6
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.tokens
@@ -0,0 +1,25 @@
+RULE_ID=4
+RULE_ANY_OTHER=10
+RULE_SL_COMMENT=8
+RULE_ML_COMMENT=7
+T__19=19
+RULE_STRING=6
+T__16=16
+T__15=15
+T__18=18
+T__17=17
+T__12=12
+T__11=11
+T__14=14
+T__13=13
+RULE_INT=5
+RULE_WS=9
+'state'=15
+'end'=12
+'}'=18
+'actions'=16
+'commands'=14
+'=>'=19
+'events'=11
+'{'=17
+'resetEvents'=13
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachineLexer.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachineLexer.java
new file mode 100644
index 000000000..bc2bf1265
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachineLexer.java
@@ -0,0 +1,1072 @@
+package org.eclipse.emf.parsley.examples.fowlerdsl.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalStatemachineLexer extends Lexer {
+ public static final int RULE_ID=4;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int EOF=-1;
+ public static final int RULE_ML_COMMENT=7;
+ public static final int T__19=19;
+ public static final int RULE_STRING=6;
+ public static final int T__16=16;
+ public static final int T__15=15;
+ public static final int T__18=18;
+ public static final int T__17=17;
+ public static final int T__12=12;
+ public static final int T__11=11;
+ public static final int T__14=14;
+ public static final int T__13=13;
+ public static final int RULE_INT=5;
+ public static final int RULE_WS=9;
+
+ // delegates
+ // delegators
+
+ public InternalStatemachineLexer() {;}
+ public InternalStatemachineLexer(CharStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalStatemachineLexer(CharStream input, RecognizerSharedState state) {
+ super(input,state);
+
+ }
+ public String getGrammarFileName() { return "../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g"; }
+
+ // $ANTLR start "T__11"
+ public final void mT__11() throws RecognitionException {
+ try {
+ int _type = T__11;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:11:7: ( 'events' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:11:9: 'events'
+ {
+ match("events");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__11"
+
+ // $ANTLR start "T__12"
+ public final void mT__12() throws RecognitionException {
+ try {
+ int _type = T__12;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:12:7: ( 'end' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:12:9: 'end'
+ {
+ match("end");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__12"
+
+ // $ANTLR start "T__13"
+ public final void mT__13() throws RecognitionException {
+ try {
+ int _type = T__13;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:13:7: ( 'resetEvents' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:13:9: 'resetEvents'
+ {
+ match("resetEvents");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__13"
+
+ // $ANTLR start "T__14"
+ public final void mT__14() throws RecognitionException {
+ try {
+ int _type = T__14;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:14:7: ( 'commands' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:14:9: 'commands'
+ {
+ match("commands");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__14"
+
+ // $ANTLR start "T__15"
+ public final void mT__15() throws RecognitionException {
+ try {
+ int _type = T__15;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:15:7: ( 'state' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:15:9: 'state'
+ {
+ match("state");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__15"
+
+ // $ANTLR start "T__16"
+ public final void mT__16() throws RecognitionException {
+ try {
+ int _type = T__16;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:16:7: ( 'actions' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:16:9: 'actions'
+ {
+ match("actions");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__16"
+
+ // $ANTLR start "T__17"
+ public final void mT__17() throws RecognitionException {
+ try {
+ int _type = T__17;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:17:7: ( '{' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:17:9: '{'
+ {
+ match('{');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__17"
+
+ // $ANTLR start "T__18"
+ public final void mT__18() throws RecognitionException {
+ try {
+ int _type = T__18;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:18:7: ( '}' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:18:9: '}'
+ {
+ match('}');
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__18"
+
+ // $ANTLR start "T__19"
+ public final void mT__19() throws RecognitionException {
+ try {
+ int _type = T__19;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:19:7: ( '=>' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:19:9: '=>'
+ {
+ match("=>");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "T__19"
+
+ // $ANTLR start "RULE_ID"
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:439:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:439:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:439:11: ( '^' )?
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0=='^') ) {
+ alt1=1;
+ }
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:439:11: '^'
+ {
+ match('^');
+
+ }
+ break;
+
+ }
+
+ if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:439:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='z')) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ID"
+
+ // $ANTLR start "RULE_INT"
+ public final void mRULE_INT() throws RecognitionException {
+ try {
+ int _type = RULE_INT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:441:10: ( ( '0' .. '9' )+ )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:441:12: ( '0' .. '9' )+
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:441:12: ( '0' .. '9' )+
+ int cnt3=0;
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( ((LA3_0>='0' && LA3_0<='9')) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:441:13: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+ break;
+
+ default :
+ if ( cnt3 >= 1 ) break loop3;
+ EarlyExitException eee =
+ new EarlyExitException(3, input);
+ throw eee;
+ }
+ cnt3++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_INT"
+
+ // $ANTLR start "RULE_STRING"
+ public final void mRULE_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_STRING;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:443:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:443:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:443:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0=='\"') ) {
+ alt6=1;
+ }
+ else if ( (LA6_0=='\'') ) {
+ alt6=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:443:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+ {
+ match('\"');
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:443:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
+ loop4:
+ do {
+ int alt4=3;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0=='\\') ) {
+ alt4=1;
+ }
+ else if ( ((LA4_0>='\u0000' && LA4_0<='!')||(LA4_0>='#' && LA4_0<='[')||(LA4_0>=']' && LA4_0<='\uFFFF')) ) {
+ alt4=2;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:443:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:443:66: ~ ( ( '\\\\' | '\"' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop4;
+ }
+ } while (true);
+
+ match('\"');
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:443:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+ {
+ match('\'');
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:443:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
+ loop5:
+ do {
+ int alt5=3;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0=='\\') ) {
+ alt5=1;
+ }
+ else if ( ((LA5_0>='\u0000' && LA5_0<='&')||(LA5_0>='(' && LA5_0<='[')||(LA5_0>=']' && LA5_0<='\uFFFF')) ) {
+ alt5=2;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:443:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+ {
+ match('\\');
+ if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:443:137: ~ ( ( '\\\\' | '\\'' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop5;
+ }
+ } while (true);
+
+ match('\'');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_STRING"
+
+ // $ANTLR start "RULE_ML_COMMENT"
+ public final void mRULE_ML_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_ML_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:445:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:445:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:445:24: ( options {greedy=false; } : . )*
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0=='*') ) {
+ int LA7_1 = input.LA(2);
+
+ if ( (LA7_1=='/') ) {
+ alt7=2;
+ }
+ else if ( ((LA7_1>='\u0000' && LA7_1<='.')||(LA7_1>='0' && LA7_1<='\uFFFF')) ) {
+ alt7=1;
+ }
+
+
+ }
+ else if ( ((LA7_0>='\u0000' && LA7_0<=')')||(LA7_0>='+' && LA7_0<='\uFFFF')) ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:445:52: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop7;
+ }
+ } while (true);
+
+ match("*/");
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ML_COMMENT"
+
+ // $ANTLR start "RULE_SL_COMMENT"
+ public final void mRULE_SL_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_SL_COMMENT;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:447:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:447:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:447:24: (~ ( ( '\\n' | '\\r' ) ) )*
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( ((LA8_0>='\u0000' && LA8_0<='\t')||(LA8_0>='\u000B' && LA8_0<='\f')||(LA8_0>='\u000E' && LA8_0<='\uFFFF')) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:447:24: ~ ( ( '\\n' | '\\r' ) )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ break loop8;
+ }
+ } while (true);
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:447:40: ( ( '\\r' )? '\\n' )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0=='\n'||LA10_0=='\r') ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:447:41: ( '\\r' )? '\\n'
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:447:41: ( '\\r' )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0=='\r') ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:447:41: '\\r'
+ {
+ match('\r');
+
+ }
+ break;
+
+ }
+
+ match('\n');
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_SL_COMMENT"
+
+ // $ANTLR start "RULE_WS"
+ public final void mRULE_WS() throws RecognitionException {
+ try {
+ int _type = RULE_WS;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:449:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:449:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:449:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ int cnt11=0;
+ loop11:
+ do {
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0=='\r'||LA11_0==' ') ) {
+ alt11=1;
+ }
+
+
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:
+ {
+ if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse = new MismatchedSetException(null,input);
+ recover(mse);
+ throw mse;}
+
+
+ }
+ break;
+
+ default :
+ if ( cnt11 >= 1 ) break loop11;
+ EarlyExitException eee =
+ new EarlyExitException(11, input);
+ throw eee;
+ }
+ cnt11++;
+ } while (true);
+
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_WS"
+
+ // $ANTLR start "RULE_ANY_OTHER"
+ public final void mRULE_ANY_OTHER() throws RecognitionException {
+ try {
+ int _type = RULE_ANY_OTHER;
+ int _channel = DEFAULT_TOKEN_CHANNEL;
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:451:16: ( . )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:451:18: .
+ {
+ matchAny();
+
+ }
+
+ state.type = _type;
+ state.channel = _channel;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end "RULE_ANY_OTHER"
+
+ public void mTokens() throws RecognitionException {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+ int alt12=16;
+ alt12 = dfa12.predict(input);
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:1:10: T__11
+ {
+ mT__11();
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:1:16: T__12
+ {
+ mT__12();
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:1:22: T__13
+ {
+ mT__13();
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:1:28: T__14
+ {
+ mT__14();
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:1:34: T__15
+ {
+ mT__15();
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:1:40: T__16
+ {
+ mT__16();
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:1:46: T__17
+ {
+ mT__17();
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:1:52: T__18
+ {
+ mT__18();
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:1:58: T__19
+ {
+ mT__19();
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:1:64: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:1:72: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 12 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:1:81: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 13 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:1:93: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 14 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:1:109: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 15 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:1:125: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 16 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:1:133: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+ protected DFA12 dfa12 = new DFA12(this);
+ static final String DFA12_eotS =
+ "\1\uffff\5\23\2\uffff\2\20\2\uffff\3\20\2\uffff\2\23\1\uffff\4\23"+
+ "\10\uffff\1\23\1\47\5\23\1\uffff\7\23\1\64\1\23\1\66\2\23\1\uffff"+
+ "\1\23\1\uffff\2\23\1\74\1\23\1\76\1\uffff\1\23\1\uffff\1\23\1\101"+
+ "\1\uffff";
+ static final String DFA12_eofS =
+ "\102\uffff";
+ static final String DFA12_minS =
+ "\1\0\1\156\1\145\1\157\1\164\1\143\2\uffff\1\76\1\101\2\uffff\2"+
+ "\0\1\52\2\uffff\1\145\1\144\1\uffff\1\163\1\155\1\141\1\164\10\uffff"+
+ "\1\156\1\60\1\145\1\155\1\164\1\151\1\164\1\uffff\1\164\1\141\1"+
+ "\145\1\157\1\163\1\105\1\156\1\60\1\156\1\60\1\166\1\144\1\uffff"+
+ "\1\163\1\uffff\1\145\1\163\1\60\1\156\1\60\1\uffff\1\164\1\uffff"+
+ "\1\163\1\60\1\uffff";
+ static final String DFA12_maxS =
+ "\1\uffff\1\166\1\145\1\157\1\164\1\143\2\uffff\1\76\1\172\2\uffff"+
+ "\2\uffff\1\57\2\uffff\1\145\1\144\1\uffff\1\163\1\155\1\141\1\164"+
+ "\10\uffff\1\156\1\172\1\145\1\155\1\164\1\151\1\164\1\uffff\1\164"+
+ "\1\141\1\145\1\157\1\163\1\105\1\156\1\172\1\156\1\172\1\166\1\144"+
+ "\1\uffff\1\163\1\uffff\1\145\1\163\1\172\1\156\1\172\1\uffff\1\164"+
+ "\1\uffff\1\163\1\172\1\uffff";
+ static final String DFA12_acceptS =
+ "\6\uffff\1\7\1\10\2\uffff\1\12\1\13\3\uffff\1\17\1\20\2\uffff\1"+
+ "\12\4\uffff\1\7\1\10\1\11\1\13\1\14\1\15\1\16\1\17\7\uffff\1\2\14"+
+ "\uffff\1\5\1\uffff\1\1\5\uffff\1\6\1\uffff\1\4\2\uffff\1\3";
+ static final String DFA12_specialS =
+ "\1\1\13\uffff\1\2\1\0\64\uffff}>";
+ static final String[] DFA12_transitionS = {
+ "\11\20\2\17\2\20\1\17\22\20\1\17\1\20\1\14\4\20\1\15\7\20\1"+
+ "\16\12\13\3\20\1\10\3\20\32\12\3\20\1\11\1\12\1\20\1\5\1\12"+
+ "\1\3\1\12\1\1\14\12\1\2\1\4\7\12\1\6\1\20\1\7\uff82\20",
+ "\1\22\7\uffff\1\21",
+ "\1\24",
+ "\1\25",
+ "\1\26",
+ "\1\27",
+ "",
+ "",
+ "\1\32",
+ "\32\23\4\uffff\1\23\1\uffff\32\23",
+ "",
+ "",
+ "\0\34",
+ "\0\34",
+ "\1\35\4\uffff\1\36",
+ "",
+ "",
+ "\1\40",
+ "\1\41",
+ "",
+ "\1\42",
+ "\1\43",
+ "\1\44",
+ "\1\45",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "\1\46",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "\1\50",
+ "\1\51",
+ "\1\52",
+ "\1\53",
+ "\1\54",
+ "",
+ "\1\55",
+ "\1\56",
+ "\1\57",
+ "\1\60",
+ "\1\61",
+ "\1\62",
+ "\1\63",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "\1\65",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "\1\67",
+ "\1\70",
+ "",
+ "\1\71",
+ "",
+ "\1\72",
+ "\1\73",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "\1\75",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ "",
+ "\1\77",
+ "",
+ "\1\100",
+ "\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
+ ""
+ };
+
+ static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
+ static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
+ static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
+ static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
+ static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
+ static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
+ static final short[][] DFA12_transition;
+
+ static {
+ int numStates = DFA12_transitionS.length;
+ DFA12_transition = new short[numStates][];
+ for (int i=0; i<numStates; i++) {
+ DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
+ }
+ }
+
+ class DFA12 extends DFA {
+
+ public DFA12(BaseRecognizer recognizer) {
+ this.recognizer = recognizer;
+ this.decisionNumber = 12;
+ this.eot = DFA12_eot;
+ this.eof = DFA12_eof;
+ this.min = DFA12_min;
+ this.max = DFA12_max;
+ this.accept = DFA12_accept;
+ this.special = DFA12_special;
+ this.transition = DFA12_transition;
+ }
+ public String getDescription() {
+ return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+ }
+ public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+ IntStream input = _input;
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA12_13 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_13>='\u0000' && LA12_13<='\uFFFF')) ) {s = 28;}
+
+ else s = 16;
+
+ if ( s>=0 ) return s;
+ break;
+ case 1 :
+ int LA12_0 = input.LA(1);
+
+ s = -1;
+ if ( (LA12_0=='e') ) {s = 1;}
+
+ else if ( (LA12_0=='r') ) {s = 2;}
+
+ else if ( (LA12_0=='c') ) {s = 3;}
+
+ else if ( (LA12_0=='s') ) {s = 4;}
+
+ else if ( (LA12_0=='a') ) {s = 5;}
+
+ else if ( (LA12_0=='{') ) {s = 6;}
+
+ else if ( (LA12_0=='}') ) {s = 7;}
+
+ else if ( (LA12_0=='=') ) {s = 8;}
+
+ else if ( (LA12_0=='^') ) {s = 9;}
+
+ else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||LA12_0=='b'||LA12_0=='d'||(LA12_0>='f' && LA12_0<='q')||(LA12_0>='t' && LA12_0<='z')) ) {s = 10;}
+
+ else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 11;}
+
+ else if ( (LA12_0=='\"') ) {s = 12;}
+
+ else if ( (LA12_0=='\'') ) {s = 13;}
+
+ else if ( (LA12_0=='/') ) {s = 14;}
+
+ else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 15;}
+
+ else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='(' && LA12_0<='.')||(LA12_0>=':' && LA12_0<='<')||(LA12_0>='>' && LA12_0<='@')||(LA12_0>='[' && LA12_0<=']')||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 16;}
+
+ if ( s>=0 ) return s;
+ break;
+ case 2 :
+ int LA12_12 = input.LA(1);
+
+ s = -1;
+ if ( ((LA12_12>='\u0000' && LA12_12<='\uFFFF')) ) {s = 28;}
+
+ else s = 16;
+
+ if ( s>=0 ) return s;
+ break;
+ }
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 12, _s, input);
+ error(nvae);
+ throw nvae;
+ }
+ }
+
+
+} \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachineParser.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachineParser.java
new file mode 100644
index 000000000..cf82aa87e
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachineParser.java
@@ -0,0 +1,1099 @@
+package org.eclipse.emf.parsley.examples.fowlerdsl.parser.antlr.internal;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.emf.parsley.examples.fowlerdsl.services.StatemachineGrammarAccess;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalStatemachineParser extends AbstractInternalAntlrParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'events'", "'end'", "'resetEvents'", "'commands'", "'state'", "'actions'", "'{'", "'}'", "'=>'"
+ };
+ public static final int RULE_ID=4;
+ public static final int RULE_ANY_OTHER=10;
+ public static final int EOF=-1;
+ public static final int RULE_SL_COMMENT=8;
+ public static final int RULE_ML_COMMENT=7;
+ public static final int T__19=19;
+ public static final int RULE_STRING=6;
+ public static final int T__16=16;
+ public static final int T__15=15;
+ public static final int T__18=18;
+ public static final int T__17=17;
+ public static final int T__12=12;
+ public static final int T__11=11;
+ public static final int T__14=14;
+ public static final int T__13=13;
+ public static final int RULE_INT=5;
+ public static final int RULE_WS=9;
+
+ // delegates
+ // delegators
+
+
+ public InternalStatemachineParser(TokenStream input) {
+ this(input, new RecognizerSharedState());
+ }
+ public InternalStatemachineParser(TokenStream input, RecognizerSharedState state) {
+ super(input, state);
+
+ }
+
+
+ public String[] getTokenNames() { return InternalStatemachineParser.tokenNames; }
+ public String getGrammarFileName() { return "../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g"; }
+
+
+
+ private StatemachineGrammarAccess grammarAccess;
+
+ public InternalStatemachineParser(TokenStream input, StatemachineGrammarAccess grammarAccess) {
+ this(input);
+ this.grammarAccess = grammarAccess;
+ registerRules(grammarAccess.getGrammar());
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "Statemachine";
+ }
+
+ @Override
+ protected StatemachineGrammarAccess getGrammarAccess() {
+ return grammarAccess;
+ }
+
+
+
+ // $ANTLR start "entryRuleStatemachine"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:67:1: entryRuleStatemachine returns [EObject current=null] : iv_ruleStatemachine= ruleStatemachine EOF ;
+ public final EObject entryRuleStatemachine() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleStatemachine = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:68:2: (iv_ruleStatemachine= ruleStatemachine EOF )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:69:2: iv_ruleStatemachine= ruleStatemachine EOF
+ {
+ newCompositeNode(grammarAccess.getStatemachineRule());
+ pushFollow(FOLLOW_ruleStatemachine_in_entryRuleStatemachine75);
+ iv_ruleStatemachine=ruleStatemachine();
+
+ state._fsp--;
+
+ current =iv_ruleStatemachine;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleStatemachine85);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleStatemachine"
+
+
+ // $ANTLR start "ruleStatemachine"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:76:1: ruleStatemachine returns [EObject current=null] : ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? (otherlv_4= 'resetEvents' ( (otherlv_5= RULE_ID ) )+ otherlv_6= 'end' )? (otherlv_7= 'commands' ( (lv_commands_8_0= ruleCommand ) )+ otherlv_9= 'end' )? ( (lv_states_10_0= ruleState ) )* ) ;
+ public final EObject ruleStatemachine() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_1=null;
+ Token otherlv_3=null;
+ Token otherlv_4=null;
+ Token otherlv_5=null;
+ Token otherlv_6=null;
+ Token otherlv_7=null;
+ Token otherlv_9=null;
+ EObject lv_events_2_0 = null;
+
+ EObject lv_commands_8_0 = null;
+
+ EObject lv_states_10_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:79:28: ( ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? (otherlv_4= 'resetEvents' ( (otherlv_5= RULE_ID ) )+ otherlv_6= 'end' )? (otherlv_7= 'commands' ( (lv_commands_8_0= ruleCommand ) )+ otherlv_9= 'end' )? ( (lv_states_10_0= ruleState ) )* ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:80:1: ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? (otherlv_4= 'resetEvents' ( (otherlv_5= RULE_ID ) )+ otherlv_6= 'end' )? (otherlv_7= 'commands' ( (lv_commands_8_0= ruleCommand ) )+ otherlv_9= 'end' )? ( (lv_states_10_0= ruleState ) )* )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:80:1: ( () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? (otherlv_4= 'resetEvents' ( (otherlv_5= RULE_ID ) )+ otherlv_6= 'end' )? (otherlv_7= 'commands' ( (lv_commands_8_0= ruleCommand ) )+ otherlv_9= 'end' )? ( (lv_states_10_0= ruleState ) )* )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:80:2: () (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )? (otherlv_4= 'resetEvents' ( (otherlv_5= RULE_ID ) )+ otherlv_6= 'end' )? (otherlv_7= 'commands' ( (lv_commands_8_0= ruleCommand ) )+ otherlv_9= 'end' )? ( (lv_states_10_0= ruleState ) )*
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:80:2: ()
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:81:5:
+ {
+
+ current = forceCreateModelElement(
+ grammarAccess.getStatemachineAccess().getStatemachineAction_0(),
+ current);
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:86:2: (otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end' )?
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==11) ) {
+ alt2=1;
+ }
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:86:4: otherlv_1= 'events' ( (lv_events_2_0= ruleEvent ) )+ otherlv_3= 'end'
+ {
+ otherlv_1=(Token)match(input,11,FOLLOW_11_in_ruleStatemachine132);
+
+ newLeafNode(otherlv_1, grammarAccess.getStatemachineAccess().getEventsKeyword_1_0());
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:90:1: ( (lv_events_2_0= ruleEvent ) )+
+ int cnt1=0;
+ loop1:
+ do {
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==RULE_ID) ) {
+ alt1=1;
+ }
+
+
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:91:1: (lv_events_2_0= ruleEvent )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:91:1: (lv_events_2_0= ruleEvent )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:92:3: lv_events_2_0= ruleEvent
+ {
+
+ newCompositeNode(grammarAccess.getStatemachineAccess().getEventsEventParserRuleCall_1_1_0());
+
+ pushFollow(FOLLOW_ruleEvent_in_ruleStatemachine153);
+ lv_events_2_0=ruleEvent();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getStatemachineRule());
+ }
+ add(
+ current,
+ "events",
+ lv_events_2_0,
+ "Event");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt1 >= 1 ) break loop1;
+ EarlyExitException eee =
+ new EarlyExitException(1, input);
+ throw eee;
+ }
+ cnt1++;
+ } while (true);
+
+ otherlv_3=(Token)match(input,12,FOLLOW_12_in_ruleStatemachine166);
+
+ newLeafNode(otherlv_3, grammarAccess.getStatemachineAccess().getEndKeyword_1_2());
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:112:3: (otherlv_4= 'resetEvents' ( (otherlv_5= RULE_ID ) )+ otherlv_6= 'end' )?
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0==13) ) {
+ alt4=1;
+ }
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:112:5: otherlv_4= 'resetEvents' ( (otherlv_5= RULE_ID ) )+ otherlv_6= 'end'
+ {
+ otherlv_4=(Token)match(input,13,FOLLOW_13_in_ruleStatemachine181);
+
+ newLeafNode(otherlv_4, grammarAccess.getStatemachineAccess().getResetEventsKeyword_2_0());
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:116:1: ( (otherlv_5= RULE_ID ) )+
+ int cnt3=0;
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==RULE_ID) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:117:1: (otherlv_5= RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:117:1: (otherlv_5= RULE_ID )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:118:3: otherlv_5= RULE_ID
+ {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getStatemachineRule());
+ }
+
+ otherlv_5=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleStatemachine201);
+
+ newLeafNode(otherlv_5, grammarAccess.getStatemachineAccess().getResetEventsEventCrossReference_2_1_0());
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt3 >= 1 ) break loop3;
+ EarlyExitException eee =
+ new EarlyExitException(3, input);
+ throw eee;
+ }
+ cnt3++;
+ } while (true);
+
+ otherlv_6=(Token)match(input,12,FOLLOW_12_in_ruleStatemachine214);
+
+ newLeafNode(otherlv_6, grammarAccess.getStatemachineAccess().getEndKeyword_2_2());
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:133:3: (otherlv_7= 'commands' ( (lv_commands_8_0= ruleCommand ) )+ otherlv_9= 'end' )?
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==14) ) {
+ alt6=1;
+ }
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:133:5: otherlv_7= 'commands' ( (lv_commands_8_0= ruleCommand ) )+ otherlv_9= 'end'
+ {
+ otherlv_7=(Token)match(input,14,FOLLOW_14_in_ruleStatemachine229);
+
+ newLeafNode(otherlv_7, grammarAccess.getStatemachineAccess().getCommandsKeyword_3_0());
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:137:1: ( (lv_commands_8_0= ruleCommand ) )+
+ int cnt5=0;
+ loop5:
+ do {
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==RULE_ID) ) {
+ alt5=1;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:138:1: (lv_commands_8_0= ruleCommand )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:138:1: (lv_commands_8_0= ruleCommand )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:139:3: lv_commands_8_0= ruleCommand
+ {
+
+ newCompositeNode(grammarAccess.getStatemachineAccess().getCommandsCommandParserRuleCall_3_1_0());
+
+ pushFollow(FOLLOW_ruleCommand_in_ruleStatemachine250);
+ lv_commands_8_0=ruleCommand();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getStatemachineRule());
+ }
+ add(
+ current,
+ "commands",
+ lv_commands_8_0,
+ "Command");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt5 >= 1 ) break loop5;
+ EarlyExitException eee =
+ new EarlyExitException(5, input);
+ throw eee;
+ }
+ cnt5++;
+ } while (true);
+
+ otherlv_9=(Token)match(input,12,FOLLOW_12_in_ruleStatemachine263);
+
+ newLeafNode(otherlv_9, grammarAccess.getStatemachineAccess().getEndKeyword_3_2());
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:159:3: ( (lv_states_10_0= ruleState ) )*
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0==15) ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:160:1: (lv_states_10_0= ruleState )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:160:1: (lv_states_10_0= ruleState )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:161:3: lv_states_10_0= ruleState
+ {
+
+ newCompositeNode(grammarAccess.getStatemachineAccess().getStatesStateParserRuleCall_4_0());
+
+ pushFollow(FOLLOW_ruleState_in_ruleStatemachine286);
+ lv_states_10_0=ruleState();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getStatemachineRule());
+ }
+ add(
+ current,
+ "states",
+ lv_states_10_0,
+ "State");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop7;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleStatemachine"
+
+
+ // $ANTLR start "entryRuleEvent"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:185:1: entryRuleEvent returns [EObject current=null] : iv_ruleEvent= ruleEvent EOF ;
+ public final EObject entryRuleEvent() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleEvent = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:186:2: (iv_ruleEvent= ruleEvent EOF )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:187:2: iv_ruleEvent= ruleEvent EOF
+ {
+ newCompositeNode(grammarAccess.getEventRule());
+ pushFollow(FOLLOW_ruleEvent_in_entryRuleEvent323);
+ iv_ruleEvent=ruleEvent();
+
+ state._fsp--;
+
+ current =iv_ruleEvent;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleEvent333);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleEvent"
+
+
+ // $ANTLR start "ruleEvent"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:194:1: ruleEvent returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) ;
+ public final EObject ruleEvent() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_name_0_0=null;
+ Token lv_code_1_0=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:197:28: ( ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:198:1: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:198:1: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:198:2: ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:198:2: ( (lv_name_0_0= RULE_ID ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:199:1: (lv_name_0_0= RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:199:1: (lv_name_0_0= RULE_ID )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:200:3: lv_name_0_0= RULE_ID
+ {
+ lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleEvent375);
+
+ newLeafNode(lv_name_0_0, grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getEventRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_0_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:216:2: ( (lv_code_1_0= RULE_ID ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:217:1: (lv_code_1_0= RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:217:1: (lv_code_1_0= RULE_ID )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:218:3: lv_code_1_0= RULE_ID
+ {
+ lv_code_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleEvent397);
+
+ newLeafNode(lv_code_1_0, grammarAccess.getEventAccess().getCodeIDTerminalRuleCall_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getEventRule());
+ }
+ setWithLastConsumed(
+ current,
+ "code",
+ lv_code_1_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleEvent"
+
+
+ // $ANTLR start "entryRuleCommand"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:242:1: entryRuleCommand returns [EObject current=null] : iv_ruleCommand= ruleCommand EOF ;
+ public final EObject entryRuleCommand() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleCommand = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:243:2: (iv_ruleCommand= ruleCommand EOF )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:244:2: iv_ruleCommand= ruleCommand EOF
+ {
+ newCompositeNode(grammarAccess.getCommandRule());
+ pushFollow(FOLLOW_ruleCommand_in_entryRuleCommand438);
+ iv_ruleCommand=ruleCommand();
+
+ state._fsp--;
+
+ current =iv_ruleCommand;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleCommand448);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleCommand"
+
+
+ // $ANTLR start "ruleCommand"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:251:1: ruleCommand returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) ;
+ public final EObject ruleCommand() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_name_0_0=null;
+ Token lv_code_1_0=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:254:28: ( ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:255:1: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:255:1: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:255:2: ( (lv_name_0_0= RULE_ID ) ) ( (lv_code_1_0= RULE_ID ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:255:2: ( (lv_name_0_0= RULE_ID ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:256:1: (lv_name_0_0= RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:256:1: (lv_name_0_0= RULE_ID )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:257:3: lv_name_0_0= RULE_ID
+ {
+ lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleCommand490);
+
+ newLeafNode(lv_name_0_0, grammarAccess.getCommandAccess().getNameIDTerminalRuleCall_0_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getCommandRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_0_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:273:2: ( (lv_code_1_0= RULE_ID ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:274:1: (lv_code_1_0= RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:274:1: (lv_code_1_0= RULE_ID )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:275:3: lv_code_1_0= RULE_ID
+ {
+ lv_code_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleCommand512);
+
+ newLeafNode(lv_code_1_0, grammarAccess.getCommandAccess().getCodeIDTerminalRuleCall_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getCommandRule());
+ }
+ setWithLastConsumed(
+ current,
+ "code",
+ lv_code_1_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleCommand"
+
+
+ // $ANTLR start "entryRuleState"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:299:1: entryRuleState returns [EObject current=null] : iv_ruleState= ruleState EOF ;
+ public final EObject entryRuleState() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleState = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:300:2: (iv_ruleState= ruleState EOF )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:301:2: iv_ruleState= ruleState EOF
+ {
+ newCompositeNode(grammarAccess.getStateRule());
+ pushFollow(FOLLOW_ruleState_in_entryRuleState553);
+ iv_ruleState=ruleState();
+
+ state._fsp--;
+
+ current =iv_ruleState;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleState563);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleState"
+
+
+ // $ANTLR start "ruleState"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:308:1: ruleState returns [EObject current=null] : (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'actions' otherlv_3= '{' ( (otherlv_4= RULE_ID ) )+ otherlv_5= '}' )? ( (lv_transitions_6_0= ruleTransition ) )* otherlv_7= 'end' ) ;
+ public final EObject ruleState() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token lv_name_1_0=null;
+ Token otherlv_2=null;
+ Token otherlv_3=null;
+ Token otherlv_4=null;
+ Token otherlv_5=null;
+ Token otherlv_7=null;
+ EObject lv_transitions_6_0 = null;
+
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:311:28: ( (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'actions' otherlv_3= '{' ( (otherlv_4= RULE_ID ) )+ otherlv_5= '}' )? ( (lv_transitions_6_0= ruleTransition ) )* otherlv_7= 'end' ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:312:1: (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'actions' otherlv_3= '{' ( (otherlv_4= RULE_ID ) )+ otherlv_5= '}' )? ( (lv_transitions_6_0= ruleTransition ) )* otherlv_7= 'end' )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:312:1: (otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'actions' otherlv_3= '{' ( (otherlv_4= RULE_ID ) )+ otherlv_5= '}' )? ( (lv_transitions_6_0= ruleTransition ) )* otherlv_7= 'end' )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:312:3: otherlv_0= 'state' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'actions' otherlv_3= '{' ( (otherlv_4= RULE_ID ) )+ otherlv_5= '}' )? ( (lv_transitions_6_0= ruleTransition ) )* otherlv_7= 'end'
+ {
+ otherlv_0=(Token)match(input,15,FOLLOW_15_in_ruleState600);
+
+ newLeafNode(otherlv_0, grammarAccess.getStateAccess().getStateKeyword_0());
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:316:1: ( (lv_name_1_0= RULE_ID ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:317:1: (lv_name_1_0= RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:317:1: (lv_name_1_0= RULE_ID )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:318:3: lv_name_1_0= RULE_ID
+ {
+ lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleState617);
+
+ newLeafNode(lv_name_1_0, grammarAccess.getStateAccess().getNameIDTerminalRuleCall_1_0());
+
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getStateRule());
+ }
+ setWithLastConsumed(
+ current,
+ "name",
+ lv_name_1_0,
+ "ID");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:334:2: (otherlv_2= 'actions' otherlv_3= '{' ( (otherlv_4= RULE_ID ) )+ otherlv_5= '}' )?
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0==16) ) {
+ alt9=1;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:334:4: otherlv_2= 'actions' otherlv_3= '{' ( (otherlv_4= RULE_ID ) )+ otherlv_5= '}'
+ {
+ otherlv_2=(Token)match(input,16,FOLLOW_16_in_ruleState635);
+
+ newLeafNode(otherlv_2, grammarAccess.getStateAccess().getActionsKeyword_2_0());
+
+ otherlv_3=(Token)match(input,17,FOLLOW_17_in_ruleState647);
+
+ newLeafNode(otherlv_3, grammarAccess.getStateAccess().getLeftCurlyBracketKeyword_2_1());
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:342:1: ( (otherlv_4= RULE_ID ) )+
+ int cnt8=0;
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==RULE_ID) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:343:1: (otherlv_4= RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:343:1: (otherlv_4= RULE_ID )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:344:3: otherlv_4= RULE_ID
+ {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getStateRule());
+ }
+
+ otherlv_4=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleState667);
+
+ newLeafNode(otherlv_4, grammarAccess.getStateAccess().getActionsCommandCrossReference_2_2_0());
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt8 >= 1 ) break loop8;
+ EarlyExitException eee =
+ new EarlyExitException(8, input);
+ throw eee;
+ }
+ cnt8++;
+ } while (true);
+
+ otherlv_5=(Token)match(input,18,FOLLOW_18_in_ruleState680);
+
+ newLeafNode(otherlv_5, grammarAccess.getStateAccess().getRightCurlyBracketKeyword_2_3());
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:359:3: ( (lv_transitions_6_0= ruleTransition ) )*
+ loop10:
+ do {
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0==RULE_ID) ) {
+ alt10=1;
+ }
+
+
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:360:1: (lv_transitions_6_0= ruleTransition )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:360:1: (lv_transitions_6_0= ruleTransition )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:361:3: lv_transitions_6_0= ruleTransition
+ {
+
+ newCompositeNode(grammarAccess.getStateAccess().getTransitionsTransitionParserRuleCall_3_0());
+
+ pushFollow(FOLLOW_ruleTransition_in_ruleState703);
+ lv_transitions_6_0=ruleTransition();
+
+ state._fsp--;
+
+
+ if (current==null) {
+ current = createModelElementForParent(grammarAccess.getStateRule());
+ }
+ add(
+ current,
+ "transitions",
+ lv_transitions_6_0,
+ "Transition");
+ afterParserOrEnumRuleCall();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop10;
+ }
+ } while (true);
+
+ otherlv_7=(Token)match(input,12,FOLLOW_12_in_ruleState716);
+
+ newLeafNode(otherlv_7, grammarAccess.getStateAccess().getEndKeyword_4());
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleState"
+
+
+ // $ANTLR start "entryRuleTransition"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:389:1: entryRuleTransition returns [EObject current=null] : iv_ruleTransition= ruleTransition EOF ;
+ public final EObject entryRuleTransition() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleTransition = null;
+
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:390:2: (iv_ruleTransition= ruleTransition EOF )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:391:2: iv_ruleTransition= ruleTransition EOF
+ {
+ newCompositeNode(grammarAccess.getTransitionRule());
+ pushFollow(FOLLOW_ruleTransition_in_entryRuleTransition752);
+ iv_ruleTransition=ruleTransition();
+
+ state._fsp--;
+
+ current =iv_ruleTransition;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleTransition762);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "entryRuleTransition"
+
+
+ // $ANTLR start "ruleTransition"
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:398:1: ruleTransition returns [EObject current=null] : ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=>' ( (otherlv_2= RULE_ID ) ) ) ;
+ public final EObject ruleTransition() throws RecognitionException {
+ EObject current = null;
+
+ Token otherlv_0=null;
+ Token otherlv_1=null;
+ Token otherlv_2=null;
+
+ enterRule();
+
+ try {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:401:28: ( ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=>' ( (otherlv_2= RULE_ID ) ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:402:1: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=>' ( (otherlv_2= RULE_ID ) ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:402:1: ( ( (otherlv_0= RULE_ID ) ) otherlv_1= '=>' ( (otherlv_2= RULE_ID ) ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:402:2: ( (otherlv_0= RULE_ID ) ) otherlv_1= '=>' ( (otherlv_2= RULE_ID ) )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:402:2: ( (otherlv_0= RULE_ID ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:403:1: (otherlv_0= RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:403:1: (otherlv_0= RULE_ID )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:404:3: otherlv_0= RULE_ID
+ {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getTransitionRule());
+ }
+
+ otherlv_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTransition807);
+
+ newLeafNode(otherlv_0, grammarAccess.getTransitionAccess().getEventEventCrossReference_0_0());
+
+
+ }
+
+
+ }
+
+ otherlv_1=(Token)match(input,19,FOLLOW_19_in_ruleTransition819);
+
+ newLeafNode(otherlv_1, grammarAccess.getTransitionAccess().getEqualsSignGreaterThanSignKeyword_1());
+
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:419:1: ( (otherlv_2= RULE_ID ) )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:420:1: (otherlv_2= RULE_ID )
+ {
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:420:1: (otherlv_2= RULE_ID )
+ // ../org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/parser/antlr/internal/InternalStatemachine.g:421:3: otherlv_2= RULE_ID
+ {
+
+ if (current==null) {
+ current = createModelElement(grammarAccess.getTransitionRule());
+ }
+
+ otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTransition839);
+
+ newLeafNode(otherlv_2, grammarAccess.getTransitionAccess().getStateStateCrossReference_2_0());
+
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ leaveRule();
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end "ruleTransition"
+
+ // Delegated rules
+
+
+
+
+ public static final BitSet FOLLOW_ruleStatemachine_in_entryRuleStatemachine75 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleStatemachine85 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_11_in_ruleStatemachine132 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleEvent_in_ruleStatemachine153 = new BitSet(new long[]{0x0000000000001010L});
+ public static final BitSet FOLLOW_12_in_ruleStatemachine166 = new BitSet(new long[]{0x000000000000E002L});
+ public static final BitSet FOLLOW_13_in_ruleStatemachine181 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleStatemachine201 = new BitSet(new long[]{0x0000000000001010L});
+ public static final BitSet FOLLOW_12_in_ruleStatemachine214 = new BitSet(new long[]{0x000000000000C002L});
+ public static final BitSet FOLLOW_14_in_ruleStatemachine229 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleCommand_in_ruleStatemachine250 = new BitSet(new long[]{0x0000000000001010L});
+ public static final BitSet FOLLOW_12_in_ruleStatemachine263 = new BitSet(new long[]{0x0000000000008002L});
+ public static final BitSet FOLLOW_ruleState_in_ruleStatemachine286 = new BitSet(new long[]{0x0000000000008002L});
+ public static final BitSet FOLLOW_ruleEvent_in_entryRuleEvent323 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleEvent333 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleEvent375 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleEvent397 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCommand_in_entryRuleCommand438 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleCommand448 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleCommand490 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleCommand512 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleState_in_entryRuleState553 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleState563 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_15_in_ruleState600 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleState617 = new BitSet(new long[]{0x0000000000011010L});
+ public static final BitSet FOLLOW_16_in_ruleState635 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_17_in_ruleState647 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleState667 = new BitSet(new long[]{0x0000000000040010L});
+ public static final BitSet FOLLOW_18_in_ruleState680 = new BitSet(new long[]{0x0000000000001010L});
+ public static final BitSet FOLLOW_ruleTransition_in_ruleState703 = new BitSet(new long[]{0x0000000000001010L});
+ public static final BitSet FOLLOW_12_in_ruleState716 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleTransition_in_entryRuleTransition752 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleTransition762 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleTransition807 = new BitSet(new long[]{0x0000000000080000L});
+ public static final BitSet FOLLOW_19_in_ruleTransition819 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleTransition839 = new BitSet(new long[]{0x0000000000000002L});
+
+} \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/serializer/AbstractStatemachineSemanticSequencer.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/serializer/AbstractStatemachineSemanticSequencer.java
new file mode 100644
index 000000000..ef5f33a5b
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/serializer/AbstractStatemachineSemanticSequencer.java
@@ -0,0 +1,159 @@
+package org.eclipse.emf.parsley.examples.fowlerdsl.serializer;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import org.eclipse.emf.parsley.examples.fowlerdsl.services.StatemachineGrammarAccess;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Transition;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.serializer.acceptor.ISemanticSequenceAcceptor;
+import org.eclipse.xtext.serializer.acceptor.SequenceFeeder;
+import org.eclipse.xtext.serializer.diagnostic.ISemanticSequencerDiagnosticProvider;
+import org.eclipse.xtext.serializer.diagnostic.ISerializationDiagnostic.Acceptor;
+import org.eclipse.xtext.serializer.sequencer.AbstractSemanticSequencer;
+import org.eclipse.xtext.serializer.sequencer.GenericSequencer;
+import org.eclipse.xtext.serializer.sequencer.ISemanticNodeProvider.INodesForEObjectProvider;
+import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer;
+import org.eclipse.xtext.serializer.sequencer.ITransientValueService;
+import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;
+
+@SuppressWarnings("restriction")
+public class AbstractStatemachineSemanticSequencer extends AbstractSemanticSequencer {
+
+ @Inject
+ protected StatemachineGrammarAccess grammarAccess;
+
+ @Inject
+ protected ISemanticSequencerDiagnosticProvider diagnosticProvider;
+
+ @Inject
+ protected ITransientValueService transientValues;
+
+ @Inject
+ @GenericSequencer
+ protected Provider<ISemanticSequencer> genericSequencerProvider;
+
+ protected ISemanticSequencer genericSequencer;
+
+
+ @Override
+ public void init(ISemanticSequencer sequencer, ISemanticSequenceAcceptor sequenceAcceptor, Acceptor errorAcceptor) {
+ super.init(sequencer, sequenceAcceptor, errorAcceptor);
+ this.genericSequencer = genericSequencerProvider.get();
+ this.genericSequencer.init(sequencer, sequenceAcceptor, errorAcceptor);
+ }
+
+ public void createSequence(EObject context, EObject semanticObject) {
+ if(semanticObject.eClass().getEPackage() == StatemachinePackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+ case StatemachinePackage.COMMAND:
+ if(context == grammarAccess.getCommandRule()) {
+ sequence_Command(context, (Command) semanticObject);
+ return;
+ }
+ else break;
+ case StatemachinePackage.EVENT:
+ if(context == grammarAccess.getEventRule()) {
+ sequence_Event(context, (Event) semanticObject);
+ return;
+ }
+ else break;
+ case StatemachinePackage.STATE:
+ if(context == grammarAccess.getStateRule()) {
+ sequence_State(context, (State) semanticObject);
+ return;
+ }
+ else break;
+ case StatemachinePackage.STATEMACHINE:
+ if(context == grammarAccess.getStatemachineRule()) {
+ sequence_Statemachine(context, (Statemachine) semanticObject);
+ return;
+ }
+ else break;
+ case StatemachinePackage.TRANSITION:
+ if(context == grammarAccess.getTransitionRule()) {
+ sequence_Transition(context, (Transition) semanticObject);
+ return;
+ }
+ else break;
+ }
+ if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
+ }
+
+ /**
+ * Constraint:
+ * (name=ID code=ID)
+ */
+ protected void sequence_Command(EObject context, Command semanticObject) {
+ if(errorAcceptor != null) {
+ if(transientValues.isValueTransient(semanticObject, StatemachinePackage.Literals.COMMAND__NAME) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, StatemachinePackage.Literals.COMMAND__NAME));
+ if(transientValues.isValueTransient(semanticObject, StatemachinePackage.Literals.COMMAND__CODE) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, StatemachinePackage.Literals.COMMAND__CODE));
+ }
+ INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+ SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+ feeder.accept(grammarAccess.getCommandAccess().getNameIDTerminalRuleCall_0_0(), semanticObject.getName());
+ feeder.accept(grammarAccess.getCommandAccess().getCodeIDTerminalRuleCall_1_0(), semanticObject.getCode());
+ feeder.finish();
+ }
+
+
+ /**
+ * Constraint:
+ * (name=ID code=ID)
+ */
+ protected void sequence_Event(EObject context, Event semanticObject) {
+ if(errorAcceptor != null) {
+ if(transientValues.isValueTransient(semanticObject, StatemachinePackage.Literals.EVENT__NAME) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, StatemachinePackage.Literals.EVENT__NAME));
+ if(transientValues.isValueTransient(semanticObject, StatemachinePackage.Literals.EVENT__CODE) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, StatemachinePackage.Literals.EVENT__CODE));
+ }
+ INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+ SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+ feeder.accept(grammarAccess.getEventAccess().getNameIDTerminalRuleCall_0_0(), semanticObject.getName());
+ feeder.accept(grammarAccess.getEventAccess().getCodeIDTerminalRuleCall_1_0(), semanticObject.getCode());
+ feeder.finish();
+ }
+
+
+ /**
+ * Constraint:
+ * (name=ID actions+=[Command|ID]* transitions+=Transition*)
+ */
+ protected void sequence_State(EObject context, State semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Constraint:
+ * (events+=Event* resetEvents+=[Event|ID]* commands+=Command* states+=State*)
+ */
+ protected void sequence_Statemachine(EObject context, Statemachine semanticObject) {
+ genericSequencer.createSequence(context, semanticObject);
+ }
+
+
+ /**
+ * Constraint:
+ * (event=[Event|ID] state=[State|ID])
+ */
+ protected void sequence_Transition(EObject context, Transition semanticObject) {
+ if(errorAcceptor != null) {
+ if(transientValues.isValueTransient(semanticObject, StatemachinePackage.Literals.TRANSITION__EVENT) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, StatemachinePackage.Literals.TRANSITION__EVENT));
+ if(transientValues.isValueTransient(semanticObject, StatemachinePackage.Literals.TRANSITION__STATE) == ValueTransient.YES)
+ errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, StatemachinePackage.Literals.TRANSITION__STATE));
+ }
+ INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+ SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+ feeder.accept(grammarAccess.getTransitionAccess().getEventEventIDTerminalRuleCall_0_0_1(), semanticObject.getEvent());
+ feeder.accept(grammarAccess.getTransitionAccess().getStateStateIDTerminalRuleCall_2_0_1(), semanticObject.getState());
+ feeder.finish();
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/serializer/AbstractStatemachineSyntacticSequencer.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/serializer/AbstractStatemachineSyntacticSequencer.java
new file mode 100644
index 000000000..38a702d5b
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/serializer/AbstractStatemachineSyntacticSequencer.java
@@ -0,0 +1,40 @@
+package org.eclipse.emf.parsley.examples.fowlerdsl.serializer;
+
+import com.google.inject.Inject;
+import org.eclipse.emf.parsley.examples.fowlerdsl.services.StatemachineGrammarAccess;
+import java.util.List;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.IGrammarAccess;
+import org.eclipse.xtext.RuleCall;
+import org.eclipse.xtext.nodemodel.INode;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias;
+import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition;
+import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer;
+
+@SuppressWarnings("restriction")
+public class AbstractStatemachineSyntacticSequencer extends AbstractSyntacticSequencer {
+
+ protected StatemachineGrammarAccess grammarAccess;
+
+ @Inject
+ protected void init(IGrammarAccess access) {
+ grammarAccess = (StatemachineGrammarAccess) access;
+ }
+
+ @Override
+ protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+ return "";
+ }
+
+
+ @Override
+ protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) {
+ if (transition.getAmbiguousSyntaxes().isEmpty()) return;
+ List<INode> transitionNodes = collectNodes(fromNode, toNode);
+ for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
+ List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
+ acceptNodes(getLastNavigableState(), syntaxNodes);
+ }
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/services/StatemachineGrammarAccess.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/services/StatemachineGrammarAccess.java
new file mode 100644
index 000000000..f313d9637
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/services/StatemachineGrammarAccess.java
@@ -0,0 +1,391 @@
+/*
+* generated by Xtext
+*/
+
+package org.eclipse.emf.parsley.examples.fowlerdsl.services;
+
+import com.google.inject.Singleton;
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.service.GrammarProvider;
+import org.eclipse.xtext.service.AbstractElementFinder.*;
+
+import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
+
+@Singleton
+public class StatemachineGrammarAccess extends AbstractGrammarElementFinder {
+
+
+ public class StatemachineElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Statemachine");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Action cStatemachineAction_0 = (Action)cGroup.eContents().get(0);
+ private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+ private final Keyword cEventsKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+ private final Assignment cEventsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+ private final RuleCall cEventsEventParserRuleCall_1_1_0 = (RuleCall)cEventsAssignment_1_1.eContents().get(0);
+ private final Keyword cEndKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
+ private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+ private final Keyword cResetEventsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+ private final Assignment cResetEventsAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+ private final CrossReference cResetEventsEventCrossReference_2_1_0 = (CrossReference)cResetEventsAssignment_2_1.eContents().get(0);
+ private final RuleCall cResetEventsEventIDTerminalRuleCall_2_1_0_1 = (RuleCall)cResetEventsEventCrossReference_2_1_0.eContents().get(1);
+ private final Keyword cEndKeyword_2_2 = (Keyword)cGroup_2.eContents().get(2);
+ private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+ private final Keyword cCommandsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+ private final Assignment cCommandsAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+ private final RuleCall cCommandsCommandParserRuleCall_3_1_0 = (RuleCall)cCommandsAssignment_3_1.eContents().get(0);
+ private final Keyword cEndKeyword_3_2 = (Keyword)cGroup_3.eContents().get(2);
+ private final Assignment cStatesAssignment_4 = (Assignment)cGroup.eContents().get(4);
+ private final RuleCall cStatesStateParserRuleCall_4_0 = (RuleCall)cStatesAssignment_4.eContents().get(0);
+
+ //Statemachine:
+ // {Statemachine} ("events" events+=Event+ "end")? ("resetEvents" resetEvents+=[Event]+ "end")? ("commands"
+ // commands+=Command+ "end")? states+=State*;
+ public ParserRule getRule() { return rule; }
+
+ //{Statemachine} ("events" events+=Event+ "end")? ("resetEvents" resetEvents+=[Event]+ "end")? ("commands"
+ //commands+=Command+ "end")? states+=State*
+ public Group getGroup() { return cGroup; }
+
+ //{Statemachine}
+ public Action getStatemachineAction_0() { return cStatemachineAction_0; }
+
+ //("events" events+=Event+ "end")?
+ public Group getGroup_1() { return cGroup_1; }
+
+ //"events"
+ public Keyword getEventsKeyword_1_0() { return cEventsKeyword_1_0; }
+
+ //events+=Event+
+ public Assignment getEventsAssignment_1_1() { return cEventsAssignment_1_1; }
+
+ //Event
+ public RuleCall getEventsEventParserRuleCall_1_1_0() { return cEventsEventParserRuleCall_1_1_0; }
+
+ //"end"
+ public Keyword getEndKeyword_1_2() { return cEndKeyword_1_2; }
+
+ //("resetEvents" resetEvents+=[Event]+ "end")?
+ public Group getGroup_2() { return cGroup_2; }
+
+ //"resetEvents"
+ public Keyword getResetEventsKeyword_2_0() { return cResetEventsKeyword_2_0; }
+
+ //resetEvents+=[Event]+
+ public Assignment getResetEventsAssignment_2_1() { return cResetEventsAssignment_2_1; }
+
+ //[Event]
+ public CrossReference getResetEventsEventCrossReference_2_1_0() { return cResetEventsEventCrossReference_2_1_0; }
+
+ //ID
+ public RuleCall getResetEventsEventIDTerminalRuleCall_2_1_0_1() { return cResetEventsEventIDTerminalRuleCall_2_1_0_1; }
+
+ //"end"
+ public Keyword getEndKeyword_2_2() { return cEndKeyword_2_2; }
+
+ //("commands" commands+=Command+ "end")?
+ public Group getGroup_3() { return cGroup_3; }
+
+ //"commands"
+ public Keyword getCommandsKeyword_3_0() { return cCommandsKeyword_3_0; }
+
+ //commands+=Command+
+ public Assignment getCommandsAssignment_3_1() { return cCommandsAssignment_3_1; }
+
+ //Command
+ public RuleCall getCommandsCommandParserRuleCall_3_1_0() { return cCommandsCommandParserRuleCall_3_1_0; }
+
+ //"end"
+ public Keyword getEndKeyword_3_2() { return cEndKeyword_3_2; }
+
+ //states+=State*
+ public Assignment getStatesAssignment_4() { return cStatesAssignment_4; }
+
+ //State
+ public RuleCall getStatesStateParserRuleCall_4_0() { return cStatesStateParserRuleCall_4_0; }
+ }
+
+ public class EventElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Event");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cNameIDTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0);
+ private final Assignment cCodeAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cCodeIDTerminalRuleCall_1_0 = (RuleCall)cCodeAssignment_1.eContents().get(0);
+
+ //Event:
+ // name=ID code=ID;
+ public ParserRule getRule() { return rule; }
+
+ //name=ID code=ID
+ public Group getGroup() { return cGroup; }
+
+ //name=ID
+ public Assignment getNameAssignment_0() { return cNameAssignment_0; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; }
+
+ //code=ID
+ public Assignment getCodeAssignment_1() { return cCodeAssignment_1; }
+
+ //ID
+ public RuleCall getCodeIDTerminalRuleCall_1_0() { return cCodeIDTerminalRuleCall_1_0; }
+ }
+
+ public class CommandElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Command");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final RuleCall cNameIDTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0);
+ private final Assignment cCodeAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cCodeIDTerminalRuleCall_1_0 = (RuleCall)cCodeAssignment_1.eContents().get(0);
+
+ //Command:
+ // name=ID code=ID;
+ public ParserRule getRule() { return rule; }
+
+ //name=ID code=ID
+ public Group getGroup() { return cGroup; }
+
+ //name=ID
+ public Assignment getNameAssignment_0() { return cNameAssignment_0; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; }
+
+ //code=ID
+ public Assignment getCodeAssignment_1() { return cCodeAssignment_1; }
+
+ //ID
+ public RuleCall getCodeIDTerminalRuleCall_1_0() { return cCodeIDTerminalRuleCall_1_0; }
+ }
+
+ public class StateElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "State");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Keyword cStateKeyword_0 = (Keyword)cGroup.eContents().get(0);
+ private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+ private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+ private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+ private final Keyword cActionsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+ private final Keyword cLeftCurlyBracketKeyword_2_1 = (Keyword)cGroup_2.eContents().get(1);
+ private final Assignment cActionsAssignment_2_2 = (Assignment)cGroup_2.eContents().get(2);
+ private final CrossReference cActionsCommandCrossReference_2_2_0 = (CrossReference)cActionsAssignment_2_2.eContents().get(0);
+ private final RuleCall cActionsCommandIDTerminalRuleCall_2_2_0_1 = (RuleCall)cActionsCommandCrossReference_2_2_0.eContents().get(1);
+ private final Keyword cRightCurlyBracketKeyword_2_3 = (Keyword)cGroup_2.eContents().get(3);
+ private final Assignment cTransitionsAssignment_3 = (Assignment)cGroup.eContents().get(3);
+ private final RuleCall cTransitionsTransitionParserRuleCall_3_0 = (RuleCall)cTransitionsAssignment_3.eContents().get(0);
+ private final Keyword cEndKeyword_4 = (Keyword)cGroup.eContents().get(4);
+
+ //State:
+ // "state" name=ID ("actions" "{" actions+=[Command]+ "}")? transitions+=Transition* "end";
+ public ParserRule getRule() { return rule; }
+
+ //"state" name=ID ("actions" "{" actions+=[Command]+ "}")? transitions+=Transition* "end"
+ public Group getGroup() { return cGroup; }
+
+ //"state"
+ public Keyword getStateKeyword_0() { return cStateKeyword_0; }
+
+ //name=ID
+ public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+ //ID
+ public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+
+ //("actions" "{" actions+=[Command]+ "}")?
+ public Group getGroup_2() { return cGroup_2; }
+
+ //"actions"
+ public Keyword getActionsKeyword_2_0() { return cActionsKeyword_2_0; }
+
+ //"{"
+ public Keyword getLeftCurlyBracketKeyword_2_1() { return cLeftCurlyBracketKeyword_2_1; }
+
+ //actions+=[Command]+
+ public Assignment getActionsAssignment_2_2() { return cActionsAssignment_2_2; }
+
+ //[Command]
+ public CrossReference getActionsCommandCrossReference_2_2_0() { return cActionsCommandCrossReference_2_2_0; }
+
+ //ID
+ public RuleCall getActionsCommandIDTerminalRuleCall_2_2_0_1() { return cActionsCommandIDTerminalRuleCall_2_2_0_1; }
+
+ //"}"
+ public Keyword getRightCurlyBracketKeyword_2_3() { return cRightCurlyBracketKeyword_2_3; }
+
+ //transitions+=Transition*
+ public Assignment getTransitionsAssignment_3() { return cTransitionsAssignment_3; }
+
+ //Transition
+ public RuleCall getTransitionsTransitionParserRuleCall_3_0() { return cTransitionsTransitionParserRuleCall_3_0; }
+
+ //"end"
+ public Keyword getEndKeyword_4() { return cEndKeyword_4; }
+ }
+
+ public class TransitionElements extends AbstractParserRuleElementFinder {
+ private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Transition");
+ private final Group cGroup = (Group)rule.eContents().get(1);
+ private final Assignment cEventAssignment_0 = (Assignment)cGroup.eContents().get(0);
+ private final CrossReference cEventEventCrossReference_0_0 = (CrossReference)cEventAssignment_0.eContents().get(0);
+ private final RuleCall cEventEventIDTerminalRuleCall_0_0_1 = (RuleCall)cEventEventCrossReference_0_0.eContents().get(1);
+ private final Keyword cEqualsSignGreaterThanSignKeyword_1 = (Keyword)cGroup.eContents().get(1);
+ private final Assignment cStateAssignment_2 = (Assignment)cGroup.eContents().get(2);
+ private final CrossReference cStateStateCrossReference_2_0 = (CrossReference)cStateAssignment_2.eContents().get(0);
+ private final RuleCall cStateStateIDTerminalRuleCall_2_0_1 = (RuleCall)cStateStateCrossReference_2_0.eContents().get(1);
+
+ //Transition:
+ // event=[Event] "=>" state=[State];
+ public ParserRule getRule() { return rule; }
+
+ //event=[Event] "=>" state=[State]
+ public Group getGroup() { return cGroup; }
+
+ //event=[Event]
+ public Assignment getEventAssignment_0() { return cEventAssignment_0; }
+
+ //[Event]
+ public CrossReference getEventEventCrossReference_0_0() { return cEventEventCrossReference_0_0; }
+
+ //ID
+ public RuleCall getEventEventIDTerminalRuleCall_0_0_1() { return cEventEventIDTerminalRuleCall_0_0_1; }
+
+ //"=>"
+ public Keyword getEqualsSignGreaterThanSignKeyword_1() { return cEqualsSignGreaterThanSignKeyword_1; }
+
+ //state=[State]
+ public Assignment getStateAssignment_2() { return cStateAssignment_2; }
+
+ //[State]
+ public CrossReference getStateStateCrossReference_2_0() { return cStateStateCrossReference_2_0; }
+
+ //ID
+ public RuleCall getStateStateIDTerminalRuleCall_2_0_1() { return cStateStateIDTerminalRuleCall_2_0_1; }
+ }
+
+
+ private StatemachineElements pStatemachine;
+ private EventElements pEvent;
+ private CommandElements pCommand;
+ private StateElements pState;
+ private TransitionElements pTransition;
+
+ private final GrammarProvider grammarProvider;
+
+ private TerminalsGrammarAccess gaTerminals;
+
+ @Inject
+ public StatemachineGrammarAccess(GrammarProvider grammarProvider,
+ TerminalsGrammarAccess gaTerminals) {
+ this.grammarProvider = grammarProvider;
+ this.gaTerminals = gaTerminals;
+ }
+
+ public Grammar getGrammar() {
+ return grammarProvider.getGrammar(this);
+ }
+
+
+ public TerminalsGrammarAccess getTerminalsGrammarAccess() {
+ return gaTerminals;
+ }
+
+
+ //Statemachine:
+ // {Statemachine} ("events" events+=Event+ "end")? ("resetEvents" resetEvents+=[Event]+ "end")? ("commands"
+ // commands+=Command+ "end")? states+=State*;
+ public StatemachineElements getStatemachineAccess() {
+ return (pStatemachine != null) ? pStatemachine : (pStatemachine = new StatemachineElements());
+ }
+
+ public ParserRule getStatemachineRule() {
+ return getStatemachineAccess().getRule();
+ }
+
+ //Event:
+ // name=ID code=ID;
+ public EventElements getEventAccess() {
+ return (pEvent != null) ? pEvent : (pEvent = new EventElements());
+ }
+
+ public ParserRule getEventRule() {
+ return getEventAccess().getRule();
+ }
+
+ //Command:
+ // name=ID code=ID;
+ public CommandElements getCommandAccess() {
+ return (pCommand != null) ? pCommand : (pCommand = new CommandElements());
+ }
+
+ public ParserRule getCommandRule() {
+ return getCommandAccess().getRule();
+ }
+
+ //State:
+ // "state" name=ID ("actions" "{" actions+=[Command]+ "}")? transitions+=Transition* "end";
+ public StateElements getStateAccess() {
+ return (pState != null) ? pState : (pState = new StateElements());
+ }
+
+ public ParserRule getStateRule() {
+ return getStateAccess().getRule();
+ }
+
+ //Transition:
+ // event=[Event] "=>" state=[State];
+ public TransitionElements getTransitionAccess() {
+ return (pTransition != null) ? pTransition : (pTransition = new TransitionElements());
+ }
+
+ public ParserRule getTransitionRule() {
+ return getTransitionAccess().getRule();
+ }
+
+ //terminal ID:
+ // "^"? ("a".."z" | "A".."Z" | "_") ("a".."z" | "A".."Z" | "_" | "0".."9")*;
+ public TerminalRule getIDRule() {
+ return gaTerminals.getIDRule();
+ }
+
+ //terminal INT returns ecore::EInt:
+ // "0".."9"+;
+ public TerminalRule getINTRule() {
+ return gaTerminals.getINTRule();
+ }
+
+ //terminal STRING:
+ // "\"" ("\\" ("b" | "t" | "n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\""))* "\"" | "\'" ("\\" ("b" | "t" |
+ // "n" | "f" | "r" | "u" | "\"" | "\'" | "\\") | !("\\" | "\'"))* "\'";
+ public TerminalRule getSTRINGRule() {
+ return gaTerminals.getSTRINGRule();
+ }
+
+ //terminal ML_COMMENT:
+ // "/ *"->"* /";
+ public TerminalRule getML_COMMENTRule() {
+ return gaTerminals.getML_COMMENTRule();
+ }
+
+ //terminal SL_COMMENT:
+ // "//" !("\n" | "\r")* ("\r"? "\n")?;
+ public TerminalRule getSL_COMMENTRule() {
+ return gaTerminals.getSL_COMMENTRule();
+ }
+
+ //terminal WS:
+ // (" " | "\t" | "\r" | "\n")+;
+ public TerminalRule getWSRule() {
+ return gaTerminals.getWSRule();
+ }
+
+ //terminal ANY_OTHER:
+ // .;
+ public TerminalRule getANY_OTHERRule() {
+ return gaTerminals.getANY_OTHERRule();
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/Command.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/Command.java
new file mode 100644
index 000000000..a862793af
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/Command.java
@@ -0,0 +1,81 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.statemachine;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Command</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command#getCode <em>Code</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#getCommand()
+ * @model
+ * @generated
+ */
+public interface Command extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#getCommand_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Code</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Code</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Code</em>' attribute.
+ * @see #setCode(String)
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#getCommand_Code()
+ * @model
+ * @generated
+ */
+ String getCode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command#getCode <em>Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Code</em>' attribute.
+ * @see #getCode()
+ * @generated
+ */
+ void setCode(String value);
+
+} // Command
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/Event.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/Event.java
new file mode 100644
index 000000000..ad2ec0798
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/Event.java
@@ -0,0 +1,81 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.statemachine;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Event</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event#getCode <em>Code</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#getEvent()
+ * @model
+ * @generated
+ */
+public interface Event extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#getEvent_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Code</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Code</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Code</em>' attribute.
+ * @see #setCode(String)
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#getEvent_Code()
+ * @model
+ * @generated
+ */
+ String getCode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event#getCode <em>Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Code</em>' attribute.
+ * @see #getCode()
+ * @generated
+ */
+ void setCode(String value);
+
+} // Event
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/State.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/State.java
new file mode 100644
index 000000000..3bf7ebe4e
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/State.java
@@ -0,0 +1,90 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.statemachine;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>State</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State#getActions <em>Actions</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State#getTransitions <em>Transitions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#getState()
+ * @model
+ * @generated
+ */
+public interface State extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#getState_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Actions</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Actions</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Actions</em>' reference list.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#getState_Actions()
+ * @model
+ * @generated
+ */
+ EList<Command> getActions();
+
+ /**
+ * Returns the value of the '<em><b>Transitions</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Transition}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Transitions</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Transitions</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#getState_Transitions()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Transition> getTransitions();
+
+} // State
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/Statemachine.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/Statemachine.java
new file mode 100644
index 000000000..3a35a1a37
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/Statemachine.java
@@ -0,0 +1,97 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.statemachine;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Statemachine</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine#getEvents <em>Events</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine#getResetEvents <em>Reset Events</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine#getCommands <em>Commands</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine#getStates <em>States</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#getStatemachine()
+ * @model
+ * @generated
+ */
+public interface Statemachine extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Events</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Events</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Events</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#getStatemachine_Events()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Event> getEvents();
+
+ /**
+ * Returns the value of the '<em><b>Reset Events</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Reset Events</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Reset Events</em>' reference list.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#getStatemachine_ResetEvents()
+ * @model
+ * @generated
+ */
+ EList<Event> getResetEvents();
+
+ /**
+ * Returns the value of the '<em><b>Commands</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Commands</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Commands</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#getStatemachine_Commands()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Command> getCommands();
+
+ /**
+ * Returns the value of the '<em><b>States</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>States</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>States</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#getStatemachine_States()
+ * @model containment="true"
+ * @generated
+ */
+ EList<State> getStates();
+
+} // Statemachine
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/StatemachineFactory.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/StatemachineFactory.java
new file mode 100644
index 000000000..285cbdf1e
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/StatemachineFactory.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.statemachine;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage
+ * @generated
+ */
+public interface StatemachineFactory extends EFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ StatemachineFactory eINSTANCE = org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachineFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Statemachine</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Statemachine</em>'.
+ * @generated
+ */
+ Statemachine createStatemachine();
+
+ /**
+ * Returns a new object of class '<em>Event</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Event</em>'.
+ * @generated
+ */
+ Event createEvent();
+
+ /**
+ * Returns a new object of class '<em>Command</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Command</em>'.
+ * @generated
+ */
+ Command createCommand();
+
+ /**
+ * Returns a new object of class '<em>State</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>State</em>'.
+ * @generated
+ */
+ State createState();
+
+ /**
+ * Returns a new object of class '<em>Transition</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Transition</em>'.
+ * @generated
+ */
+ Transition createTransition();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ StatemachinePackage getStatemachinePackage();
+
+} //StatemachineFactory
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/StatemachinePackage.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/StatemachinePackage.java
new file mode 100644
index 000000000..1aca98db0
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/StatemachinePackage.java
@@ -0,0 +1,647 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.statemachine;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachineFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface StatemachinePackage extends EPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "statemachine";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/emf/parsley/examples/fowlerdsl/Statemachine";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "statemachine";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ StatemachinePackage eINSTANCE = org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachinePackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachineImpl <em>Statemachine</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachineImpl
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachinePackageImpl#getStatemachine()
+ * @generated
+ */
+ int STATEMACHINE = 0;
+
+ /**
+ * The feature id for the '<em><b>Events</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE__EVENTS = 0;
+
+ /**
+ * The feature id for the '<em><b>Reset Events</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE__RESET_EVENTS = 1;
+
+ /**
+ * The feature id for the '<em><b>Commands</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE__COMMANDS = 2;
+
+ /**
+ * The feature id for the '<em><b>States</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE__STATES = 3;
+
+ /**
+ * The number of structural features of the '<em>Statemachine</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATEMACHINE_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.EventImpl <em>Event</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.EventImpl
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachinePackageImpl#getEvent()
+ * @generated
+ */
+ int EVENT = 1;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Code</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT__CODE = 1;
+
+ /**
+ * The number of structural features of the '<em>Event</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVENT_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.CommandImpl <em>Command</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.CommandImpl
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachinePackageImpl#getCommand()
+ * @generated
+ */
+ int COMMAND = 2;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMMAND__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Code</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMMAND__CODE = 1;
+
+ /**
+ * The number of structural features of the '<em>Command</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMMAND_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StateImpl <em>State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StateImpl
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachinePackageImpl#getState()
+ * @generated
+ */
+ int STATE = 3;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Actions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE__ACTIONS = 1;
+
+ /**
+ * The feature id for the '<em><b>Transitions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE__TRANSITIONS = 2;
+
+ /**
+ * The number of structural features of the '<em>State</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STATE_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.TransitionImpl <em>Transition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.TransitionImpl
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachinePackageImpl#getTransition()
+ * @generated
+ */
+ int TRANSITION = 4;
+
+ /**
+ * The feature id for the '<em><b>Event</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSITION__EVENT = 0;
+
+ /**
+ * The feature id for the '<em><b>State</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSITION__STATE = 1;
+
+ /**
+ * The number of structural features of the '<em>Transition</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSITION_FEATURE_COUNT = 2;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine <em>Statemachine</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Statemachine</em>'.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine
+ * @generated
+ */
+ EClass getStatemachine();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine#getEvents <em>Events</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Events</em>'.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine#getEvents()
+ * @see #getStatemachine()
+ * @generated
+ */
+ EReference getStatemachine_Events();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine#getResetEvents <em>Reset Events</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Reset Events</em>'.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine#getResetEvents()
+ * @see #getStatemachine()
+ * @generated
+ */
+ EReference getStatemachine_ResetEvents();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine#getCommands <em>Commands</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Commands</em>'.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine#getCommands()
+ * @see #getStatemachine()
+ * @generated
+ */
+ EReference getStatemachine_Commands();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine#getStates <em>States</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>States</em>'.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine#getStates()
+ * @see #getStatemachine()
+ * @generated
+ */
+ EReference getStatemachine_States();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event <em>Event</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Event</em>'.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event
+ * @generated
+ */
+ EClass getEvent();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event#getName()
+ * @see #getEvent()
+ * @generated
+ */
+ EAttribute getEvent_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event#getCode <em>Code</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Code</em>'.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event#getCode()
+ * @see #getEvent()
+ * @generated
+ */
+ EAttribute getEvent_Code();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command <em>Command</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Command</em>'.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command
+ * @generated
+ */
+ EClass getCommand();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command#getName()
+ * @see #getCommand()
+ * @generated
+ */
+ EAttribute getCommand_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command#getCode <em>Code</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Code</em>'.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command#getCode()
+ * @see #getCommand()
+ * @generated
+ */
+ EAttribute getCommand_Code();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State <em>State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>State</em>'.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State
+ * @generated
+ */
+ EClass getState();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State#getName()
+ * @see #getState()
+ * @generated
+ */
+ EAttribute getState_Name();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State#getActions <em>Actions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Actions</em>'.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State#getActions()
+ * @see #getState()
+ * @generated
+ */
+ EReference getState_Actions();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State#getTransitions <em>Transitions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Transitions</em>'.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State#getTransitions()
+ * @see #getState()
+ * @generated
+ */
+ EReference getState_Transitions();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Transition <em>Transition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Transition</em>'.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Transition
+ * @generated
+ */
+ EClass getTransition();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Transition#getEvent <em>Event</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Event</em>'.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Transition#getEvent()
+ * @see #getTransition()
+ * @generated
+ */
+ EReference getTransition_Event();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Transition#getState <em>State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>State</em>'.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Transition#getState()
+ * @see #getTransition()
+ * @generated
+ */
+ EReference getTransition_State();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ StatemachineFactory getStatemachineFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachineImpl <em>Statemachine</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachineImpl
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachinePackageImpl#getStatemachine()
+ * @generated
+ */
+ EClass STATEMACHINE = eINSTANCE.getStatemachine();
+
+ /**
+ * The meta object literal for the '<em><b>Events</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STATEMACHINE__EVENTS = eINSTANCE.getStatemachine_Events();
+
+ /**
+ * The meta object literal for the '<em><b>Reset Events</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STATEMACHINE__RESET_EVENTS = eINSTANCE.getStatemachine_ResetEvents();
+
+ /**
+ * The meta object literal for the '<em><b>Commands</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STATEMACHINE__COMMANDS = eINSTANCE.getStatemachine_Commands();
+
+ /**
+ * The meta object literal for the '<em><b>States</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STATEMACHINE__STATES = eINSTANCE.getStatemachine_States();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.EventImpl <em>Event</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.EventImpl
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachinePackageImpl#getEvent()
+ * @generated
+ */
+ EClass EVENT = eINSTANCE.getEvent();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVENT__NAME = eINSTANCE.getEvent_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Code</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVENT__CODE = eINSTANCE.getEvent_Code();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.CommandImpl <em>Command</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.CommandImpl
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachinePackageImpl#getCommand()
+ * @generated
+ */
+ EClass COMMAND = eINSTANCE.getCommand();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute COMMAND__NAME = eINSTANCE.getCommand_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Code</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute COMMAND__CODE = eINSTANCE.getCommand_Code();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StateImpl <em>State</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StateImpl
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachinePackageImpl#getState()
+ * @generated
+ */
+ EClass STATE = eINSTANCE.getState();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STATE__NAME = eINSTANCE.getState_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Actions</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STATE__ACTIONS = eINSTANCE.getState_Actions();
+
+ /**
+ * The meta object literal for the '<em><b>Transitions</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference STATE__TRANSITIONS = eINSTANCE.getState_Transitions();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.TransitionImpl <em>Transition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.TransitionImpl
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachinePackageImpl#getTransition()
+ * @generated
+ */
+ EClass TRANSITION = eINSTANCE.getTransition();
+
+ /**
+ * The meta object literal for the '<em><b>Event</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRANSITION__EVENT = eINSTANCE.getTransition_Event();
+
+ /**
+ * The meta object literal for the '<em><b>State</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRANSITION__STATE = eINSTANCE.getTransition_State();
+
+ }
+
+} //StatemachinePackage
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/Transition.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/Transition.java
new file mode 100644
index 000000000..70e562c66
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/Transition.java
@@ -0,0 +1,81 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.statemachine;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Transition#getEvent <em>Event</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Transition#getState <em>State</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#getTransition()
+ * @model
+ * @generated
+ */
+public interface Transition extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Event</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Event</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Event</em>' reference.
+ * @see #setEvent(Event)
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#getTransition_Event()
+ * @model
+ * @generated
+ */
+ Event getEvent();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Transition#getEvent <em>Event</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Event</em>' reference.
+ * @see #getEvent()
+ * @generated
+ */
+ void setEvent(Event value);
+
+ /**
+ * Returns the value of the '<em><b>State</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>State</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>State</em>' reference.
+ * @see #setState(State)
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#getTransition_State()
+ * @model
+ * @generated
+ */
+ State getState();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Transition#getState <em>State</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>State</em>' reference.
+ * @see #getState()
+ * @generated
+ */
+ void setState(State value);
+
+} // Transition
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/CommandImpl.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/CommandImpl.java
new file mode 100644
index 000000000..9fb807448
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/CommandImpl.java
@@ -0,0 +1,236 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl;
+
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Command</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.CommandImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.CommandImpl#getCode <em>Code</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CommandImpl extends MinimalEObjectImpl.Container implements Command
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCode() <em>Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCode()
+ * @generated
+ * @ordered
+ */
+ protected static final String CODE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCode() <em>Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCode()
+ * @generated
+ * @ordered
+ */
+ protected String code = CODE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CommandImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return StatemachinePackage.Literals.COMMAND;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.COMMAND__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCode()
+ {
+ return code;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCode(String newCode)
+ {
+ String oldCode = code;
+ code = newCode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.COMMAND__CODE, oldCode, code));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.COMMAND__NAME:
+ return getName();
+ case StatemachinePackage.COMMAND__CODE:
+ return getCode();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.COMMAND__NAME:
+ setName((String)newValue);
+ return;
+ case StatemachinePackage.COMMAND__CODE:
+ setCode((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.COMMAND__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case StatemachinePackage.COMMAND__CODE:
+ setCode(CODE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.COMMAND__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case StatemachinePackage.COMMAND__CODE:
+ return CODE_EDEFAULT == null ? code != null : !CODE_EDEFAULT.equals(code);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", code: ");
+ result.append(code);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CommandImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/EventImpl.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/EventImpl.java
new file mode 100644
index 000000000..b8e737c3f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/EventImpl.java
@@ -0,0 +1,236 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl;
+
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.EventImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.EventImpl#getCode <em>Code</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EventImpl extends MinimalEObjectImpl.Container implements Event
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCode() <em>Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCode()
+ * @generated
+ * @ordered
+ */
+ protected static final String CODE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCode() <em>Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCode()
+ * @generated
+ * @ordered
+ */
+ protected String code = CODE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EventImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return StatemachinePackage.Literals.EVENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.EVENT__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCode()
+ {
+ return code;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCode(String newCode)
+ {
+ String oldCode = code;
+ code = newCode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.EVENT__CODE, oldCode, code));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.EVENT__NAME:
+ return getName();
+ case StatemachinePackage.EVENT__CODE:
+ return getCode();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.EVENT__NAME:
+ setName((String)newValue);
+ return;
+ case StatemachinePackage.EVENT__CODE:
+ setCode((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.EVENT__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case StatemachinePackage.EVENT__CODE:
+ setCode(CODE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.EVENT__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case StatemachinePackage.EVENT__CODE:
+ return CODE_EDEFAULT == null ? code != null : !CODE_EDEFAULT.equals(code);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", code: ");
+ result.append(code);
+ result.append(')');
+ return result.toString();
+ }
+
+} //EventImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/StateImpl.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/StateImpl.java
new file mode 100644
index 000000000..10fe929a0
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/StateImpl.java
@@ -0,0 +1,281 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl;
+
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Transition;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>State</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StateImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StateImpl#getActions <em>Actions</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StateImpl#getTransitions <em>Transitions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StateImpl extends MinimalEObjectImpl.Container implements State
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getActions() <em>Actions</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActions()
+ * @generated
+ * @ordered
+ */
+ protected EList<Command> actions;
+
+ /**
+ * The cached value of the '{@link #getTransitions() <em>Transitions</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTransitions()
+ * @generated
+ * @ordered
+ */
+ protected EList<Transition> transitions;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return StatemachinePackage.Literals.STATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.STATE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Command> getActions()
+ {
+ if (actions == null)
+ {
+ actions = new EObjectResolvingEList<Command>(Command.class, this, StatemachinePackage.STATE__ACTIONS);
+ }
+ return actions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Transition> getTransitions()
+ {
+ if (transitions == null)
+ {
+ transitions = new EObjectContainmentEList<Transition>(Transition.class, this, StatemachinePackage.STATE__TRANSITIONS);
+ }
+ return transitions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.STATE__TRANSITIONS:
+ return ((InternalEList<?>)getTransitions()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.STATE__NAME:
+ return getName();
+ case StatemachinePackage.STATE__ACTIONS:
+ return getActions();
+ case StatemachinePackage.STATE__TRANSITIONS:
+ return getTransitions();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.STATE__NAME:
+ setName((String)newValue);
+ return;
+ case StatemachinePackage.STATE__ACTIONS:
+ getActions().clear();
+ getActions().addAll((Collection<? extends Command>)newValue);
+ return;
+ case StatemachinePackage.STATE__TRANSITIONS:
+ getTransitions().clear();
+ getTransitions().addAll((Collection<? extends Transition>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.STATE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case StatemachinePackage.STATE__ACTIONS:
+ getActions().clear();
+ return;
+ case StatemachinePackage.STATE__TRANSITIONS:
+ getTransitions().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.STATE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case StatemachinePackage.STATE__ACTIONS:
+ return actions != null && !actions.isEmpty();
+ case StatemachinePackage.STATE__TRANSITIONS:
+ return transitions != null && !transitions.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //StateImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/StatemachineFactoryImpl.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/StatemachineFactoryImpl.java
new file mode 100644
index 000000000..db0f3d138
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/StatemachineFactoryImpl.java
@@ -0,0 +1,157 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl;
+
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class StatemachineFactoryImpl extends EFactoryImpl implements StatemachineFactory
+{
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static StatemachineFactory init()
+ {
+ try
+ {
+ StatemachineFactory theStatemachineFactory = (StatemachineFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/emf/parsley/examples/fowlerdsl/Statemachine");
+ if (theStatemachineFactory != null)
+ {
+ return theStatemachineFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new StatemachineFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StatemachineFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case StatemachinePackage.STATEMACHINE: return createStatemachine();
+ case StatemachinePackage.EVENT: return createEvent();
+ case StatemachinePackage.COMMAND: return createCommand();
+ case StatemachinePackage.STATE: return createState();
+ case StatemachinePackage.TRANSITION: return createTransition();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Statemachine createStatemachine()
+ {
+ StatemachineImpl statemachine = new StatemachineImpl();
+ return statemachine;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Event createEvent()
+ {
+ EventImpl event = new EventImpl();
+ return event;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Command createCommand()
+ {
+ CommandImpl command = new CommandImpl();
+ return command;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State createState()
+ {
+ StateImpl state = new StateImpl();
+ return state;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Transition createTransition()
+ {
+ TransitionImpl transition = new TransitionImpl();
+ return transition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StatemachinePackage getStatemachinePackage()
+ {
+ return (StatemachinePackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static StatemachinePackage getPackage()
+ {
+ return StatemachinePackage.eINSTANCE;
+ }
+
+} //StatemachineFactoryImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/StatemachineImpl.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/StatemachineImpl.java
new file mode 100644
index 000000000..9ed040b03
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/StatemachineImpl.java
@@ -0,0 +1,285 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl;
+
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Statemachine</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachineImpl#getEvents <em>Events</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachineImpl#getResetEvents <em>Reset Events</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachineImpl#getCommands <em>Commands</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.StatemachineImpl#getStates <em>States</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StatemachineImpl extends MinimalEObjectImpl.Container implements Statemachine
+{
+ /**
+ * The cached value of the '{@link #getEvents() <em>Events</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEvents()
+ * @generated
+ * @ordered
+ */
+ protected EList<Event> events;
+
+ /**
+ * The cached value of the '{@link #getResetEvents() <em>Reset Events</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getResetEvents()
+ * @generated
+ * @ordered
+ */
+ protected EList<Event> resetEvents;
+
+ /**
+ * The cached value of the '{@link #getCommands() <em>Commands</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCommands()
+ * @generated
+ * @ordered
+ */
+ protected EList<Command> commands;
+
+ /**
+ * The cached value of the '{@link #getStates() <em>States</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStates()
+ * @generated
+ * @ordered
+ */
+ protected EList<State> states;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StatemachineImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return StatemachinePackage.Literals.STATEMACHINE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Event> getEvents()
+ {
+ if (events == null)
+ {
+ events = new EObjectContainmentEList<Event>(Event.class, this, StatemachinePackage.STATEMACHINE__EVENTS);
+ }
+ return events;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Event> getResetEvents()
+ {
+ if (resetEvents == null)
+ {
+ resetEvents = new EObjectResolvingEList<Event>(Event.class, this, StatemachinePackage.STATEMACHINE__RESET_EVENTS);
+ }
+ return resetEvents;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Command> getCommands()
+ {
+ if (commands == null)
+ {
+ commands = new EObjectContainmentEList<Command>(Command.class, this, StatemachinePackage.STATEMACHINE__COMMANDS);
+ }
+ return commands;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<State> getStates()
+ {
+ if (states == null)
+ {
+ states = new EObjectContainmentEList<State>(State.class, this, StatemachinePackage.STATEMACHINE__STATES);
+ }
+ return states;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.STATEMACHINE__EVENTS:
+ return ((InternalEList<?>)getEvents()).basicRemove(otherEnd, msgs);
+ case StatemachinePackage.STATEMACHINE__COMMANDS:
+ return ((InternalEList<?>)getCommands()).basicRemove(otherEnd, msgs);
+ case StatemachinePackage.STATEMACHINE__STATES:
+ return ((InternalEList<?>)getStates()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.STATEMACHINE__EVENTS:
+ return getEvents();
+ case StatemachinePackage.STATEMACHINE__RESET_EVENTS:
+ return getResetEvents();
+ case StatemachinePackage.STATEMACHINE__COMMANDS:
+ return getCommands();
+ case StatemachinePackage.STATEMACHINE__STATES:
+ return getStates();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.STATEMACHINE__EVENTS:
+ getEvents().clear();
+ getEvents().addAll((Collection<? extends Event>)newValue);
+ return;
+ case StatemachinePackage.STATEMACHINE__RESET_EVENTS:
+ getResetEvents().clear();
+ getResetEvents().addAll((Collection<? extends Event>)newValue);
+ return;
+ case StatemachinePackage.STATEMACHINE__COMMANDS:
+ getCommands().clear();
+ getCommands().addAll((Collection<? extends Command>)newValue);
+ return;
+ case StatemachinePackage.STATEMACHINE__STATES:
+ getStates().clear();
+ getStates().addAll((Collection<? extends State>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.STATEMACHINE__EVENTS:
+ getEvents().clear();
+ return;
+ case StatemachinePackage.STATEMACHINE__RESET_EVENTS:
+ getResetEvents().clear();
+ return;
+ case StatemachinePackage.STATEMACHINE__COMMANDS:
+ getCommands().clear();
+ return;
+ case StatemachinePackage.STATEMACHINE__STATES:
+ getStates().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.STATEMACHINE__EVENTS:
+ return events != null && !events.isEmpty();
+ case StatemachinePackage.STATEMACHINE__RESET_EVENTS:
+ return resetEvents != null && !resetEvents.isEmpty();
+ case StatemachinePackage.STATEMACHINE__COMMANDS:
+ return commands != null && !commands.isEmpty();
+ case StatemachinePackage.STATEMACHINE__STATES:
+ return states != null && !states.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //StatemachineImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/StatemachinePackageImpl.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/StatemachinePackageImpl.java
new file mode 100644
index 000000000..edfab9f04
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/StatemachinePackageImpl.java
@@ -0,0 +1,421 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl;
+
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachineFactory;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Transition;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class StatemachinePackageImpl extends EPackageImpl implements StatemachinePackage
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass statemachineEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass eventEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass commandEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass transitionEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private StatemachinePackageImpl()
+ {
+ super(eNS_URI, StatemachineFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link StatemachinePackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static StatemachinePackage init()
+ {
+ if (isInited) return (StatemachinePackage)EPackage.Registry.INSTANCE.getEPackage(StatemachinePackage.eNS_URI);
+
+ // Obtain or create and register package
+ StatemachinePackageImpl theStatemachinePackage = (StatemachinePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof StatemachinePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new StatemachinePackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theStatemachinePackage.createPackageContents();
+
+ // Initialize created meta-data
+ theStatemachinePackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theStatemachinePackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(StatemachinePackage.eNS_URI, theStatemachinePackage);
+ return theStatemachinePackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStatemachine()
+ {
+ return statemachineEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStatemachine_Events()
+ {
+ return (EReference)statemachineEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStatemachine_ResetEvents()
+ {
+ return (EReference)statemachineEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStatemachine_Commands()
+ {
+ return (EReference)statemachineEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStatemachine_States()
+ {
+ return (EReference)statemachineEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvent()
+ {
+ return eventEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvent_Name()
+ {
+ return (EAttribute)eventEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvent_Code()
+ {
+ return (EAttribute)eventEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCommand()
+ {
+ return commandEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCommand_Name()
+ {
+ return (EAttribute)commandEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCommand_Code()
+ {
+ return (EAttribute)commandEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getState()
+ {
+ return stateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getState_Name()
+ {
+ return (EAttribute)stateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getState_Actions()
+ {
+ return (EReference)stateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getState_Transitions()
+ {
+ return (EReference)stateEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTransition()
+ {
+ return transitionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransition_Event()
+ {
+ return (EReference)transitionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransition_State()
+ {
+ return (EReference)transitionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StatemachineFactory getStatemachineFactory()
+ {
+ return (StatemachineFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ statemachineEClass = createEClass(STATEMACHINE);
+ createEReference(statemachineEClass, STATEMACHINE__EVENTS);
+ createEReference(statemachineEClass, STATEMACHINE__RESET_EVENTS);
+ createEReference(statemachineEClass, STATEMACHINE__COMMANDS);
+ createEReference(statemachineEClass, STATEMACHINE__STATES);
+
+ eventEClass = createEClass(EVENT);
+ createEAttribute(eventEClass, EVENT__NAME);
+ createEAttribute(eventEClass, EVENT__CODE);
+
+ commandEClass = createEClass(COMMAND);
+ createEAttribute(commandEClass, COMMAND__NAME);
+ createEAttribute(commandEClass, COMMAND__CODE);
+
+ stateEClass = createEClass(STATE);
+ createEAttribute(stateEClass, STATE__NAME);
+ createEReference(stateEClass, STATE__ACTIONS);
+ createEReference(stateEClass, STATE__TRANSITIONS);
+
+ transitionEClass = createEClass(TRANSITION);
+ createEReference(transitionEClass, TRANSITION__EVENT);
+ createEReference(transitionEClass, TRANSITION__STATE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(statemachineEClass, Statemachine.class, "Statemachine", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getStatemachine_Events(), this.getEvent(), null, "events", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getStatemachine_ResetEvents(), this.getEvent(), null, "resetEvents", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getStatemachine_Commands(), this.getCommand(), null, "commands", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getStatemachine_States(), this.getState(), null, "states", null, 0, -1, Statemachine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(eventEClass, Event.class, "Event", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getEvent_Name(), ecorePackage.getEString(), "name", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvent_Code(), ecorePackage.getEString(), "code", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(commandEClass, Command.class, "Command", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCommand_Name(), ecorePackage.getEString(), "name", null, 0, 1, Command.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCommand_Code(), ecorePackage.getEString(), "code", null, 0, 1, Command.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(stateEClass, State.class, "State", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getState_Name(), ecorePackage.getEString(), "name", null, 0, 1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getState_Actions(), this.getCommand(), null, "actions", null, 0, -1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getState_Transitions(), this.getTransition(), null, "transitions", null, 0, -1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(transitionEClass, Transition.class, "Transition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTransition_Event(), this.getEvent(), null, "event", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTransition_State(), this.getState(), null, "state", null, 0, 1, Transition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //StatemachinePackageImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/TransitionImpl.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/TransitionImpl.java
new file mode 100644
index 000000000..3b130fa0c
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/impl/TransitionImpl.java
@@ -0,0 +1,242 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl;
+
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage;
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Transition;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Transition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.TransitionImpl#getEvent <em>Event</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.impl.TransitionImpl#getState <em>State</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TransitionImpl extends MinimalEObjectImpl.Container implements Transition
+{
+ /**
+ * The cached value of the '{@link #getEvent() <em>Event</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEvent()
+ * @generated
+ * @ordered
+ */
+ protected Event event;
+
+ /**
+ * The cached value of the '{@link #getState() <em>State</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getState()
+ * @generated
+ * @ordered
+ */
+ protected State state;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TransitionImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return StatemachinePackage.Literals.TRANSITION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Event getEvent()
+ {
+ if (event != null && event.eIsProxy())
+ {
+ InternalEObject oldEvent = (InternalEObject)event;
+ event = (Event)eResolveProxy(oldEvent);
+ if (event != oldEvent)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, StatemachinePackage.TRANSITION__EVENT, oldEvent, event));
+ }
+ }
+ return event;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Event basicGetEvent()
+ {
+ return event;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEvent(Event newEvent)
+ {
+ Event oldEvent = event;
+ event = newEvent;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.TRANSITION__EVENT, oldEvent, event));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State getState()
+ {
+ if (state != null && state.eIsProxy())
+ {
+ InternalEObject oldState = (InternalEObject)state;
+ state = (State)eResolveProxy(oldState);
+ if (state != oldState)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, StatemachinePackage.TRANSITION__STATE, oldState, state));
+ }
+ }
+ return state;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State basicGetState()
+ {
+ return state;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setState(State newState)
+ {
+ State oldState = state;
+ state = newState;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StatemachinePackage.TRANSITION__STATE, oldState, state));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.TRANSITION__EVENT:
+ if (resolve) return getEvent();
+ return basicGetEvent();
+ case StatemachinePackage.TRANSITION__STATE:
+ if (resolve) return getState();
+ return basicGetState();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.TRANSITION__EVENT:
+ setEvent((Event)newValue);
+ return;
+ case StatemachinePackage.TRANSITION__STATE:
+ setState((State)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.TRANSITION__EVENT:
+ setEvent((Event)null);
+ return;
+ case StatemachinePackage.TRANSITION__STATE:
+ setState((State)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case StatemachinePackage.TRANSITION__EVENT:
+ return event != null;
+ case StatemachinePackage.TRANSITION__STATE:
+ return state != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //TransitionImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/util/StatemachineAdapterFactory.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/util/StatemachineAdapterFactory.java
new file mode 100644
index 000000000..ac8219a7a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/util/StatemachineAdapterFactory.java
@@ -0,0 +1,215 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.util;
+
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.*;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage
+ * @generated
+ */
+public class StatemachineAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static StatemachinePackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StatemachineAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = StatemachinePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object)
+ {
+ if (object == modelPackage)
+ {
+ return true;
+ }
+ if (object instanceof EObject)
+ {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StatemachineSwitch<Adapter> modelSwitch =
+ new StatemachineSwitch<Adapter>()
+ {
+ @Override
+ public Adapter caseStatemachine(Statemachine object)
+ {
+ return createStatemachineAdapter();
+ }
+ @Override
+ public Adapter caseEvent(Event object)
+ {
+ return createEventAdapter();
+ }
+ @Override
+ public Adapter caseCommand(Command object)
+ {
+ return createCommandAdapter();
+ }
+ @Override
+ public Adapter caseState(State object)
+ {
+ return createStateAdapter();
+ }
+ @Override
+ public Adapter caseTransition(Transition object)
+ {
+ return createTransitionAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object)
+ {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target)
+ {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine <em>Statemachine</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Statemachine
+ * @generated
+ */
+ public Adapter createStatemachineAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event <em>Event</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Event
+ * @generated
+ */
+ public Adapter createEventAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command <em>Command</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Command
+ * @generated
+ */
+ public Adapter createCommandAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State <em>State</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.State
+ * @generated
+ */
+ public Adapter createStateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Transition <em>Transition</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.Transition
+ * @generated
+ */
+ public Adapter createTransitionAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter()
+ {
+ return null;
+ }
+
+} //StatemachineAdapterFactory
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/util/StatemachineSwitch.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/util/StatemachineSwitch.java
new file mode 100644
index 000000000..435a2b84f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/statemachine/util/StatemachineSwitch.java
@@ -0,0 +1,214 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.util;
+
+import org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage
+ * @generated
+ */
+public class StatemachineSwitch<T> extends Switch<T>
+{
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static StatemachinePackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StatemachineSwitch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = StatemachinePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage)
+ {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject)
+ {
+ switch (classifierID)
+ {
+ case StatemachinePackage.STATEMACHINE:
+ {
+ Statemachine statemachine = (Statemachine)theEObject;
+ T result = caseStatemachine(statemachine);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StatemachinePackage.EVENT:
+ {
+ Event event = (Event)theEObject;
+ T result = caseEvent(event);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StatemachinePackage.COMMAND:
+ {
+ Command command = (Command)theEObject;
+ T result = caseCommand(command);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StatemachinePackage.STATE:
+ {
+ State state = (State)theEObject;
+ T result = caseState(state);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case StatemachinePackage.TRANSITION:
+ {
+ Transition transition = (Transition)theEObject;
+ T result = caseTransition(transition);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Statemachine</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Statemachine</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStatemachine(Statemachine object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Event</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Event</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEvent(Event object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Command</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Command</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCommand(Command object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>State</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>State</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseState(State object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Transition</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Transition</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTransition(Transition object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object)
+ {
+ return null;
+ }
+
+} //StatemachineSwitch
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/validation/AbstractStatemachineJavaValidator.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/validation/AbstractStatemachineJavaValidator.java
new file mode 100644
index 000000000..b44493877
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src-gen/org/eclipse/emf/parsley/examples/fowlerdsl/validation/AbstractStatemachineJavaValidator.java
@@ -0,0 +1,18 @@
+package org.eclipse.emf.parsley.examples.fowlerdsl.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
+
+public class AbstractStatemachineJavaValidator extends AbstractDeclarativeValidator {
+
+ @Override
+ protected List<EPackage> getEPackages() {
+ List<EPackage> result = new ArrayList<EPackage>();
+ result.add(org.eclipse.emf.parsley.examples.fowlerdsl.statemachine.StatemachinePackage.eINSTANCE);
+ return result;
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/GenerateStatemachine.mwe2 b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/GenerateStatemachine.mwe2
new file mode 100644
index 000000000..dc704b96f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/GenerateStatemachine.mwe2
@@ -0,0 +1,138 @@
+module org.eclipse.emf.parsley.examples.fowlerdsl.GenerateStatemachine
+
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.xtext.generator.*
+import org.eclipse.xtext.ui.generator.*
+
+var grammarURI = "classpath:/org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.xtext"
+var file.extensions = "statemachine"
+var projectName = "org.eclipse.emf.parsley.examples.fowlerdsl"
+var runtimeProject = "../${projectName}"
+
+Workflow {
+ bean = StandaloneSetup {
+ scanClassPath = true
+ platformUri = "${runtimeProject}/.."
+ // The following two lines can be removed, if Xbase is not used.
+ registerGeneratedEPackage = "org.eclipse.xtext.xbase.XbasePackage"
+ registerGenModelFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel"
+ }
+
+ component = DirectoryCleaner {
+ directory = "${runtimeProject}/src-gen"
+ }
+
+ component = DirectoryCleaner {
+ directory = "${runtimeProject}.ui/src-gen"
+ }
+
+ component = Generator {
+ pathRtProject = runtimeProject
+ pathUiProject = "${runtimeProject}.ui"
+ pathTestProject = "${runtimeProject}.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.ImportNamespacesScopingFragment {}
+ 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
+ }
+
+ }
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.xtext b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.xtext
new file mode 100644
index 000000000..615c28444
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/Statemachine.xtext
@@ -0,0 +1,36 @@
+grammar org.eclipse.emf.parsley.examples.fowlerdsl.Statemachine with org.eclipse.xtext.common.Terminals
+
+generate statemachine "http://www.eclipse.org/emf/parsley/examples/fowlerdsl/Statemachine"
+
+Statemachine :
+ {Statemachine}
+ ('events'
+ events+=Event+
+ 'end')?
+ ('resetEvents'
+ resetEvents+=[Event]+
+ 'end')?
+ ('commands'
+ commands+=Command+
+ 'end')?
+ states+=State*
+;
+
+Event:
+ name=ID code=ID
+;
+
+Command:
+ name=ID code=ID
+;
+
+State:
+ 'state' name=ID
+ ('actions' '{' actions+=[Command]+ '}')?
+ transitions+=Transition*
+ 'end'
+;
+
+Transition:
+ event=[Event] '=>' state=[State]
+;
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/StatemachineRuntimeModule.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/StatemachineRuntimeModule.java
new file mode 100644
index 000000000..7c2cadb48
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/StatemachineRuntimeModule.java
@@ -0,0 +1,11 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl;
+
+/**
+ * Use this class to register components to be used at runtime / without the Equinox extension registry.
+ */
+public class StatemachineRuntimeModule extends org.eclipse.emf.parsley.examples.fowlerdsl.AbstractStatemachineRuntimeModule {
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/StatemachineStandaloneSetup.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/StatemachineStandaloneSetup.java
new file mode 100644
index 000000000..f7feb9ef5
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/StatemachineStandaloneSetup.java
@@ -0,0 +1,16 @@
+
+package org.eclipse.emf.parsley.examples.fowlerdsl;
+
+import org.eclipse.emf.parsley.examples.fowlerdsl.StatemachineStandaloneSetupGenerated;
+
+/**
+ * Initialization support for running Xtext languages
+ * without equinox extension registry
+ */
+public class StatemachineStandaloneSetup extends StatemachineStandaloneSetupGenerated{
+
+ public static void doSetup() {
+ new StatemachineStandaloneSetup().createInjectorAndDoEMFRegistration();
+ }
+}
+
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/formatting/StatemachineFormatter.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/formatting/StatemachineFormatter.java
new file mode 100644
index 000000000..1ce47c064
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/formatting/StatemachineFormatter.java
@@ -0,0 +1,27 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.formatting;
+
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter;
+import org.eclipse.xtext.formatting.impl.FormattingConfig;
+
+/**
+ * This class contains custom formatting description.
+ *
+ * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#formatting
+ * on how and when to use it
+ *
+ * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
+ */
+public class StatemachineFormatter extends AbstractDeclarativeFormatter {
+
+ @Override
+ protected void configureFormatting(FormattingConfig c) {
+// It's usually a good idea to activate the following three statements.
+// They will add and preserve newlines around comments
+// c.setLinewrap(0, 1, 2).before(getGrammarAccess().getSL_COMMENTRule());
+// c.setLinewrap(0, 1, 2).before(getGrammarAccess().getML_COMMENTRule());
+// c.setLinewrap(0, 1, 1).after(getGrammarAccess().getML_COMMENTRule());
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/generator/StatemachineGenerator.xtend b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/generator/StatemachineGenerator.xtend
new file mode 100644
index 000000000..5d4046250
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/generator/StatemachineGenerator.xtend
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.generator
+
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.xtext.generator.IGenerator
+import org.eclipse.xtext.generator.IFileSystemAccess
+
+class StatemachineGenerator implements IGenerator {
+
+ override void doGenerate(Resource resource, IFileSystemAccess fsa) {
+ //TODO implement me
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/scoping/StatemachineScopeProvider.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/scoping/StatemachineScopeProvider.java
new file mode 100644
index 000000000..75194c907
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/scoping/StatemachineScopeProvider.java
@@ -0,0 +1,17 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.scoping;
+
+import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider;
+
+/**
+ * This class contains custom scoping description.
+ *
+ * see : http://www.eclipse.org/Xtext/documentation/latest/xtext.html#scoping
+ * on how and when to use it
+ *
+ */
+public class StatemachineScopeProvider extends AbstractDeclarativeScopeProvider {
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/validation/StatemachineJavaValidator.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/validation/StatemachineJavaValidator.java
new file mode 100644
index 000000000..379356ce0
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/src/org/eclipse/emf/parsley/examples/fowlerdsl/validation/StatemachineJavaValidator.java
@@ -0,0 +1,15 @@
+package org.eclipse.emf.parsley.examples.fowlerdsl.validation;
+
+import org.eclipse.emf.parsley.examples.fowlerdsl.validation.AbstractStatemachineJavaValidator;
+
+
+public class StatemachineJavaValidator extends AbstractStatemachineJavaValidator {
+
+// @Check
+// public void checkGreetingStartsWithCapital(Greeting greeting) {
+// if (!Character.isUpperCase(greeting.getName().charAt(0))) {
+// warning("Name should start with a capital", MyDslPackage.Literals.GREETING__NAME);
+// }
+// }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.fowlerdsl/xtend-gen/org/eclipse/emf/parsley/examples/fowlerdsl/generator/StatemachineGenerator.java b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/xtend-gen/org/eclipse/emf/parsley/examples/fowlerdsl/generator/StatemachineGenerator.java
new file mode 100644
index 000000000..667c66126
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.fowlerdsl/xtend-gen/org/eclipse/emf/parsley/examples/fowlerdsl/generator/StatemachineGenerator.java
@@ -0,0 +1,14 @@
+/**
+ * generated by Xtext
+ */
+package org.eclipse.emf.parsley.examples.fowlerdsl.generator;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.xtext.generator.IFileSystemAccess;
+import org.eclipse.xtext.generator.IGenerator;
+
+@SuppressWarnings("all")
+public class StatemachineGenerator implements IGenerator {
+ public void doGenerate(final Resource resource, final IFileSystemAccess fsa) {
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/.classpath b/examples/org.eclipse.emf.parsley.examples.library.edit/.classpath
new file mode 100644
index 000000000..304e86186
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/.project b/examples/org.eclipse.emf.parsley.examples.library.edit/.project
new file mode 100644
index 000000000..8803bf710
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.library.edit</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.parsley.examples.library.edit/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..d29b0f382
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Wed Nov 08 10:51:59 EST 2006
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.parsley.examples.library.edit/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.parsley.examples.library.edit/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..c90a6b688
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.parsley.examples.library.edit;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.emf.parsley.examples.library.provider.EXTLibraryEditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.parsley.examples.library.provider
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.emf.parsley.examples.library;visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="2.7.0";visibility:=reexport
+Eclipse-LazyStart: true
+Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/about.html b/examples/org.eclipse.emf.parsley.examples.library.edit/about.html
new file mode 100644
index 000000000..1b8f94080
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/build.properties b/examples/org.eclipse.emf.parsley.examples.library.edit/build.properties
new file mode 100644
index 000000000..ca45351e6
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/build.properties
@@ -0,0 +1,9 @@
+bin.includes = icons/,\
+ .,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_borrowers_Borrower.gif b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_borrowers_Borrower.gif
new file mode 100644
index 000000000..6b4e4321e
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_borrowers_Borrower.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_branches_Library.gif b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_branches_Library.gif
new file mode 100644
index 000000000..883ce93b4
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_branches_Library.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_employees_Employee.gif b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_employees_Employee.gif
new file mode 100644
index 000000000..5b7808087
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_employees_Employee.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_Book.gif b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_Book.gif
new file mode 100644
index 000000000..9073955a8
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_Book.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_BookOnTape.gif b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_BookOnTape.gif
new file mode 100644
index 000000000..5d5000a7f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_BookOnTape.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_VideoCassette.gif b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_VideoCassette.gif
new file mode 100644
index 000000000..cca8aec82
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_stock_VideoCassette.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_writers_Writer.gif b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_writers_Writer.gif
new file mode 100644
index 000000000..564bdbd77
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/ctool16/CreateLibrary_writers_Writer.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Book.gif b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Book.gif
new file mode 100644
index 000000000..c3370c7dd
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Book.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/BookOnTape.gif b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/BookOnTape.gif
new file mode 100644
index 000000000..cb1755a71
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/BookOnTape.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Borrower.gif b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Borrower.gif
new file mode 100644
index 000000000..10d222998
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Borrower.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/CirculatingItem.gif b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/CirculatingItem.gif
new file mode 100644
index 000000000..c3370c7dd
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/CirculatingItem.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Employee.gif b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Employee.gif
new file mode 100644
index 000000000..1e5345fb3
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Employee.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Library.gif b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Library.gif
new file mode 100644
index 000000000..739ebbfa6
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Library.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Person.gif b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Person.gif
new file mode 100644
index 000000000..ea58a657d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Person.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/VideoCassette.gif b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/VideoCassette.gif
new file mode 100644
index 000000000..9250fecbf
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/VideoCassette.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Writer.gif b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Writer.gif
new file mode 100644
index 000000000..ef56c1408
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/Writer.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/custom_book.png b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/custom_book.png
new file mode 100644
index 000000000..8f80cd4ba
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/icons/full/obj16/custom_book.png
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/plugin.properties b/examples/org.eclipse.emf.parsley.examples.library.edit/plugin.properties
new file mode 100644
index 000000000..9583814ab
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/plugin.properties
@@ -0,0 +1,85 @@
+# /**
+# * <copyright>
+# *
+# * Copyright (c) 2002-2008 IBM Corporation and others.
+# * 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:
+# * IBM - Initial API and implementation
+# *
+# * </copyright>
+# *
+# * $Id: plugin.properties,v 1.4 2009/04/07 18:58:52 davidms Exp $
+# */
+
+# NLS_MESSAGEFORMAT_VAR
+
+pluginName = EMF Extended Library Edit Example
+providerName = Eclipse Modeling Project
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_Book_type = Book
+_UI_Library_type = Library
+_UI_Writer_type = Writer
+_UI_Item_type = Item
+_UI_Lendable_type = Lendable
+_UI_CirculatingItem_type = Circulating Item
+_UI_Periodical_type = Periodical
+_UI_AudioVisualItem_type = Audio Visual Item
+_UI_BookOnTape_type = Book On Tape
+_UI_VideoCassette_type = Video Cassette
+_UI_Borrower_type = Borrower
+_UI_Person_type = Person
+_UI_Employee_type = Employee
+_UI_Addressable_type = Addressable
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_Book_title_feature = Title
+_UI_Book_pages_feature = Pages
+_UI_Book_category_feature = Category
+_UI_Book_author_feature = Author
+_UI_Library_name_feature = Name
+_UI_Library_writers_feature = Writers
+_UI_Library_employees_feature = Employees
+_UI_Library_borrowers_feature = Borrowers
+_UI_Library_stock_feature = Stock
+_UI_Library_books_feature = Books
+_UI_Library_branches_feature = Branches
+_UI_Library_parentBranch_feature = Parent Branch
+_UI_Library_people_feature = People
+_UI_Writer_name_feature = Name
+_UI_Writer_books_feature = Books
+_UI_Item_publicationDate_feature = Publication Date
+_UI_Lendable_copies_feature = Copies
+_UI_Lendable_borrowers_feature = Borrowers
+_UI_Periodical_title_feature = Title
+_UI_Periodical_issuesPerYear_feature = Issues Per Year
+_UI_AudioVisualItem_title_feature = Title
+_UI_AudioVisualItem_minutesLength_feature = Minutes Length
+_UI_AudioVisualItem_damaged_feature = Damaged
+_UI_BookOnTape_reader_feature = Reader
+_UI_BookOnTape_author_feature = Author
+_UI_VideoCassette_cast_feature = Cast
+_UI_Borrower_borrowed_feature = Borrowed
+_UI_Person_firstName_feature = First Name
+_UI_Person_lastName_feature = Last Name
+_UI_Employee_manager_feature = Manager
+_UI_Addressable_address_feature = Address
+_UI_Unknown_feature = Unspecified
+
+_UI_BookCategory_Mystery_literal = Mystery
+_UI_BookCategory_ScienceFiction_literal = ScienceFiction
+_UI_BookCategory_Biography_literal = Biography
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/plugin.xml b/examples/org.eclipse.emf.parsley.examples.library.edit/plugin.xml
new file mode 100644
index 000000000..8cc4709dc
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/plugin.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <factory
+ uri="http:///org/eclipse/emf/parsley/examples/library/extlibrary.ecore/0.1.0"
+ class="org.eclipse.emf.parsley.examples.library.provider.EXTLibraryItemProviderAdapterFactory"
+ supportedTypes=
+ "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+ org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+ org.eclipse.emf.edit.provider.ITreeItemContentProvider
+ org.eclipse.emf.edit.provider.IItemLabelProvider
+ org.eclipse.emf.edit.provider.IItemPropertySource"/>
+ </extension>
+
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/AudioVisualItemItemProvider.java b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/AudioVisualItemItemProvider.java
new file mode 100644
index 000000000..158d09ccb
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/AudioVisualItemItemProvider.java
@@ -0,0 +1,206 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: AudioVisualItemItemProvider.java,v 1.5 2008/02/20 22:12:53 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.provider;
+
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.emf.parsley.examples.library.AudioVisualItem;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.parsley.examples.library.AudioVisualItem} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AudioVisualItemItemProvider
+ extends CirculatingItemItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AudioVisualItemItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addTitlePropertyDescriptor(object);
+ addMinutesLengthPropertyDescriptor(object);
+ addDamagedPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Title feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTitlePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_AudioVisualItem_title_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_AudioVisualItem_title_feature", "_UI_AudioVisualItem_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.AUDIO_VISUAL_ITEM__TITLE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Minutes Length feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addMinutesLengthPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_AudioVisualItem_minutesLength_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_AudioVisualItem_minutesLength_feature", "_UI_AudioVisualItem_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.AUDIO_VISUAL_ITEM__MINUTES_LENGTH,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Damaged feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDamagedPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_AudioVisualItem_damaged_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_AudioVisualItem_damaged_feature", "_UI_AudioVisualItem_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.AUDIO_VISUAL_ITEM__DAMAGED,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((AudioVisualItem)object).getTitle();
+ return label == null || label.length() == 0 ?
+ getString("_UI_AudioVisualItem_type") : //$NON-NLS-1$
+ getString("_UI_AudioVisualItem_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(AudioVisualItem.class))
+ {
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__TITLE:
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__MINUTES_LENGTH:
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__DAMAGED:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/BookItemProvider.java b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/BookItemProvider.java
new file mode 100644
index 000000000..38dc8298e
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/BookItemProvider.java
@@ -0,0 +1,242 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: BookItemProvider.java,v 1.7 2008/02/20 22:12:53 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.provider;
+
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.parsley.examples.library.Book} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BookItemProvider
+ extends CirculatingItemItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BookItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addTitlePropertyDescriptor(object);
+ addPagesPropertyDescriptor(object);
+ addCategoryPropertyDescriptor(object);
+ addAuthorPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Title feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTitlePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Book_title_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Book_title_feature", "_UI_Book_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.BOOK__TITLE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Pages feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addPagesPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Book_pages_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Book_pages_feature", "_UI_Book_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.BOOK__PAGES,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Category feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addCategoryPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Book_category_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Book_category_feature", "_UI_Book_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.BOOK__CATEGORY,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Author feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAuthorPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Book_author_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Book_author_feature", "_UI_Book_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.BOOK__AUTHOR,
+ true,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns Book.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/custom_book.png")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((Book)object).getTitle();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Book_type") : //$NON-NLS-1$
+ getString("_UI_Book_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Book.class))
+ {
+ case EXTLibraryPackage.BOOK__TITLE:
+ case EXTLibraryPackage.BOOK__PAGES:
+ case EXTLibraryPackage.BOOK__CATEGORY:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/BookOnTapeItemProvider.java b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/BookOnTapeItemProvider.java
new file mode 100644
index 000000000..790a147ea
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/BookOnTapeItemProvider.java
@@ -0,0 +1,183 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: BookOnTapeItemProvider.java,v 1.7 2008/02/20 22:12:53 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.provider;
+
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.parsley.examples.library.BookOnTape;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.parsley.examples.library.BookOnTape} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BookOnTapeItemProvider
+ extends AudioVisualItemItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BookOnTapeItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addReaderPropertyDescriptor(object);
+ addAuthorPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Reader feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addReaderPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_BookOnTape_reader_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_BookOnTape_reader_feature", "_UI_BookOnTape_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.BOOK_ON_TAPE__READER,
+ true,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Author feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAuthorPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_BookOnTape_author_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_BookOnTape_author_feature", "_UI_BookOnTape_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.BOOK_ON_TAPE__AUTHOR,
+ true,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns BookOnTape.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/BookOnTape")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((BookOnTape)object).getTitle();
+ return label == null || label.length() == 0 ?
+ getString("_UI_BookOnTape_type") : //$NON-NLS-1$
+ getString("_UI_BookOnTape_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/BorrowerItemProvider.java b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/BorrowerItemProvider.java
new file mode 100644
index 000000000..0dc8832ca
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/BorrowerItemProvider.java
@@ -0,0 +1,159 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: BorrowerItemProvider.java,v 1.7 2008/02/20 22:12:53 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.provider;
+
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.parsley.examples.library.Borrower;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.parsley.examples.library.Borrower} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BorrowerItemProvider
+ extends PersonItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BorrowerItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addBorrowedPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Borrowed feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addBorrowedPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Borrower_borrowed_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Borrower_borrowed_feature", "_UI_Borrower_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.BORROWER__BORROWED,
+ true,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns Borrower.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Borrower")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((Borrower)object).getLastName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Borrower_type") : //$NON-NLS-1$
+ getString("_UI_Borrower_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/CirculatingItemItemProvider.java b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/CirculatingItemItemProvider.java
new file mode 100644
index 000000000..00ea47f0a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/CirculatingItemItemProvider.java
@@ -0,0 +1,194 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: CirculatingItemItemProvider.java,v 1.7 2008/02/20 22:12:53 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.provider;
+
+
+
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.emf.parsley.examples.library.CirculatingItem;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.parsley.examples.library.CirculatingItem} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CirculatingItemItemProvider
+ extends ItemItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CirculatingItemItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addCopiesPropertyDescriptor(object);
+ addBorrowersPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Copies feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addCopiesPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Lendable_copies_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Lendable_copies_feature", "_UI_Lendable_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.LENDABLE__COPIES,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Borrowers feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addBorrowersPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Lendable_borrowers_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Lendable_borrowers_feature", "_UI_Lendable_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.LENDABLE__BORROWERS,
+ true,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns CirculatingItem.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CirculatingItem")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ Date labelValue = ((CirculatingItem)object).getPublicationDate();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CirculatingItem_type") : //$NON-NLS-1$
+ getString("_UI_CirculatingItem_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(CirculatingItem.class))
+ {
+ case EXTLibraryPackage.CIRCULATING_ITEM__COPIES:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/EXTLibraryEditPlugin.java b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/EXTLibraryEditPlugin.java
new file mode 100644
index 000000000..742c6322b
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/EXTLibraryEditPlugin.java
@@ -0,0 +1,110 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: EXTLibraryEditPlugin.java,v 1.3 2006/12/29 18:27:35 marcelop Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the EXTLibrary edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class EXTLibraryEditPlugin extends EMFPlugin
+{
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EXTLibraryEditPlugin INSTANCE = new EXTLibraryEditPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibraryEditPlugin()
+ {
+ super
+ (new ResourceLocator []
+ {
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator()
+ {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin()
+ {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipsePlugin
+ {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation()
+ {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/EXTLibraryItemProviderAdapterFactory.java b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/EXTLibraryItemProviderAdapterFactory.java
new file mode 100644
index 000000000..85425cf97
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/EXTLibraryItemProviderAdapterFactory.java
@@ -0,0 +1,412 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: EXTLibraryItemProviderAdapterFactory.java,v 1.4 2008/12/13 15:56:45 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.provider;
+
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.parsley.examples.library.util.EXTLibraryAdapterFactory;
+
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EXTLibraryItemProviderAdapterFactory extends EXTLibraryAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable
+{
+ /**
+ * This keeps track of the root adapter factory that delegates to this adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+ /**
+ * This constructs an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibraryItemProviderAdapterFactory()
+ {
+ supportedTypes.add(IEditingDomainItemProvider.class);
+ supportedTypes.add(IStructuredItemContentProvider.class);
+ supportedTypes.add(ITreeItemContentProvider.class);
+ supportedTypes.add(IItemLabelProvider.class);
+ supportedTypes.add(IItemPropertySource.class);
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.parsley.examples.library.Book} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BookItemProvider bookItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.parsley.examples.library.Book}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createBookAdapter()
+ {
+ if (bookItemProvider == null)
+ {
+ bookItemProvider = new BookItemProvider(this);
+ }
+
+ return bookItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.parsley.examples.library.Library} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LibraryItemProvider libraryItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.parsley.examples.library.Library}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createLibraryAdapter()
+ {
+ if (libraryItemProvider == null)
+ {
+ libraryItemProvider = new LibraryItemProvider(this);
+ }
+
+ return libraryItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.parsley.examples.library.Writer} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected WriterItemProvider writerItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.parsley.examples.library.Writer}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createWriterAdapter()
+ {
+ if (writerItemProvider == null)
+ {
+ writerItemProvider = new WriterItemProvider(this);
+ }
+
+ return writerItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.parsley.examples.library.BookOnTape} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BookOnTapeItemProvider bookOnTapeItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.parsley.examples.library.BookOnTape}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createBookOnTapeAdapter()
+ {
+ if (bookOnTapeItemProvider == null)
+ {
+ bookOnTapeItemProvider = new BookOnTapeItemProvider(this);
+ }
+
+ return bookOnTapeItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.parsley.examples.library.VideoCassette} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VideoCassetteItemProvider videoCassetteItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.parsley.examples.library.VideoCassette}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createVideoCassetteAdapter()
+ {
+ if (videoCassetteItemProvider == null)
+ {
+ videoCassetteItemProvider = new VideoCassetteItemProvider(this);
+ }
+
+ return videoCassetteItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.parsley.examples.library.Borrower} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BorrowerItemProvider borrowerItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.parsley.examples.library.Borrower}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createBorrowerAdapter()
+ {
+ if (borrowerItemProvider == null)
+ {
+ borrowerItemProvider = new BorrowerItemProvider(this);
+ }
+
+ return borrowerItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.parsley.examples.library.Person} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PersonItemProvider personItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.parsley.examples.library.Person}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPersonAdapter()
+ {
+ if (personItemProvider == null)
+ {
+ personItemProvider = new PersonItemProvider(this);
+ }
+
+ return personItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.parsley.examples.library.Employee} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EmployeeItemProvider employeeItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.parsley.examples.library.Employee}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createEmployeeAdapter()
+ {
+ if (employeeItemProvider == null)
+ {
+ employeeItemProvider = new EmployeeItemProvider(this);
+ }
+
+ return employeeItemProvider;
+ }
+
+ /**
+ * This returns the root adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComposeableAdapterFactory getRootAdapterFactory()
+ {
+ return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+ }
+
+ /**
+ * This sets the composed adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory)
+ {
+ this.parentAdapterFactory = parentAdapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type)
+ {
+ return supportedTypes.contains(type) || super.isFactoryForType(type);
+ }
+
+ /**
+ * This implementation substitutes the factory itself as the key for the adapter.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter adapt(Notifier notifier, Object type)
+ {
+ return super.adapt(notifier, this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object adapt(Object object, Object type)
+ {
+ if (isFactoryForType(type))
+ {
+ Object adapter = super.adapt(object, type);
+ if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter)))
+ {
+ return adapter;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * This adds a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addListener(INotifyChangedListener notifyChangedListener)
+ {
+ changeNotifier.addListener(notifyChangedListener);
+ }
+
+ /**
+ * This removes a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeListener(INotifyChangedListener notifyChangedListener)
+ {
+ changeNotifier.removeListener(notifyChangedListener);
+ }
+
+ /**
+ * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void fireNotifyChanged(Notification notification)
+ {
+ changeNotifier.fireNotifyChanged(notification);
+
+ if (parentAdapterFactory != null)
+ {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ }
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void dispose()
+ {
+ if (bookItemProvider != null) bookItemProvider.dispose();
+ if (libraryItemProvider != null) libraryItemProvider.dispose();
+ if (writerItemProvider != null) writerItemProvider.dispose();
+ if (bookOnTapeItemProvider != null) bookOnTapeItemProvider.dispose();
+ if (videoCassetteItemProvider != null) videoCassetteItemProvider.dispose();
+ if (borrowerItemProvider != null) borrowerItemProvider.dispose();
+ if (personItemProvider != null) personItemProvider.dispose();
+ if (employeeItemProvider != null) employeeItemProvider.dispose();
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/EmployeeItemProvider.java b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/EmployeeItemProvider.java
new file mode 100644
index 000000000..4f9c402d7
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/EmployeeItemProvider.java
@@ -0,0 +1,159 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: EmployeeItemProvider.java,v 1.7 2008/02/20 22:12:53 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.provider;
+
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Employee;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.parsley.examples.library.Employee} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EmployeeItemProvider
+ extends PersonItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EmployeeItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addManagerPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Manager feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addManagerPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Employee_manager_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Employee_manager_feature", "_UI_Employee_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.EMPLOYEE__MANAGER,
+ true,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns Employee.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Employee")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((Employee)object).getLastName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Employee_type") : //$NON-NLS-1$
+ getString("_UI_Employee_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/ItemItemProvider.java b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/ItemItemProvider.java
new file mode 100644
index 000000000..33f56f38b
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/ItemItemProvider.java
@@ -0,0 +1,173 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: ItemItemProvider.java,v 1.5 2007/03/22 02:02:43 davidms Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.provider;
+
+
+
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Item;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.parsley.examples.library.Item} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ItemItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ItemItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addPublicationDatePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Publication Date feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addPublicationDatePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Item_publicationDate_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Item_publicationDate_feature", "_UI_Item_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.ITEM__PUBLICATION_DATE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ Date labelValue = ((Item)object).getPublicationDate();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Item_type") : //$NON-NLS-1$
+ getString("_UI_Item_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Item.class))
+ {
+ case EXTLibraryPackage.ITEM__PUBLICATION_DATE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return EXTLibraryEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/LibraryItemProvider.java b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/LibraryItemProvider.java
new file mode 100644
index 000000000..f47be3fb0
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/LibraryItemProvider.java
@@ -0,0 +1,314 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: LibraryItemProvider.java,v 1.6 2007/03/22 02:02:43 davidms Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.provider;
+
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryFactory;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Library;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.parsley.examples.library.Library} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class LibraryItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LibraryItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addAddressPropertyDescriptor(object);
+ addNamePropertyDescriptor(object);
+ addBooksPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Address feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAddressPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Addressable_address_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Addressable_address_feature", "_UI_Addressable_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.ADDRESSABLE__ADDRESS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Library_name_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Library_name_feature", "_UI_Library_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.LIBRARY__NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Books feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addBooksPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Library_books_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Library_books_feature", "_UI_Library_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.LIBRARY__BOOKS,
+ false,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
+ {
+ if (childrenFeatures == null)
+ {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(EXTLibraryPackage.Literals.LIBRARY__WRITERS);
+ childrenFeatures.add(EXTLibraryPackage.Literals.LIBRARY__EMPLOYEES);
+ childrenFeatures.add(EXTLibraryPackage.Literals.LIBRARY__BORROWERS);
+ childrenFeatures.add(EXTLibraryPackage.Literals.LIBRARY__STOCK);
+ childrenFeatures.add(EXTLibraryPackage.Literals.LIBRARY__BRANCHES);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child)
+ {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns Library.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Library")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((Library)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Library_type") : //$NON-NLS-1$
+ getString("_UI_Library_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Library.class))
+ {
+ case EXTLibraryPackage.LIBRARY__ADDRESS:
+ case EXTLibraryPackage.LIBRARY__NAME:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case EXTLibraryPackage.LIBRARY__WRITERS:
+ case EXTLibraryPackage.LIBRARY__EMPLOYEES:
+ case EXTLibraryPackage.LIBRARY__BORROWERS:
+ case EXTLibraryPackage.LIBRARY__STOCK:
+ case EXTLibraryPackage.LIBRARY__BRANCHES:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (EXTLibraryPackage.Literals.LIBRARY__WRITERS,
+ EXTLibraryFactory.eINSTANCE.createWriter()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (EXTLibraryPackage.Literals.LIBRARY__EMPLOYEES,
+ EXTLibraryFactory.eINSTANCE.createEmployee()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (EXTLibraryPackage.Literals.LIBRARY__BORROWERS,
+ EXTLibraryFactory.eINSTANCE.createBorrower()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (EXTLibraryPackage.Literals.LIBRARY__STOCK,
+ EXTLibraryFactory.eINSTANCE.createBook()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (EXTLibraryPackage.Literals.LIBRARY__STOCK,
+ EXTLibraryFactory.eINSTANCE.createBookOnTape()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (EXTLibraryPackage.Literals.LIBRARY__STOCK,
+ EXTLibraryFactory.eINSTANCE.createVideoCassette()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (EXTLibraryPackage.Literals.LIBRARY__BRANCHES,
+ EXTLibraryFactory.eINSTANCE.createLibrary()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return EXTLibraryEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/PeriodicalItemProvider.java b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/PeriodicalItemProvider.java
new file mode 100644
index 000000000..771fe6a81
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/PeriodicalItemProvider.java
@@ -0,0 +1,181 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: PeriodicalItemProvider.java,v 1.6 2008/02/20 22:12:53 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.provider;
+
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Periodical;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.parsley.examples.library.Periodical} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PeriodicalItemProvider
+ extends ItemItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PeriodicalItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addTitlePropertyDescriptor(object);
+ addIssuesPerYearPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Title feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTitlePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Periodical_title_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Periodical_title_feature", "_UI_Periodical_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.PERIODICAL__TITLE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Issues Per Year feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addIssuesPerYearPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Periodical_issuesPerYear_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Periodical_issuesPerYear_feature", "_UI_Periodical_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.PERIODICAL__ISSUES_PER_YEAR,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((Periodical)object).getTitle();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Periodical_type") : //$NON-NLS-1$
+ getString("_UI_Periodical_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Periodical.class))
+ {
+ case EXTLibraryPackage.PERIODICAL__TITLE:
+ case EXTLibraryPackage.PERIODICAL__ISSUES_PER_YEAR:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/PersonItemProvider.java b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/PersonItemProvider.java
new file mode 100644
index 000000000..d398c4e7a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/PersonItemProvider.java
@@ -0,0 +1,233 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: PersonItemProvider.java,v 1.6 2007/03/22 02:02:42 davidms Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.provider;
+
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Person;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.parsley.examples.library.Person} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PersonItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PersonItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addAddressPropertyDescriptor(object);
+ addFirstNamePropertyDescriptor(object);
+ addLastNamePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Address feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addAddressPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Addressable_address_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Addressable_address_feature", "_UI_Addressable_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.ADDRESSABLE__ADDRESS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the First Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addFirstNamePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Person_firstName_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Person_firstName_feature", "_UI_Person_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.PERSON__FIRST_NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Last Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addLastNamePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Person_lastName_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Person_lastName_feature", "_UI_Person_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.PERSON__LAST_NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns Person.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Person")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((Person)object).getLastName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Person_type") : //$NON-NLS-1$
+ getString("_UI_Person_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Person.class))
+ {
+ case EXTLibraryPackage.PERSON__ADDRESS:
+ case EXTLibraryPackage.PERSON__FIRST_NAME:
+ case EXTLibraryPackage.PERSON__LAST_NAME:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return EXTLibraryEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/VideoCassetteItemProvider.java b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/VideoCassetteItemProvider.java
new file mode 100644
index 000000000..a3370cb8d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/VideoCassetteItemProvider.java
@@ -0,0 +1,159 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: VideoCassetteItemProvider.java,v 1.7 2008/02/20 22:12:53 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.provider;
+
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.VideoCassette;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.parsley.examples.library.VideoCassette} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class VideoCassetteItemProvider
+ extends AudioVisualItemItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VideoCassetteItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addCastPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Cast feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addCastPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_VideoCassette_cast_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_VideoCassette_cast_feature", "_UI_VideoCassette_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.VIDEO_CASSETTE__CAST,
+ true,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns VideoCassette.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/VideoCassette")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((VideoCassette)object).getTitle();
+ return label == null || label.length() == 0 ?
+ getString("_UI_VideoCassette_type") : //$NON-NLS-1$
+ getString("_UI_VideoCassette_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/WriterItemProvider.java b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/WriterItemProvider.java
new file mode 100644
index 000000000..ec6aee7d8
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.edit/src/org/eclipse/emf/parsley/examples/library/provider/WriterItemProvider.java
@@ -0,0 +1,192 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: WriterItemProvider.java,v 1.7 2008/02/20 22:12:53 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.provider;
+
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Writer;
+
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.parsley.examples.library.Writer} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class WriterItemProvider
+ extends PersonItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WriterItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addNamePropertyDescriptor(object);
+ addBooksPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Writer_name_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Writer_name_feature", "_UI_Writer_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.WRITER__NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Books feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addBooksPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Writer_books_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_Writer_books_feature", "_UI_Writer_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EXTLibraryPackage.Literals.WRITER__BOOKS,
+ true,
+ false,
+ false,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns Writer.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Writer")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((Writer)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Writer_type") : //$NON-NLS-1$
+ getString("_UI_Writer_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Writer.class))
+ {
+ case EXTLibraryPackage.WRITER__NAME:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/.classpath b/examples/org.eclipse.emf.parsley.examples.library.editor/.classpath
new file mode 100644
index 000000000..304e86186
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/.project b/examples/org.eclipse.emf.parsley.examples.library.editor/.project
new file mode 100644
index 000000000..1c70a992c
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.library.editor</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.parsley.examples.library.editor/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..d29b0f382
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Wed Nov 08 10:51:59 EST 2006
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.parsley.examples.library.editor/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.parsley.examples.library.editor/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..b0609306a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.parsley.examples.library.editor;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.emf.parsley.examples.library.presentation.EXTLibraryEditorPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.parsley.examples.library.presentation,
+ org.eclipse.emf.parsley.examples.library.presentation,
+ org.eclipse.emf.parsley.examples.library.actions
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.core.resources;bundle-version="3.5.0";visibility:=reexport,
+ org.eclipse.emf.parsley.examples.library.edit;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;bundle-version="2.7.0";visibility:=reexport,
+ org.eclipse.emf.edit.ui;bundle-version="2.7.0";visibility:=reexport,
+ org.eclipse.ui.ide;bundle-version="3.5.0";visibility:=reexport
+Eclipse-LazyStart: true
+Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/about.html b/examples/org.eclipse.emf.parsley.examples.library.editor/about.html
new file mode 100644
index 000000000..1b8f94080
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/build.properties b/examples/org.eclipse.emf.parsley.examples.library.editor/build.properties
new file mode 100644
index 000000000..ca45351e6
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/build.properties
@@ -0,0 +1,9 @@
+bin.includes = icons/,\
+ .,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/icons/full/obj16/EXTLibraryModelFile.gif b/examples/org.eclipse.emf.parsley.examples.library.editor/icons/full/obj16/EXTLibraryModelFile.gif
new file mode 100644
index 000000000..fa2168160
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/icons/full/obj16/EXTLibraryModelFile.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/icons/full/wizban/NewEXTLibrary.gif b/examples/org.eclipse.emf.parsley.examples.library.editor/icons/full/wizban/NewEXTLibrary.gif
new file mode 100644
index 000000000..0e69a72e1
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/icons/full/wizban/NewEXTLibrary.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/plugin.properties b/examples/org.eclipse.emf.parsley.examples.library.editor/plugin.properties
new file mode 100644
index 000000000..e66a1b52f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/plugin.properties
@@ -0,0 +1,69 @@
+# /**
+# * <copyright>
+# *
+# * Copyright (c) 2002-2008 IBM Corporation and others.
+# * 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:
+# * IBM - Initial API and implementation
+# *
+# * </copyright>
+# *
+# * $Id: plugin.properties,v 1.6 2009/04/07 18:57:49 davidms Exp $
+# */
+
+# NLS_MESSAGEFORMAT_VAR
+
+pluginName = EMF Extended Library Editor Example
+providerName = Eclipse Modeling Project
+
+_UI_EXTLibraryEditor_menu = &EXTLibrary Editor
+
+_UI_CreateChild_menu_item = &New Child
+_UI_CreateSibling_menu_item = N&ew Sibling
+
+_UI_ShowPropertiesView_menu_item = Show &Properties View
+_UI_RefreshViewer_menu_item = &Refresh
+
+_UI_SelectionPage_label = Selection
+_UI_ParentPage_label = Parent
+_UI_ListPage_label = List
+_UI_TreePage_label = Tree
+_UI_TablePage_label = Table
+_UI_TreeWithColumnsPage_label = Tree with Columns
+_UI_ObjectColumn_label = Object
+_UI_SelfColumn_label = Self
+
+_UI_NoObjectSelected = Selected Nothing
+_UI_SingleObjectSelected = Selected Object: {0}
+_UI_MultiObjectSelected = Selected {0} Objects
+
+_UI_OpenEditorError_label = Open Editor
+
+_UI_Wizard_category = Example EMF Model Creation Wizards
+
+_UI_EXTLibraryModelWizard_label = EXTLibrary Model
+_UI_EXTLibraryModelWizard_description = Create a new EXTLibrary model
+
+_UI_EXTLibraryEditor_label = EXTLibrary Model Editor
+
+_UI_EXTLibraryEditorFilenameDefaultBase = My
+_UI_EXTLibraryEditorFilenameExtensions = extlibrary
+
+_UI_Wizard_label = New
+
+_WARN_FilenameExtension = The file name must end in ".{0}"
+_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}
+
+_UI_ModelObject = &Model Object
+_UI_XMLEncoding = &XML Encoding
+_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
+_UI_Wizard_initial_object_description = Select a model object to create
+
+_UI_FileConflict_label = File Conflict
+_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes?
+
+_UI_CreateModelError_message = Problems encountered in file "{0}"
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/plugin.xml b/examples/org.eclipse.emf.parsley.examples.library.editor/plugin.xml
new file mode 100644
index 000000000..3f997881e
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/plugin.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <category
+ id="org.eclipse.emf.ecore.Wizard.category.ID"
+ name="%_UI_Wizard_category"/>
+ <wizard
+ id="org.eclipse.emf.parsley.examples.library.presentation.EXTLibraryModelWizardID"
+ name="%_UI_EXTLibraryModelWizard_label"
+ class="org.eclipse.emf.parsley.examples.library.presentation.EXTLibraryModelWizard"
+ category="org.eclipse.emf.ecore.Wizard.category.ID"
+ icon="icons/full/obj16/EXTLibraryModelFile.gif">
+ <description>%_UI_EXTLibraryModelWizard_description</description>
+ <selection class="org.eclipse.core.resources.IResource"/>
+ </wizard>
+ </extension>
+
+ <extension point="org.eclipse.ui.editors">
+ <editor
+ id="org.eclipse.emf.parsley.examples.library.presentation.EXTLibraryEditorID"
+ name="%_UI_EXTLibraryEditor_label"
+ icon="icons/full/obj16/EXTLibraryModelFile.gif"
+ class="org.eclipse.emf.parsley.examples.library.presentation.EXTLibraryEditor"
+ contributorClass="org.eclipse.emf.parsley.examples.library.actions.EXTLibraryExtendedActionBarContributor"
+ default="true">
+ <contentTypeBinding contentTypeId="org.eclipse.emf.parsley.examples.library.emfComponentsLibrary"/>
+ </editor>
+ </extension>
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/AddLibraryCommand.java b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/AddLibraryCommand.java
new file mode 100644
index 000000000..be1ae647e
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/AddLibraryCommand.java
@@ -0,0 +1,84 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: AddLibraryCommand.java,v 1.2 2006/12/29 18:27:34 marcelop Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.actions;
+
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.edit.EMFEditPlugin;
+import org.eclipse.emf.edit.command.AddCommand;
+import org.eclipse.emf.edit.command.CommandActionDelegate;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+
+
+/**
+ * The extended library example supports multi-rooted resources
+ * and therefore this command will add a library to the resource.
+ */
+public class AddLibraryCommand extends AddCommand implements CommandActionDelegate
+{
+ /* Attribute for the adapter factory */
+ private IItemLabelProvider labelProvider = null;
+
+ /**
+ * Constructor
+ *
+ * @param domain
+ * the editing domain
+ * @param list
+ * the list to add to
+ * @param value
+ * the value to add
+ */
+ public AddLibraryCommand(EditingDomain domain, EList<?> list, Object value)
+ {
+ super(domain, list, value);
+
+ if (domain instanceof AdapterFactoryEditingDomain)
+ {
+ labelProvider = (IItemLabelProvider)((AdapterFactoryEditingDomain)domain).getAdapterFactory().adapt(value, IItemLabelProvider.class);
+ }
+
+ setLabel(EMFEditPlugin.INSTANCE.getString("_UI_CreateChildCommand_label", new Object []{ getText() })); //$NON-NLS-1$
+ setDescription(EMFEditPlugin.INSTANCE.getString("_UI_CreateChildCommand_description")); //$NON-NLS-1$
+ }
+
+ /*
+ * @see org.eclipse.emf.edit.command.CommandActionDelegate#getImage()
+ */
+ public Object getImage()
+ {
+ return this.labelProvider != null ? this.labelProvider.getImage(getCollection().toArray()[0]) : null;
+ }
+
+ /*
+ * @see org.eclipse.emf.edit.command.CommandActionDelegate#getText()
+ */
+ public String getText()
+ {
+ return this.labelProvider != null ? this.labelProvider.getText(getCollection().toArray()[0]) : null;
+ }
+
+ /*
+ * @see org.eclipse.emf.edit.command.CommandActionDelegate#getToolTipText()
+ */
+ public String getToolTipText()
+ {
+ return getText();
+ }
+} \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/CreateLibraryAction.java b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/CreateLibraryAction.java
new file mode 100644
index 000000000..ac4d28484
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/CreateLibraryAction.java
@@ -0,0 +1,62 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: CreateLibraryAction.java,v 1.2 2006/12/29 18:27:34 marcelop Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.actions;
+
+
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.ui.action.StaticSelectionCommandAction;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryFactory;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IEditorPart;
+
+
+/**
+ * The extended library example supports multi-rooted resources
+ * and therefore this action allows the user to create a library
+ * root on the resource.
+ */
+public class CreateLibraryAction extends StaticSelectionCommandAction
+{
+
+ /**
+ * This constructs an instance of an action that creates a library
+ */
+ public CreateLibraryAction(IEditorPart editorPart, ISelection selection)
+ {
+ super(editorPart);
+ configureAction(selection);
+ }
+
+ /*
+ * @see org.eclipse.emf.edit.ui.action.StaticSelectionCommandAction#createActionCommand(org.eclipse.emf.edit.domain.EditingDomain,
+ * java.util.Collection)
+ */
+ @Override
+ protected Command createActionCommand(EditingDomain inputEditingDomain, Collection<?> collection)
+ {
+
+ return new AddLibraryCommand(
+ inputEditingDomain,
+ ((Resource)collection.toArray()[0]).getContents(),
+ EXTLibraryFactory.eINSTANCE.createLibrary());
+ }
+} \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/EXTLibraryExtendedActionBarContributor.java b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/EXTLibraryExtendedActionBarContributor.java
new file mode 100644
index 000000000..975a63bc7
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/EXTLibraryExtendedActionBarContributor.java
@@ -0,0 +1,121 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2007 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: EXTLibraryExtendedActionBarContributor.java,v 1.3 2007/03/22 02:04:15 davidms Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.actions;
+
+
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.examples.library.presentation.EXTLibraryActionBarContributor;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.ActionFactory;
+
+
+
+/**
+ * Extension to the generated action bar contributor to handle creation of
+ * multi-rooted resources.
+ */
+public class EXTLibraryExtendedActionBarContributor extends EXTLibraryActionBarContributor
+{
+
+ /**
+ * Constructor
+ */
+ public EXTLibraryExtendedActionBarContributor()
+ {
+ super();
+ }
+
+ /*
+ * @see org.eclipse.emf.parsley.examples.library.presentation.EXTLibraryActionBarContributor#generateCreateChildActions(java.util.Collection,
+ * org.eclipse.jface.viewers.ISelection)
+ */
+ @Override
+ protected java.util.Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection)
+ {
+ Collection<IAction> actions = new ArrayList<IAction>(super.generateCreateChildActions(descriptors, selection));
+ if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1)
+ {
+ Object object = ((IStructuredSelection)selection).getFirstElement();
+ if (object instanceof Resource)
+ {
+ actions.add(generateResourceAction(((Resource)object)));
+ }
+ }
+
+ return actions;
+ }
+
+ /*
+ * @see org.eclipse.emf.parsley.examples.library.presentation.EXTLibraryActionBarContributor#generateCreateSiblingActions(java.util.Collection,
+ * org.eclipse.jface.viewers.ISelection)
+ */
+ @Override
+ protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection)
+ {
+ Collection<IAction> actions = new ArrayList<IAction>(super.generateCreateSiblingActions(descriptors, selection));
+ if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1)
+ {
+ Object object = ((IStructuredSelection)selection).getFirstElement();
+ if (object instanceof Library)
+ {
+ actions.add(generateResourceAction(((Library)object).eResource()));
+ }
+ }
+
+ return actions;
+ }
+
+ /**
+ * Generates a library action for a given resource
+ *
+ * @param resource
+ * the containing resource
+ * @return the action
+ */
+ protected Action generateResourceAction(Resource resource)
+ {
+ return new CreateLibraryAction(activeEditorPart, new StructuredSelection(resource));
+ }
+
+ /*
+ * @see org.eclipse.ui.part.EditorActionBarContributor#init(org.eclipse.ui.IActionBars)
+ */
+ @Override
+ public void init(IActionBars actionBars)
+ {
+ super.init(actionBars);
+
+ ISharedImages sharedImages = PlatformUI.getWorkbench().getSharedImages();
+ this.deleteAction = new ExtendedDeleteAction();
+ this.deleteAction.setImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
+ actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), this.deleteAction);
+
+ actionBars.updateActionBars();
+ }
+} \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/ExtendedDeleteAction.java b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/ExtendedDeleteAction.java
new file mode 100644
index 000000000..89620209b
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/ExtendedDeleteAction.java
@@ -0,0 +1,103 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: ExtendedDeleteAction.java,v 1.3 2006/12/29 18:27:34 marcelop Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.actions;
+
+
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.UnexecutableCommand;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.ui.action.DeleteAction;
+import org.eclipse.emf.parsley.examples.library.Library;
+
+
+
+/**
+ * The extended library example supports multi-rooted resources
+ * and therefore this action allows the user to delete a library
+ * root from the resource.
+ */
+public class ExtendedDeleteAction extends DeleteAction
+{
+
+ /**
+ * Constructor
+ *
+ * @param domain
+ * the editing domain
+ */
+ public ExtendedDeleteAction(EditingDomain domain)
+ {
+ super(domain);
+ }
+
+ /**
+ * Constructor
+ */
+ public ExtendedDeleteAction()
+ {
+ super();
+ }
+
+ /*
+ * @see org.eclipse.emf.edit.ui.action.CommandActionHandler#createCommand(java.util.Collection)
+ */
+ @Override
+ public Command createCommand(Collection<?> selection)
+ {
+ Command cmd = super.createCommand(selection);
+ if (cmd != null)
+ {
+ ArrayList<Object> list = new ArrayList<Object>();
+ if (selection != null && !selection.isEmpty())
+ {
+ Iterator<?> iter = selection.iterator();
+ while (iter.hasNext())
+ {
+ Object next = iter.next();
+ if (next instanceof Library)
+ {
+ list.add(next);
+ }
+ }
+
+ if (!list.isEmpty())
+ {
+ Library library = (Library)list.get(0);
+ if (library.eResource() != null)
+ {
+ Command removeLibraries = new RemoveLibraryCommand(domain, library.eResource().getContents(), list);
+ if (cmd instanceof UnexecutableCommand)
+ {
+ return removeLibraries;
+ }
+ else
+ {
+ cmd.chain(removeLibraries);
+ }
+ }
+ }
+ }
+ }
+
+ return cmd;
+ }
+} \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/RemoveLibraryCommand.java b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/RemoveLibraryCommand.java
new file mode 100644
index 000000000..4007597dd
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/actions/RemoveLibraryCommand.java
@@ -0,0 +1,87 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: RemoveLibraryCommand.java,v 1.2 2006/12/29 18:27:34 marcelop Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.actions;
+
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.edit.command.CommandActionDelegate;
+import org.eclipse.emf.edit.command.RemoveCommand;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+
+
+/**
+ * The extended library example supports multi-rooted resources
+ * and therefore this command will remove a library from the resource..
+ */
+public class RemoveLibraryCommand extends RemoveCommand implements CommandActionDelegate
+{
+
+ /* Attribute for the adapter factory */
+ private IItemLabelProvider labelProvider = null;
+
+ /**
+ * Constructor
+ *
+ * @param domain
+ * the editing domain
+ * @param list
+ * the list to modify
+ * @param collection
+ * the objects to be removed
+ */
+ public RemoveLibraryCommand(EditingDomain domain, EList<?> list, Collection<?> collection)
+ {
+ super(domain, list, collection);
+ if (domain instanceof AdapterFactoryEditingDomain)
+ {
+ labelProvider = (IItemLabelProvider)((AdapterFactoryEditingDomain)domain).getAdapterFactory().adapt(
+ collection.toArray()[0],
+ IItemLabelProvider.class);
+ }
+
+ setLabel(LABEL);
+ setDescription(DESCRIPTION);
+ }
+
+ /*
+ * @see org.eclipse.emf.edit.command.CommandActionDelegate#getImage()
+ */
+ public Object getImage()
+ {
+ return this.labelProvider != null ? this.labelProvider.getImage(getCollection().toArray()[0]) : null;
+ }
+
+ /*
+ * @see org.eclipse.emf.edit.command.CommandActionDelegate#getText()
+ */
+ public String getText()
+ {
+ return this.labelProvider != null ? this.labelProvider.getText(getCollection().toArray()[0]) : null;
+ }
+
+ /*
+ * @see org.eclipse.emf.edit.command.CommandActionDelegate#getToolTipText()
+ */
+ public String getToolTipText()
+ {
+ return getText();
+ }
+} \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryActionBarContributor.java b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryActionBarContributor.java
new file mode 100644
index 000000000..15429417a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryActionBarContributor.java
@@ -0,0 +1,483 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2007 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: EXTLibraryActionBarContributor.java,v 1.6 2007/03/22 15:52:40 davidms Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.presentation;
+
+
+import java.util.ArrayList;
+import java.util.Collection;
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+
+/**
+ * This is the action bar contributor for the EXTLibrary model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EXTLibraryActionBarContributor extends EditingDomainActionBarContributor implements ISelectionChangedListener
+{
+ /**
+ * This keeps track of the active editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IEditorPart activeEditorPart;
+
+ /**
+ * This keeps track of the current selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionProvider selectionProvider;
+
+ /**
+ * This action opens the Properties view.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IAction showPropertiesViewAction =
+ new Action(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) //$NON-NLS-1$
+ {
+ @Override
+ public void run()
+ {
+ try
+ {
+ getPage().showView("org.eclipse.ui.views.PropertySheet"); //$NON-NLS-1$
+ }
+ catch (PartInitException exception)
+ {
+ EXTLibraryEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * This action refreshes the viewer of the current editor if the editor
+ * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IAction refreshViewerAction =
+ new Action(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) //$NON-NLS-1$
+ {
+ @Override
+ public boolean isEnabled()
+ {
+ return activeEditorPart instanceof IViewerProvider;
+ }
+
+ @Override
+ public void run()
+ {
+ if (activeEditorPart instanceof IViewerProvider)
+ {
+ Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
+ if (viewer != null)
+ {
+ viewer.refresh();
+ }
+ }
+ }
+ };
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> createChildActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createChildMenuManager;
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> createSiblingActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createSiblingMenuManager;
+
+ /**
+ * This creates an instance of the contributor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibraryActionBarContributor()
+ {
+ super(ADDITIONS_LAST_STYLE);
+ loadResourceAction = new LoadResourceAction();
+ validateAction = new ValidateAction();
+ controlAction = new ControlAction();
+ }
+
+ /**
+ * This adds Separators for editor additions to the tool bar.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void contributeToToolBar(IToolBarManager toolBarManager)
+ {
+ toolBarManager.add(new Separator("extlibrary-settings")); //$NON-NLS-1$
+ toolBarManager.add(new Separator("extlibrary-additions")); //$NON-NLS-1$
+ }
+
+ /**
+ * This adds to the menu bar a menu and some separators for editor additions,
+ * as well as the sub-menus for object creation items.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void contributeToMenu(IMenuManager menuManager)
+ {
+ super.contributeToMenu(menuManager);
+
+ IMenuManager submenuManager = new MenuManager(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryEditor_menu"), "org.eclipse.emf.examples.extlibraryMenuID"); //$NON-NLS-1$ //$NON-NLS-2$
+ menuManager.insertAfter("additions", submenuManager); //$NON-NLS-1$
+ submenuManager.add(new Separator("settings")); //$NON-NLS-1$
+ submenuManager.add(new Separator("actions")); //$NON-NLS-1$
+ submenuManager.add(new Separator("additions")); //$NON-NLS-1$
+ submenuManager.add(new Separator("additions-end")); //$NON-NLS-1$
+
+ // Prepare for CreateChild item addition or removal.
+ //
+ createChildMenuManager = new MenuManager(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); //$NON-NLS-1$
+ submenuManager.insertBefore("additions", createChildMenuManager); //$NON-NLS-1$
+
+ // Prepare for CreateSibling item addition or removal.
+ //
+ createSiblingMenuManager = new MenuManager(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); //$NON-NLS-1$
+ submenuManager.insertBefore("additions", createSiblingMenuManager); //$NON-NLS-1$
+
+ // Force an update because Eclipse hides empty menus now.
+ //
+ submenuManager.addMenuListener
+ (new IMenuListener()
+ {
+ public void menuAboutToShow(IMenuManager menuManager)
+ {
+ menuManager.updateAll(true);
+ }
+ });
+
+ addGlobalActions(submenuManager);
+ }
+
+ /**
+ * When the active editor changes, this remembers the change and registers with it as a selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setActiveEditor(IEditorPart part)
+ {
+ super.setActiveEditor(part);
+ activeEditorPart = part;
+
+ // Switch to the new selection provider.
+ //
+ if (selectionProvider != null)
+ {
+ selectionProvider.removeSelectionChangedListener(this);
+ }
+ if (part == null)
+ {
+ selectionProvider = null;
+ }
+ else
+ {
+ selectionProvider = part.getSite().getSelectionProvider();
+ selectionProvider.addSelectionChangedListener(this);
+
+ // Fake a selection changed event to update the menus.
+ //
+ if (selectionProvider.getSelection() != null)
+ {
+ selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+ }
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+ * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+ * that can be added to the selected object and updating the menus accordingly.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void selectionChanged(SelectionChangedEvent event)
+ {
+ // Remove any menu items for old selection.
+ //
+ if (createChildMenuManager != null)
+ {
+ depopulateManager(createChildMenuManager, createChildActions);
+ }
+ if (createSiblingMenuManager != null)
+ {
+ depopulateManager(createSiblingMenuManager, createSiblingActions);
+ }
+
+ // Query the new selection for appropriate new child/sibling descriptors
+ //
+ Collection<?> newChildDescriptors = null;
+ Collection<?> newSiblingDescriptors = null;
+
+ ISelection selection = event.getSelection();
+ if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1)
+ {
+ Object object = ((IStructuredSelection)selection).getFirstElement();
+
+ EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+
+ newChildDescriptors = domain.getNewChildDescriptors(object, null);
+ newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+ }
+
+ // Generate actions for selection; populate and redraw the menus.
+ //
+ createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+ createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+ if (createChildMenuManager != null)
+ {
+ populateManager(createChildMenuManager, createChildActions, null);
+ createChildMenuManager.update(true);
+ }
+ if (createSiblingMenuManager != null)
+ {
+ populateManager(createSiblingMenuManager, createSiblingActions, null);
+ createSiblingMenuManager.update(true);
+ }
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection)
+ {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null)
+ {
+ for (Object descriptor : descriptors)
+ {
+ actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection)
+ {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null)
+ {
+ for (Object descriptor : descriptors)
+ {
+ actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+ * by inserting them before the specified contribution item <code>contributionID</code>.
+ * If <code>contributionID</code> is <code>null</code>, they are simply added.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID)
+ {
+ if (actions != null)
+ {
+ for (IAction action : actions)
+ {
+ if (contributionID != null)
+ {
+ manager.insertBefore(contributionID, action);
+ }
+ else
+ {
+ manager.add(action);
+ }
+ }
+ }
+ }
+
+ /**
+ * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions)
+ {
+ if (actions != null)
+ {
+ IContributionItem[] items = manager.getItems();
+ for (int i = 0; i < items.length; i++)
+ {
+ // Look into SubContributionItems
+ //
+ IContributionItem contributionItem = items[i];
+ while (contributionItem instanceof SubContributionItem)
+ {
+ contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
+ }
+
+ // Delete the ActionContributionItems with matching action.
+ //
+ if (contributionItem instanceof ActionContributionItem)
+ {
+ IAction action = ((ActionContributionItem)contributionItem).getAction();
+ if (actions.contains(action))
+ {
+ manager.remove(contributionItem);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This populates the pop-up menu before it appears.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void menuAboutToShow(IMenuManager menuManager)
+ {
+ super.menuAboutToShow(menuManager);
+ MenuManager submenuManager = null;
+
+ submenuManager = new MenuManager(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); //$NON-NLS-1$
+ populateManager(submenuManager, createChildActions, null);
+ menuManager.insertBefore("edit", submenuManager); //$NON-NLS-1$
+
+ submenuManager = new MenuManager(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); //$NON-NLS-1$
+ populateManager(submenuManager, createSiblingActions, null);
+ menuManager.insertBefore("edit", submenuManager); //$NON-NLS-1$
+ }
+
+ /**
+ * This inserts global actions before the "additions-end" separator.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void addGlobalActions(IMenuManager menuManager)
+ {
+ menuManager.insertAfter("additions-end", new Separator("ui-actions")); //$NON-NLS-1$ //$NON-NLS-2$
+ menuManager.insertAfter("ui-actions", showPropertiesViewAction); //$NON-NLS-1$
+
+ refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());
+ menuManager.insertAfter("ui-actions", refreshViewerAction); //$NON-NLS-1$
+
+ super.addGlobalActions(menuManager);
+ }
+
+ /**
+ * This ensures that a delete action will clean up all references to deleted objects.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean removeAllReferencesOnDelete()
+ {
+ return true;
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryEditor.java b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryEditor.java
new file mode 100644
index 000000000..67f96c8a2
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryEditor.java
@@ -0,0 +1,2056 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: EXTLibraryEditor.java,v 1.19 2010/02/04 20:56:29 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.presentation;
+
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.ViewerPane;
+
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EValidator;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.parsley.examples.library.provider.EXTLibraryItemProviderAdapterFactory;
+
+
+import java.io.IOException;
+
+import java.io.InputStream;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.custom.CTabFolder;
+
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.Transfer;
+
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FillLayout;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.ui.dialogs.SaveAsDialog;
+
+import org.eclipse.ui.ide.IGotoMarker;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+
+import java.util.HashMap;
+
+import org.eclipse.core.runtime.NullProgressMonitor;
+
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+
+/**
+ * This is an example of a EXTLibrary model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EXTLibraryEditor extends MultiPageEditorPart
+ implements
+ IEditingDomainProvider,
+ ISelectionProvider,
+ IMenuListener,
+ IViewerProvider,
+ IGotoMarker
+{
+ /**
+ * This keeps track of the editing domain that is used to track all changes to the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdapterFactoryEditingDomain editingDomain;
+
+ /**
+ * This is the one adapter factory used for providing views of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory adapterFactory;
+
+ /**
+ * This is the content outline page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IContentOutlinePage contentOutlinePage;
+
+ /**
+ * This is a kludge...
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IStatusLineManager contentOutlineStatusLineManager;
+
+ /**
+ * This is the content outline page's viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer contentOutlineViewer;
+
+ /**
+ * This is the property sheet page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PropertySheetPage propertySheetPage;
+
+ /**
+ * This is the viewer that shadows the selection in the content outline.
+ * The parent relation must be correctly defined for this to work.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer selectionViewer;
+
+ /**
+ * This inverts the roll of parent and child in the content provider and show parents as a tree.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer parentViewer;
+
+ /**
+ * This shows how a tree view works.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer treeViewer;
+
+ /**
+ * This shows how a list view works.
+ * A list viewer doesn't support icons.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ListViewer listViewer;
+
+ /**
+ * This shows how a table view works.
+ * A table can be used as a list with icons.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TableViewer tableViewer;
+
+ /**
+ * This shows how a tree view with columns works.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer treeViewerWithColumns;
+
+ /**
+ * This keeps track of the active viewer pane, in the book.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ViewerPane currentViewerPane;
+
+ /**
+ * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Viewer currentViewer;
+
+ /**
+ * This listens to which ever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionChangedListener selectionChangedListener;
+
+ /**
+ * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+ /**
+ * This keeps track of the selection of the editor as a whole.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+ /**
+ * The MarkerHelper is responsible for creating workspace resource markers presented
+ * in Eclipse's Problems View.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+ /**
+ * This listens for when the outline becomes active
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IPartListener partListener =
+ new IPartListener()
+ {
+ public void partActivated(IWorkbenchPart p)
+ {
+ if (p instanceof ContentOutline)
+ {
+ if (((ContentOutline)p).getCurrentPage() == contentOutlinePage)
+ {
+ getActionBarContributor().setActiveEditor(EXTLibraryEditor.this);
+
+ setCurrentViewer(contentOutlineViewer);
+ }
+ }
+ else if (p instanceof PropertySheet)
+ {
+ if (((PropertySheet)p).getCurrentPage() == propertySheetPage)
+ {
+ getActionBarContributor().setActiveEditor(EXTLibraryEditor.this);
+ handleActivate();
+ }
+ }
+ else if (p == EXTLibraryEditor.this)
+ {
+ handleActivate();
+ }
+ }
+ public void partBroughtToTop(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+ public void partClosed(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+ public void partDeactivated(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+ public void partOpened(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+ };
+
+ /**
+ * Resources that have been removed since last activation.
+ * @generated
+ */
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been changed since last activation.
+ * @generated
+ */
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been saved.
+ * @generated
+ */
+ protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+ /**
+ * Map to store the diagnostic associated with a resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+ /**
+ * Controls whether the problem indication should be updated.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean updateProblemIndication = true;
+
+ /**
+ * Adapter used to update the problem indication when resources are demanded loaded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EContentAdapter problemIndicationAdapter =
+ new EContentAdapter()
+ {
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ if (notification.getNotifier() instanceof Resource)
+ {
+ switch (notification.getFeatureID(Resource.class))
+ {
+ case Resource.RESOURCE__IS_LOADED:
+ case Resource.RESOURCE__ERRORS:
+ case Resource.RESOURCE__WARNINGS:
+ {
+ Resource resource = (Resource)notification.getNotifier();
+ Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ resourceToDiagnosticMap.put(resource, diagnostic);
+ }
+ else
+ {
+ resourceToDiagnosticMap.remove(resource);
+ }
+
+ if (updateProblemIndication)
+ {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable()
+ {
+ public void run()
+ {
+ updateProblemIndication();
+ }
+ });
+ }
+ break;
+ }
+ }
+ }
+ else
+ {
+ super.notifyChanged(notification);
+ }
+ }
+
+ @Override
+ protected void setTarget(Resource target)
+ {
+ basicSetTarget(target);
+ }
+
+ @Override
+ protected void unsetTarget(Resource target)
+ {
+ basicUnsetTarget(target);
+ }
+ };
+
+ /**
+ * This listens for workspace changes.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IResourceChangeListener resourceChangeListener =
+ new IResourceChangeListener()
+ {
+ public void resourceChanged(IResourceChangeEvent event)
+ {
+ IResourceDelta delta = event.getDelta();
+ try
+ {
+ class ResourceDeltaVisitor implements IResourceDeltaVisitor
+ {
+ protected ResourceSet resourceSet = editingDomain.getResourceSet();
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ public boolean visit(IResourceDelta delta)
+ {
+ if (delta.getResource().getType() == IResource.FILE)
+ {
+ if (delta.getKind() == IResourceDelta.REMOVED ||
+ delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS)
+ {
+ Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+ if (resource != null)
+ {
+ if (delta.getKind() == IResourceDelta.REMOVED)
+ {
+ removedResources.add(resource);
+ }
+ else if (!savedResources.remove(resource))
+ {
+ changedResources.add(resource);
+ }
+ }
+ }
+ }
+
+ return true;
+ }
+
+ public Collection<Resource> getChangedResources()
+ {
+ return changedResources;
+ }
+
+ public Collection<Resource> getRemovedResources()
+ {
+ return removedResources;
+ }
+ }
+
+ final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+ delta.accept(visitor);
+
+ if (!visitor.getRemovedResources().isEmpty())
+ {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable()
+ {
+ public void run()
+ {
+ removedResources.addAll(visitor.getRemovedResources());
+ if (!isDirty())
+ {
+ getSite().getPage().closeEditor(EXTLibraryEditor.this, false);
+ }
+ }
+ });
+ }
+
+ if (!visitor.getChangedResources().isEmpty())
+ {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable()
+ {
+ public void run()
+ {
+ changedResources.addAll(visitor.getChangedResources());
+ if (getSite().getPage().getActiveEditor() == EXTLibraryEditor.this)
+ {
+ handleActivate();
+ }
+ }
+ });
+ }
+ }
+ catch (CoreException exception)
+ {
+ EXTLibraryEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * Handles activation of the editor or it's associated views.
+ * @generated
+ */
+ protected void handleActivate()
+ {
+ // Recompute the read only state.
+ //
+ if (editingDomain.getResourceToReadOnlyMap() != null)
+ {
+ editingDomain.getResourceToReadOnlyMap().clear();
+
+ // Refresh any actions that may become enabled or disabled.
+ //
+ setSelection(getSelection());
+ }
+
+ if (!removedResources.isEmpty())
+ {
+ if (handleDirtyConflict())
+ {
+ getSite().getPage().closeEditor(EXTLibraryEditor.this, false);
+ }
+ else
+ {
+ removedResources.clear();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+ else if (!changedResources.isEmpty())
+ {
+ changedResources.removeAll(savedResources);
+ handleChangedResources();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+
+ /**
+ * Handles what to do with changed resources on activation.
+ * @generated
+ */
+ protected void handleChangedResources()
+ {
+ if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict()))
+ {
+ if (isDirty())
+ {
+ changedResources.addAll(editingDomain.getResourceSet().getResources());
+ }
+ editingDomain.getCommandStack().flush();
+
+ updateProblemIndication = false;
+ for (Resource resource : changedResources)
+ {
+ if (resource.isLoaded())
+ {
+ resource.unload();
+ try
+ {
+ resource.load(Collections.EMPTY_MAP);
+ }
+ catch (IOException exception)
+ {
+ if (!resourceToDiagnosticMap.containsKey(resource))
+ {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ }
+ }
+ }
+
+ if (AdapterFactoryEditingDomain.isStale(editorSelection))
+ {
+ setSelection(StructuredSelection.EMPTY);
+ }
+
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+ }
+
+ /**
+ * Updates the problems indication with the information described in the specified diagnostic.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void updateProblemIndication()
+ {
+ if (updateProblemIndication)
+ {
+ BasicDiagnostic diagnostic =
+ new BasicDiagnostic
+ (Diagnostic.OK,
+ "org.eclipse.emf.parsley.examples.library.editor", //$NON-NLS-1$
+ 0,
+ null,
+ new Object [] { editingDomain.getResourceSet() });
+ for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values())
+ {
+ if (childDiagnostic.getSeverity() != Diagnostic.OK)
+ {
+ diagnostic.add(childDiagnostic);
+ }
+ }
+
+ int lastEditorPage = getPageCount() - 1;
+ if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart)
+ {
+ ((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ setActivePage(lastEditorPage);
+ }
+ }
+ else if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+ problemEditorPart.setDiagnostic(diagnostic);
+ problemEditorPart.setMarkerHelper(markerHelper);
+ try
+ {
+ addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+ setPageText(lastEditorPage, problemEditorPart.getPartName());
+ setActivePage(lastEditorPage);
+ showTabs();
+ }
+ catch (PartInitException exception)
+ {
+ EXTLibraryEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ if (markerHelper.hasMarkers(editingDomain.getResourceSet()))
+ {
+ markerHelper.deleteMarkers(editingDomain.getResourceSet());
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ try
+ {
+ markerHelper.createMarkers(diagnostic);
+ }
+ catch (CoreException exception)
+ {
+ EXTLibraryEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Shows a dialog that asks if conflicting changes should be discarded.
+ * @generated
+ */
+ protected boolean handleDirtyConflict()
+ {
+ return
+ MessageDialog.openQuestion
+ (getSite().getShell(),
+ getString("_UI_FileConflict_label"), //$NON-NLS-1$
+ getString("_WARN_FileConflict")); //$NON-NLS-1$
+ }
+
+ /**
+ * This creates a model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibraryEditor()
+ {
+ super();
+ initializeEditingDomain();
+ }
+
+ /**
+ * This sets up the editing domain for the model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void initializeEditingDomain()
+ {
+ // Create an adapter factory that yields item providers.
+ //
+ adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+ adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new EXTLibraryItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+ // Create the command stack that will notify this editor as commands are executed.
+ //
+ BasicCommandStack commandStack = new BasicCommandStack();
+
+ // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+ //
+ commandStack.addCommandStackListener
+ (new CommandStackListener()
+ {
+ public void commandStackChanged(final EventObject event)
+ {
+ getContainer().getDisplay().asyncExec
+ (new Runnable()
+ {
+ public void run()
+ {
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+
+ // Try to select the affected objects.
+ //
+ Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
+ if (mostRecentCommand != null)
+ {
+ setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+ }
+ if (propertySheetPage != null && !propertySheetPage.getControl().isDisposed())
+ {
+ propertySheetPage.refresh();
+ }
+ }
+ });
+ }
+ });
+
+ // Create the editing domain with a special command stack.
+ //
+ editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+ }
+
+ /**
+ * This is here for the listener to be able to call it.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void firePropertyChange(int action)
+ {
+ super.firePropertyChange(action);
+ }
+
+ /**
+ * This sets the selection into whichever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelectionToViewer(Collection<?> collection)
+ {
+ final Collection<?> theSelection = collection;
+ // Make sure it's okay.
+ //
+ if (theSelection != null && !theSelection.isEmpty())
+ {
+ Runnable runnable =
+ new Runnable()
+ {
+ public void run()
+ {
+ // Try to select the items in the current content viewer of the editor.
+ //
+ if (currentViewer != null)
+ {
+ currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+ }
+ }
+ };
+ getSite().getShell().getDisplay().asyncExec(runnable);
+ }
+ }
+
+ /**
+ * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+ * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+ * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingDomain getEditingDomain()
+ {
+ return editingDomain;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider
+ {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object [] getElements(Object object)
+ {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object [] getChildren(Object object)
+ {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean hasChildren(Object object)
+ {
+ Object parent = super.getParent(object);
+ return parent != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getParent(Object object)
+ {
+ return null;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrentViewerPane(ViewerPane viewerPane)
+ {
+ if (currentViewerPane != viewerPane)
+ {
+ if (currentViewerPane != null)
+ {
+ currentViewerPane.showFocus(false);
+ }
+ currentViewerPane = viewerPane;
+ }
+ setCurrentViewer(currentViewerPane.getViewer());
+ }
+
+ /**
+ * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+ * is the current one.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrentViewer(Viewer viewer)
+ {
+ // If it is changing...
+ //
+ if (currentViewer != viewer)
+ {
+ if (selectionChangedListener == null)
+ {
+ // Create the listener on demand.
+ //
+ selectionChangedListener =
+ new ISelectionChangedListener()
+ {
+ // This just notifies those things that are affected by the section.
+ //
+ public void selectionChanged(SelectionChangedEvent selectionChangedEvent)
+ {
+ setSelection(selectionChangedEvent.getSelection());
+ }
+ };
+ }
+
+ // Stop listening to the old one.
+ //
+ if (currentViewer != null)
+ {
+ currentViewer.removeSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Start listening to the new one.
+ //
+ if (viewer != null)
+ {
+ viewer.addSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Remember it.
+ //
+ currentViewer = viewer;
+
+ // Set the editors selection based on the current viewer's selection.
+ //
+ setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+ }
+ }
+
+ /**
+ * This returns the viewer as required by the {@link IViewerProvider} interface.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Viewer getViewer()
+ {
+ return currentViewer;
+ }
+
+ /**
+ * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createContextMenuFor(StructuredViewer viewer)
+ {
+ MenuManager contextMenu = new MenuManager("#PopUp"); //$NON-NLS-1$
+ contextMenu.add(new Separator("additions")); //$NON-NLS-1$
+ contextMenu.setRemoveAllWhenShown(true);
+ contextMenu.addMenuListener(this);
+ Menu menu= contextMenu.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+ getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+ int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+ Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
+ viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+ viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+ }
+
+ /**
+ * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createModel()
+ {
+ URI resourceURI = EditUIUtil.getURI(getEditorInput());
+ Exception exception = null;
+ Resource resource = null;
+ try
+ {
+ // Load the resource through the editing domain.
+ //
+ resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+ }
+ catch (Exception e)
+ {
+ exception = e;
+ resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+ }
+
+ Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+ }
+
+ /**
+ * Returns a diagnostic describing the errors and warnings listed in the resource
+ * and the specified exception (if any).
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Diagnostic analyzeResourceProblems(Resource resource, Exception exception)
+ {
+ if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty())
+ {
+ BasicDiagnostic basicDiagnostic =
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "org.eclipse.emf.parsley.examples.library.editor", //$NON-NLS-1$
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()), //$NON-NLS-1$
+ new Object [] { exception == null ? (Object)resource : exception });
+ basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+ return basicDiagnostic;
+ }
+ else if (exception != null)
+ {
+ return
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "org.eclipse.emf.parsley.examples.library.editor", //$NON-NLS-1$
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()), //$NON-NLS-1$
+ new Object[] { exception });
+ }
+ else
+ {
+ return Diagnostic.OK_INSTANCE;
+ }
+ }
+
+ /**
+ * This is the method used by the framework to install your own controls.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void createPages()
+ {
+ // Creates the model from the editor input
+ //
+ createModel();
+
+ // Only creates the other pages if there is something that can be edited
+ //
+ if (!getEditingDomain().getResourceSet().getResources().isEmpty())
+ {
+ // Create a page for the selection tree view.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), EXTLibraryEditor.this)
+ {
+ @Override
+ public Viewer createViewer(Composite composite)
+ {
+ Tree tree = new Tree(composite, SWT.MULTI);
+ TreeViewer newTreeViewer = new TreeViewer(tree);
+ return newTreeViewer;
+ }
+ @Override
+ public void requestActivation()
+ {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ selectionViewer = (TreeViewer)viewerPane.getViewer();
+ selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+
+ selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ selectionViewer.setInput(editingDomain.getResourceSet());
+ selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+ viewerPane.setTitle(editingDomain.getResourceSet());
+
+ new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(selectionViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_SelectionPage_label")); //$NON-NLS-1$
+ }
+
+ // Create a page for the parent tree view.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), EXTLibraryEditor.this)
+ {
+ @Override
+ public Viewer createViewer(Composite composite)
+ {
+ Tree tree = new Tree(composite, SWT.MULTI);
+ TreeViewer newTreeViewer = new TreeViewer(tree);
+ return newTreeViewer;
+ }
+ @Override
+ public void requestActivation()
+ {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ parentViewer = (TreeViewer)viewerPane.getViewer();
+ parentViewer.setAutoExpandLevel(30);
+ parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
+ parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(parentViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_ParentPage_label")); //$NON-NLS-1$
+ }
+
+ // This is the page for the list viewer
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), EXTLibraryEditor.this)
+ {
+ @Override
+ public Viewer createViewer(Composite composite)
+ {
+ return new ListViewer(composite);
+ }
+ @Override
+ public void requestActivation()
+ {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ listViewer = (ListViewer)viewerPane.getViewer();
+ listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(listViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_ListPage_label")); //$NON-NLS-1$
+ }
+
+ // This is the page for the tree viewer
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), EXTLibraryEditor.this)
+ {
+ @Override
+ public Viewer createViewer(Composite composite)
+ {
+ return new TreeViewer(composite);
+ }
+ @Override
+ public void requestActivation()
+ {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ treeViewer = (TreeViewer)viewerPane.getViewer();
+ treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(treeViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TreePage_label")); //$NON-NLS-1$
+ }
+
+ // This is the page for the table viewer.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), EXTLibraryEditor.this)
+ {
+ @Override
+ public Viewer createViewer(Composite composite)
+ {
+ return new TableViewer(composite);
+ }
+ @Override
+ public void requestActivation()
+ {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ tableViewer = (TableViewer)viewerPane.getViewer();
+
+ Table table = tableViewer.getTable();
+ TableLayout layout = new TableLayout();
+ table.setLayout(layout);
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+
+ TableColumn objectColumn = new TableColumn(table, SWT.NONE);
+ layout.addColumnData(new ColumnWeightData(3, 100, true));
+ objectColumn.setText(getString("_UI_ObjectColumn_label")); //$NON-NLS-1$
+ objectColumn.setResizable(true);
+
+ TableColumn selfColumn = new TableColumn(table, SWT.NONE);
+ layout.addColumnData(new ColumnWeightData(2, 100, true));
+ selfColumn.setText(getString("_UI_SelfColumn_label")); //$NON-NLS-1$
+ selfColumn.setResizable(true);
+
+ tableViewer.setColumnProperties(new String [] {"a", "b"}); //$NON-NLS-1$ //$NON-NLS-2$
+ tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(tableViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TablePage_label")); //$NON-NLS-1$
+ }
+
+ // This is the page for the table tree viewer.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), EXTLibraryEditor.this)
+ {
+ @Override
+ public Viewer createViewer(Composite composite)
+ {
+ return new TreeViewer(composite);
+ }
+ @Override
+ public void requestActivation()
+ {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
+
+ Tree tree = treeViewerWithColumns.getTree();
+ tree.setLayoutData(new FillLayout());
+ tree.setHeaderVisible(true);
+ tree.setLinesVisible(true);
+
+ TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
+ objectColumn.setText(getString("_UI_ObjectColumn_label")); //$NON-NLS-1$
+ objectColumn.setResizable(true);
+ objectColumn.setWidth(250);
+
+ TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
+ selfColumn.setText(getString("_UI_SelfColumn_label")); //$NON-NLS-1$
+ selfColumn.setResizable(true);
+ selfColumn.setWidth(200);
+
+ treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"}); //$NON-NLS-1$ //$NON-NLS-2$
+ treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(treeViewerWithColumns);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label")); //$NON-NLS-1$
+ }
+
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable()
+ {
+ public void run()
+ {
+ setActivePage(0);
+ }
+ });
+ }
+
+ // Ensures that this editor will only display the page's tab
+ // area if there are more than one page
+ //
+ getContainer().addControlListener
+ (new ControlAdapter()
+ {
+ boolean guard = false;
+ @Override
+ public void controlResized(ControlEvent event)
+ {
+ if (!guard)
+ {
+ guard = true;
+ hideTabs();
+ guard = false;
+ }
+ }
+ });
+
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable()
+ {
+ public void run()
+ {
+ updateProblemIndication();
+ }
+ });
+ }
+
+ /**
+ * If there is just one page in the multi-page editor part,
+ * this hides the single tab at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void hideTabs()
+ {
+ if (getPageCount() <= 1)
+ {
+ setPageText(0, ""); //$NON-NLS-1$
+ if (getContainer() instanceof CTabFolder)
+ {
+ ((CTabFolder)getContainer()).setTabHeight(1);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y + 6);
+ }
+ }
+ }
+
+ /**
+ * If there is more than one page in the multi-page editor part,
+ * this shows the tabs at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void showTabs()
+ {
+ if (getPageCount() > 1)
+ {
+ setPageText(0, getString("_UI_SelectionPage_label")); //$NON-NLS-1$
+ if (getContainer() instanceof CTabFolder)
+ {
+ ((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y - 6);
+ }
+ }
+ }
+
+ /**
+ * This is used to track the active viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void pageChange(int pageIndex)
+ {
+ super.pageChange(pageIndex);
+
+ if (contentOutlinePage != null)
+ {
+ handleContentOutlineSelection(contentOutlinePage.getSelection());
+ }
+ }
+
+ /**
+ * This is how the framework determines which interfaces we implement.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object getAdapter(Class key)
+ {
+ if (key.equals(IContentOutlinePage.class))
+ {
+ return showOutlineView() ? getContentOutlinePage() : null;
+ }
+ else if (key.equals(IPropertySheetPage.class))
+ {
+ return getPropertySheetPage();
+ }
+ else if (key.equals(IGotoMarker.class))
+ {
+ return this;
+ }
+ else
+ {
+ return super.getAdapter(key);
+ }
+ }
+
+ /**
+ * This accesses a cached version of the content outliner.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IContentOutlinePage getContentOutlinePage()
+ {
+ if (contentOutlinePage == null)
+ {
+ // The content outline is just a tree.
+ //
+ class MyContentOutlinePage extends ContentOutlinePage
+ {
+ @Override
+ public void createControl(Composite parent)
+ {
+ super.createControl(parent);
+ contentOutlineViewer = getTreeViewer();
+ contentOutlineViewer.addSelectionChangedListener(this);
+
+ // Set up the tree viewer.
+ //
+ contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+ // Make sure our popups work.
+ //
+ createContextMenuFor(contentOutlineViewer);
+
+ if (!editingDomain.getResourceSet().getResources().isEmpty())
+ {
+ // Select the root object in the view.
+ //
+ contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+ }
+ }
+
+ @Override
+ public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager)
+ {
+ super.makeContributions(menuManager, toolBarManager, statusLineManager);
+ contentOutlineStatusLineManager = statusLineManager;
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars)
+ {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ }
+
+ contentOutlinePage = new MyContentOutlinePage();
+
+ // Listen to selection so that we can handle it is a special way.
+ //
+ contentOutlinePage.addSelectionChangedListener
+ (new ISelectionChangedListener()
+ {
+ // This ensures that we handle selections correctly.
+ //
+ public void selectionChanged(SelectionChangedEvent event)
+ {
+ handleContentOutlineSelection(event.getSelection());
+ }
+ });
+ }
+
+ return contentOutlinePage;
+ }
+
+ /**
+ * This accesses a cached version of the property sheet.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IPropertySheetPage getPropertySheetPage()
+ {
+ if (propertySheetPage == null)
+ {
+ propertySheetPage =
+ new ExtendedPropertySheetPage(editingDomain)
+ {
+ @Override
+ public void setSelectionToViewer(List<?> selection)
+ {
+ EXTLibraryEditor.this.setSelectionToViewer(selection);
+ EXTLibraryEditor.this.setFocus();
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars)
+ {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ }
+
+ return propertySheetPage;
+ }
+
+ /**
+ * This deals with how we want selection in the outliner to affect the other views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void handleContentOutlineSelection(ISelection selection)
+ {
+ if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection)
+ {
+ Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
+ if (selectedElements.hasNext())
+ {
+ // Get the first selected element.
+ //
+ Object selectedElement = selectedElements.next();
+
+ // If it's the selection viewer, then we want it to select the same selection as this selection.
+ //
+ if (currentViewerPane.getViewer() == selectionViewer)
+ {
+ ArrayList<Object> selectionList = new ArrayList<Object>();
+ selectionList.add(selectedElement);
+ while (selectedElements.hasNext())
+ {
+ selectionList.add(selectedElements.next());
+ }
+
+ // Set the selection to the widget.
+ //
+ selectionViewer.setSelection(new StructuredSelection(selectionList));
+ }
+ else
+ {
+ // Set the input to the widget.
+ //
+ if (currentViewerPane.getViewer().getInput() != selectedElement)
+ {
+ currentViewerPane.getViewer().setInput(selectedElement);
+ currentViewerPane.setTitle(selectedElement);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply tests the command stack.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isDirty()
+ {
+ return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply saves the model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSave(IProgressMonitor progressMonitor)
+ {
+ // Save only resources that have actually changed.
+ //
+ final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+ saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+
+ // Do the work within an operation because this is a long running activity that modifies the workbench.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation()
+ {
+ // This is the method that gets invoked when the operation runs.
+ //
+ @Override
+ public void execute(IProgressMonitor monitor)
+ {
+ // Save the resources to the file system.
+ //
+ boolean first = true;
+ for (Resource resource : editingDomain.getResourceSet().getResources())
+ {
+ if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource))
+ {
+ try
+ {
+ long timeStamp = resource.getTimeStamp();
+ resource.save(saveOptions);
+ if (resource.getTimeStamp() != timeStamp)
+ {
+ savedResources.add(resource);
+ }
+ }
+ catch (Exception exception)
+ {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ first = false;
+ }
+ }
+ }
+ };
+
+ updateProblemIndication = false;
+ try
+ {
+ // This runs the options, and shows progress.
+ //
+ new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+ // Refresh the necessary state.
+ //
+ ((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+ }
+ catch (Exception exception)
+ {
+ // Something went wrong that shouldn't.
+ //
+ EXTLibraryEditorPlugin.INSTANCE.log(exception);
+ }
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+
+ /**
+ * This returns whether something has been persisted to the URI of the specified resource.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean isPersisted(Resource resource)
+ {
+ boolean result = false;
+ try
+ {
+ InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+ if (stream != null)
+ {
+ result = true;
+ stream.close();
+ }
+ }
+ catch (IOException e)
+ {
+ // Ignore
+ }
+ return result;
+ }
+
+ /**
+ * This always returns true because it is not currently supported.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isSaveAsAllowed()
+ {
+ return true;
+ }
+
+ /**
+ * This also changes the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSaveAs()
+ {
+ SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+ saveAsDialog.open();
+ IPath path = saveAsDialog.getResult();
+ if (path != null)
+ {
+ IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+ if (file != null)
+ {
+ doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void doSaveAs(URI uri, IEditorInput editorInput)
+ {
+ (editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ IProgressMonitor progressMonitor =
+ getActionBars().getStatusLineManager() != null ?
+ getActionBars().getStatusLineManager().getProgressMonitor() :
+ new NullProgressMonitor();
+ doSave(progressMonitor);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void gotoMarker(IMarker marker)
+ {
+ try
+ {
+ if (marker.getType().equals(EValidator.MARKER))
+ {
+ String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
+ if (uriAttribute != null)
+ {
+ URI uri = URI.createURI(uriAttribute);
+ EObject eObject = editingDomain.getResourceSet().getEObject(uri, true);
+ if (eObject != null)
+ {
+ setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));
+ }
+ }
+ }
+ }
+ catch (CoreException exception)
+ {
+ EXTLibraryEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ /**
+ * This is called during startup.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void init(IEditorSite site, IEditorInput editorInput)
+ {
+ setSite(site);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ site.setSelectionProvider(this);
+ site.getPage().addPartListener(partListener);
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setFocus()
+ {
+ if (currentViewerPane != null)
+ {
+ currentViewerPane.setFocus();
+ }
+ else
+ {
+ getControl(getActivePage()).setFocus();
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addSelectionChangedListener(ISelectionChangedListener listener)
+ {
+ selectionChangedListeners.add(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeSelectionChangedListener(ISelectionChangedListener listener)
+ {
+ selectionChangedListeners.remove(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ISelection getSelection()
+ {
+ return editorSelection;
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+ * Calling this result will notify the listeners.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelection(ISelection selection)
+ {
+ editorSelection = selection;
+
+ for (ISelectionChangedListener listener : selectionChangedListeners)
+ {
+ listener.selectionChanged(new SelectionChangedEvent(this, selection));
+ }
+ setStatusLineManager(selection);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStatusLineManager(ISelection selection)
+ {
+ IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
+ contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
+
+ if (statusLineManager != null)
+ {
+ if (selection instanceof IStructuredSelection)
+ {
+ Collection<?> collection = ((IStructuredSelection)selection).toList();
+ switch (collection.size())
+ {
+ case 0:
+ {
+ statusLineManager.setMessage(getString("_UI_NoObjectSelected")); //$NON-NLS-1$
+ break;
+ }
+ case 1:
+ {
+ String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+ statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text)); //$NON-NLS-1$
+ break;
+ }
+ default:
+ {
+ statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size()))); //$NON-NLS-1$
+ break;
+ }
+ }
+ }
+ else
+ {
+ statusLineManager.setMessage(""); //$NON-NLS-1$
+ }
+ }
+ }
+
+ /**
+ * This looks up a string in the plugin's plugin.properties file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key)
+ {
+ return EXTLibraryEditorPlugin.INSTANCE.getString(key);
+ }
+
+ /**
+ * This looks up a string in plugin.properties, making a substitution.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key, Object s1)
+ {
+ return EXTLibraryEditorPlugin.INSTANCE.getString(key, new Object [] { s1 });
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void menuAboutToShow(IMenuManager menuManager)
+ {
+ ((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingDomainActionBarContributor getActionBarContributor()
+ {
+ return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IActionBars getActionBars()
+ {
+ return getActionBarContributor().getActionBars();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdapterFactory getAdapterFactory()
+ {
+ return adapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void dispose()
+ {
+ updateProblemIndication = false;
+
+ ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+ getSite().getPage().removePartListener(partListener);
+
+ adapterFactory.dispose();
+
+ if (getActionBarContributor().getActiveEditor() == this)
+ {
+ getActionBarContributor().setActiveEditor(null);
+ }
+
+ if (propertySheetPage != null)
+ {
+ propertySheetPage.dispose();
+ }
+
+ if (contentOutlinePage != null)
+ {
+ contentOutlinePage.dispose();
+ }
+
+ super.dispose();
+ }
+
+ /**
+ * Returns whether the outline view should be presented to the user.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean showOutlineView()
+ {
+ return true;
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryEditorPlugin.java b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryEditorPlugin.java
new file mode 100644
index 000000000..af8603134
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryEditorPlugin.java
@@ -0,0 +1,114 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: EXTLibraryEditorPlugin.java,v 1.2 2006/12/29 18:27:34 marcelop Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.presentation;
+
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.ui.EclipseUIPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+
+/**
+ * This is the central singleton for the EXTLibrary editor plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class EXTLibraryEditorPlugin extends EMFPlugin
+{
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EXTLibraryEditorPlugin INSTANCE = new EXTLibraryEditorPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibraryEditorPlugin()
+ {
+ super
+ (new ResourceLocator []
+ {
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator()
+ {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin()
+ {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipseUIPlugin
+ {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation()
+ {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryModelWizard.java b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryModelWizard.java
new file mode 100644
index 000000000..c3f471ddc
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryModelWizard.java
@@ -0,0 +1,702 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: EXTLibraryModelWizard.java,v 1.6 2008/05/01 18:34:07 davidms Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.presentation;
+
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.emf.common.CommonPlugin;
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryFactory;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.provider.EXTLibraryEditPlugin;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.ModifyEvent;
+
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+
+import org.eclipse.core.runtime.Path;
+
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EXTLibraryModelWizard extends Wizard implements INewWizard
+{
+ /**
+ * The supported extensions for created files.
+ * <!-- begin-user-doc -->
+ * @since 2.4
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<String> FILE_EXTENSIONS =
+ Collections.unmodifiableList(Arrays.asList(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryEditorFilenameExtensions").split("\\s*,\\s*"))); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * A formatted list of supported file extensions, suitable for display.
+ * <!-- begin-user-doc -->
+ * @since 2.4
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String FORMATTED_FILE_EXTENSIONS =
+ EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+ /**
+ * This caches an instance of the model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EXTLibraryPackage extLibraryPackage = EXTLibraryPackage.eINSTANCE;
+
+ /**
+ * This caches an instance of the model factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EXTLibraryFactory extLibraryFactory = extLibraryPackage.getEXTLibraryFactory();
+
+ /**
+ * This is the file creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EXTLibraryModelWizardNewFileCreationPage newFileCreationPage;
+
+ /**
+ * This is the initial object creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EXTLibraryModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+ /**
+ * Remember the selection during initialization for populating the default container.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IStructuredSelection selection;
+
+ /**
+ * Remember the workbench during initialization.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IWorkbench workbench;
+
+ /**
+ * Caches the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected List<String> initialObjectNames;
+
+ /**
+ * This just records the information.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void init(IWorkbench workbench, IStructuredSelection selection)
+ {
+ this.workbench = workbench;
+ this.selection = selection;
+ setWindowTitle(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_Wizard_label")); //$NON-NLS-1$
+ setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(EXTLibraryEditorPlugin.INSTANCE.getImage("full/wizban/NewEXTLibrary"))); //$NON-NLS-1$
+ }
+
+ /**
+ * Returns the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<String> getInitialObjectNames()
+ {
+ if (initialObjectNames == null)
+ {
+ initialObjectNames = new ArrayList<String>();
+ for (EClassifier eClassifier : extLibraryPackage.getEClassifiers())
+ {
+ if (eClassifier instanceof EClass)
+ {
+ EClass eClass = (EClass)eClassifier;
+ if (!eClass.isAbstract())
+ {
+ initialObjectNames.add(eClass.getName());
+ }
+ }
+ }
+ Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
+ }
+ return initialObjectNames;
+ }
+
+ /**
+ * Create a new model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EObject createInitialModel()
+ {
+ EClass eClass = (EClass)extLibraryPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+ EObject rootObject = extLibraryFactory.create(eClass);
+ return rootObject;
+ }
+
+ /**
+ * Do the work after everything is specified.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean performFinish()
+ {
+ try
+ {
+ // Remember the file.
+ //
+ final IFile modelFile = getModelFile();
+
+ // Do the work within an operation.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation()
+ {
+ @Override
+ protected void execute(IProgressMonitor progressMonitor)
+ {
+ try
+ {
+ // Create a resource set
+ //
+ ResourceSet resourceSet = new ResourceSetImpl();
+
+ // Get the URI of the model file.
+ //
+ URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+
+ // Create a resource for this file.
+ //
+ Resource resource = resourceSet.createResource(fileURI, EXTLibraryPackage.eCONTENT_TYPE);
+
+ // Add the initial model object to the contents.
+ //
+ EObject rootObject = createInitialModel();
+ if (rootObject != null)
+ {
+ resource.getContents().add(rootObject);
+ }
+
+ // Save the contents of the resource to the file system.
+ //
+ Map<Object, Object> options = new HashMap<Object, Object>();
+ options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+ resource.save(options);
+ }
+ catch (Exception exception)
+ {
+ EXTLibraryEditorPlugin.INSTANCE.log(exception);
+ }
+ finally
+ {
+ progressMonitor.done();
+ }
+ }
+ };
+
+ getContainer().run(false, false, operation);
+
+ // Select the new file resource in the current view.
+ //
+ IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+ final IWorkbenchPart activePart = page.getActivePart();
+ if (activePart instanceof ISetSelectionTarget)
+ {
+ final ISelection targetSelection = new StructuredSelection(modelFile);
+ getShell().getDisplay().asyncExec
+ (new Runnable()
+ {
+ public void run()
+ {
+ ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
+ }
+ });
+ }
+
+ // Open an editor on the new file.
+ //
+ try
+ {
+ page.openEditor
+ (new FileEditorInput(modelFile),
+ workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());
+ }
+ catch (PartInitException exception)
+ {
+ MessageDialog.openError(workbenchWindow.getShell(), EXTLibraryEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage()); //$NON-NLS-1$
+ return false;
+ }
+
+ return true;
+ }
+ catch (Exception exception)
+ {
+ EXTLibraryEditorPlugin.INSTANCE.log(exception);
+ return false;
+ }
+ }
+
+ /**
+ * This is the one page of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class EXTLibraryModelWizardNewFileCreationPage extends WizardNewFileCreationPage
+ {
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibraryModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection)
+ {
+ super(pageId, selection);
+ }
+
+ /**
+ * The framework calls this to see if the file is correct.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean validatePage()
+ {
+ if (super.validatePage())
+ {
+ String extension = new Path(getFileName()).getFileExtension();
+ if (extension == null || !FILE_EXTENSIONS.contains(extension))
+ {
+ String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension"; //$NON-NLS-1$ //$NON-NLS-2$
+ setErrorMessage(EXTLibraryEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IFile getModelFile()
+ {
+ return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+ }
+ }
+
+ /**
+ * This is the page where the type of object to create is selected.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class EXTLibraryModelWizardInitialObjectCreationPage extends WizardPage
+ {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Combo initialObjectField;
+
+ /**
+ * @generated
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected List<String> encodings;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Combo encodingField;
+
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibraryModelWizardInitialObjectCreationPage(String pageId)
+ {
+ super(pageId);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createControl(Composite parent)
+ {
+ Composite composite = new Composite(parent, SWT.NONE);
+ {
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 1;
+ layout.verticalSpacing = 12;
+ composite.setLayout(layout);
+
+ GridData data = new GridData();
+ data.verticalAlignment = GridData.FILL;
+ data.grabExcessVerticalSpace = true;
+ data.horizontalAlignment = GridData.FILL;
+ composite.setLayoutData(data);
+ }
+
+ Label containerLabel = new Label(composite, SWT.LEFT);
+ {
+ containerLabel.setText(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_ModelObject")); //$NON-NLS-1$
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ containerLabel.setLayoutData(data);
+ }
+
+ initialObjectField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ initialObjectField.setLayoutData(data);
+ }
+
+ for (String objectName : getInitialObjectNames())
+ {
+ initialObjectField.add(getLabel(objectName));
+ }
+
+ if (initialObjectField.getItemCount() == 1)
+ {
+ initialObjectField.select(0);
+ }
+ initialObjectField.addModifyListener(validator);
+
+ Label encodingLabel = new Label(composite, SWT.LEFT);
+ {
+ encodingLabel.setText(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_XMLEncoding")); //$NON-NLS-1$
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ encodingLabel.setLayoutData(data);
+ }
+ encodingField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ encodingField.setLayoutData(data);
+ }
+
+ for (String encoding : getEncodings())
+ {
+ encodingField.add(encoding);
+ }
+
+ encodingField.select(0);
+ encodingField.addModifyListener(validator);
+
+ setPageComplete(validatePage());
+ setControl(composite);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModifyListener validator =
+ new ModifyListener()
+ {
+ public void modifyText(ModifyEvent e)
+ {
+ setPageComplete(validatePage());
+ }
+ };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean validatePage()
+ {
+ return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setVisible(boolean visible)
+ {
+ super.setVisible(visible);
+ if (visible)
+ {
+ if (initialObjectField.getItemCount() == 1)
+ {
+ initialObjectField.clearSelection();
+ encodingField.setFocus();
+ }
+ else
+ {
+ encodingField.clearSelection();
+ initialObjectField.setFocus();
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getInitialObjectName()
+ {
+ String label = initialObjectField.getText();
+
+ for (String name : getInitialObjectNames())
+ {
+ if (getLabel(name).equals(label))
+ {
+ return name;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getEncoding()
+ {
+ return encodingField.getText();
+ }
+
+ /**
+ * Returns the label for the specified type name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected String getLabel(String typeName)
+ {
+ try
+ {
+ return EXTLibraryEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ catch(MissingResourceException mre)
+ {
+ EXTLibraryEditorPlugin.INSTANCE.log(mre);
+ }
+ return typeName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<String> getEncodings()
+ {
+ if (encodings == null)
+ {
+ encodings = new ArrayList<String>();
+ for (StringTokenizer stringTokenizer = new StringTokenizer(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) //$NON-NLS-1$
+ {
+ encodings.add(stringTokenizer.nextToken());
+ }
+ }
+ return encodings;
+ }
+ }
+
+ /**
+ * The framework calls this to create the contents of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void addPages()
+ {
+ // Create a page, set the title, and the initial model file name.
+ //
+ newFileCreationPage = new EXTLibraryModelWizardNewFileCreationPage("Whatever", selection); //$NON-NLS-1$
+ newFileCreationPage.setTitle(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryModelWizard_label")); //$NON-NLS-1$
+ newFileCreationPage.setDescription(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryModelWizard_description")); //$NON-NLS-1$
+ newFileCreationPage.setFileName(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0)); //$NON-NLS-1$ //$NON-NLS-2$
+ addPage(newFileCreationPage);
+
+ // Try and get the resource selection to determine a current directory for the file dialog.
+ //
+ if (selection != null && !selection.isEmpty())
+ {
+ // Get the resource...
+ //
+ Object selectedElement = selection.iterator().next();
+ if (selectedElement instanceof IResource)
+ {
+ // Get the resource parent, if its a file.
+ //
+ IResource selectedResource = (IResource)selectedElement;
+ if (selectedResource.getType() == IResource.FILE)
+ {
+ selectedResource = selectedResource.getParent();
+ }
+
+ // This gives us a directory...
+ //
+ if (selectedResource instanceof IFolder || selectedResource instanceof IProject)
+ {
+ // Set this for the container.
+ //
+ newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+
+ // Make up a unique new name here.
+ //
+ String defaultModelBaseFilename = EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryEditorFilenameDefaultBase"); //$NON-NLS-1$
+ String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+ String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension; //$NON-NLS-1$
+ for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i)
+ {
+ modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension; //$NON-NLS-1$
+ }
+ newFileCreationPage.setFileName(modelFilename);
+ }
+ }
+ }
+ initialObjectCreationPage = new EXTLibraryModelWizardInitialObjectCreationPage("Whatever2"); //$NON-NLS-1$
+ initialObjectCreationPage.setTitle(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryModelWizard_label")); //$NON-NLS-1$
+ initialObjectCreationPage.setDescription(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description")); //$NON-NLS-1$
+ addPage(initialObjectCreationPage);
+ }
+
+ /**
+ * Get the file from the page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IFile getModelFile()
+ {
+ return newFileCreationPage.getModelFile();
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.ui/.classpath b/examples/org.eclipse.emf.parsley.examples.library.ui/.classpath
new file mode 100644
index 000000000..751c8f2e5
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/org.eclipse.emf.parsley.examples.library.ui/.project b/examples/org.eclipse.emf.parsley.examples.library.ui/.project
new file mode 100644
index 000000000..b42f03982
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.library.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/org.eclipse.emf.parsley.examples.library.ui/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.parsley.examples.library.ui/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..234c12327
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.emf.parsley.examples.library
+Bundle-SymbolicName: org.eclipse.emf.parsley.examples.library.ui;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-Activator: org.eclipse.emf.parsley.examples.library.Activator
+Require-Bundle: org.eclipse.ui;bundle-version="3.5.0",
+ org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.emf.parsley,
+ org.eclipse.emf.parsley.examples.library;bundle-version="0.1.0",
+ org.eclipse.emf.parsley.examples.views;bundle-version="0.1.0",
+ org.eclipse.emf.parsley.editors;bundle-version="0.1.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/examples/org.eclipse.emf.parsley.examples.library.ui/build.properties b/examples/org.eclipse.emf.parsley.examples.library.ui/build.properties
new file mode 100644
index 000000000..6c480f39f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.ui/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/
diff --git a/examples/org.eclipse.emf.parsley.examples.library.ui/icons/book.png b/examples/org.eclipse.emf.parsley.examples.library.ui/icons/book.png
new file mode 100644
index 000000000..1e15d9f6b
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.ui/icons/book.png
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.ui/icons/library.gif b/examples/org.eclipse.emf.parsley.examples.library.ui/icons/library.gif
new file mode 100644
index 000000000..2038b22ad
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.ui/icons/library.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.ui/icons/person.gif b/examples/org.eclipse.emf.parsley.examples.library.ui/icons/person.gif
new file mode 100644
index 000000000..fa074fb83
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.ui/icons/person.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.library.ui/plugin.xml b/examples/org.eclipse.emf.parsley.examples.library.ui/plugin.xml
new file mode 100644
index 000000000..f4858618a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.ui/plugin.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.emf.parsley.examples.library.ExecutableExtensionFactory:org.eclipse.emf.parsley.editors.EmfTreeEditor"
+ contributorClass="org.eclipse.emf.parsley.editors.EmfComponentsEditorActionBarContributor"
+ default="false"
+ id="org.eclipse.emf.parsley.examples.library.treeEditor"
+ name="Custom Library Editor">
+ <contentTypeBinding
+ contentTypeId="org.eclipse.emf.ecore.xmi">
+ </contentTypeBinding>
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ class="org.eclipse.emf.parsley.examples.library.ExecutableExtensionFactory:org.eclipse.emf.parsley.views.OnSelectionFormView"
+ id="org.eclipse.emf.parsley.examples.library.formview"
+ name="Custom Form View"
+ restorable="true">
+ </view>
+ <view
+ class="org.eclipse.emf.parsley.examples.library.ExecutableExtensionFactory:org.eclipse.emf.parsley.views.OnSelectionShowAllTableView"
+ id="org.eclipse.emf.parsley.examples.library.tableview"
+ name="Custom Show All Table View"
+ restorable="true">
+ </view>
+ <view
+ class="org.eclipse.emf.parsley.examples.library.ExecutableExtensionFactory:org.eclipse.emf.parsley.examples.views.TreeFormView"
+ id="org.eclipse.emf.parsley.examples.library.treeformview"
+ name="Custom Tree Form"
+ restorable="true">
+ </view>
+ </extension>
+
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/Activator.java b/examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/Activator.java
new file mode 100644
index 000000000..ac7f06794
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/Activator.java
@@ -0,0 +1,50 @@
+package org.eclipse.emf.parsley.examples.library;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.parsley.examples.library"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/CustomEStructuralFeaturesProvider.java b/examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/CustomEStructuralFeaturesProvider.java
new file mode 100644
index 000000000..d4a9985b5
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/CustomEStructuralFeaturesProvider.java
@@ -0,0 +1,26 @@
+package org.eclipse.emf.parsley.examples.library;
+
+import static org.eclipse.emf.parsley.examples.library.EXTLibraryPackage.Literals.*;
+
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+
+
+public class CustomEStructuralFeaturesProvider extends
+ FeaturesProvider {
+
+ @Override
+ protected void buildMap(EClassToEStructuralFeatureMap map) {
+ super.buildMap(map);
+ map.mapTo(LIBRARY,
+ LIBRARY__NAME,
+ ADDRESSABLE__ADDRESS);
+ map.mapTo(PERSON,
+ PERSON__FIRST_NAME,
+ PERSON__LAST_NAME,
+ ADDRESSABLE__ADDRESS);
+ map.mapTo(WRITER,
+ PERSON__FIRST_NAME,
+ PERSON__LAST_NAME,
+ WRITER__BOOKS);
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/CustomFeatureLabelProvider.java b/examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/CustomFeatureLabelProvider.java
new file mode 100644
index 000000000..cfae5166a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/CustomFeatureLabelProvider.java
@@ -0,0 +1,23 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.examples.library;
+
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider;
+
+/**
+ * @author bettini
+ *
+ */
+public class CustomFeatureLabelProvider extends PropertyDescriptionProvider {
+
+ public String text_Person_firstName(EStructuralFeature f) {
+ return "First name";
+ }
+
+ public String text_Person_lastName(EStructuralFeature f) {
+ return "Surname";
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/CustomLabelProvider.java b/examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/CustomLabelProvider.java
new file mode 100644
index 000000000..eae0bbfd8
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/CustomLabelProvider.java
@@ -0,0 +1,35 @@
+package org.eclipse.emf.parsley.examples.library;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.examples.library.Person;
+import org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider;
+
+import com.google.inject.Inject;
+
+
+
+public class CustomLabelProvider extends ViewerLabelProvider {
+
+ @Inject
+ public CustomLabelProvider(AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+
+ public String text(Book book) {
+ return "Book: " + book.getTitle();
+ }
+
+ public String image(Library l) {
+ return "library.gif";
+ }
+
+ public String image(Person p) {
+ return "person.gif";
+ }
+
+ public String image(Book b) {
+ return "book.png";
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/EmfComponentsGuiceModule.java b/examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/EmfComponentsGuiceModule.java
new file mode 100644
index 000000000..534da638f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/EmfComponentsGuiceModule.java
@@ -0,0 +1,30 @@
+package org.eclipse.emf.parsley.examples.library;
+
+
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+import org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+public class EmfComponentsGuiceModule extends org.eclipse.emf.parsley.EmfComponentsGuiceModule {
+
+ public EmfComponentsGuiceModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends ILabelProvider> bindILabelProvider() {
+ return CustomLabelProvider.class;
+ }
+
+ @Override
+ public Class<? extends PropertyDescriptionProvider> bindPropertyDescriptionProvider() {
+ return CustomFeatureLabelProvider.class;
+ }
+
+ @Override
+ public Class<? extends FeaturesProvider> bindFeaturesProvider() {
+ return CustomEStructuralFeaturesProvider.class;
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/ExecutableExtensionFactory.java b/examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/ExecutableExtensionFactory.java
new file mode 100644
index 000000000..2b4e63f0e
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library.ui/src/org/eclipse/emf/parsley/examples/library/ExecutableExtensionFactory.java
@@ -0,0 +1,21 @@
+package org.eclipse.emf.parsley.examples.library;
+
+import org.eclipse.emf.parsley.EmfComponentsExtensionFactory;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.osgi.framework.Bundle;
+
+
+public class ExecutableExtensionFactory extends
+ EmfComponentsExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return Activator.getDefault().getBundle();
+ }
+
+ @Override
+ protected EmfComponentsGuiceModule getModule() {
+ return new EmfComponentsGuiceModule(Activator.getDefault());
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library/.classpath b/examples/org.eclipse.emf.parsley.examples.library/.classpath
new file mode 100644
index 000000000..304e86186
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/org.eclipse.emf.parsley.examples.library/.project b/examples/org.eclipse.emf.parsley.examples.library/.project
new file mode 100644
index 000000000..40ef3cdb5
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.library</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/org.eclipse.emf.parsley.examples.library/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.parsley.examples.library/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..d29b0f382
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Wed Nov 08 10:51:59 EST 2006
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/org.eclipse.emf.parsley.examples.library/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.parsley.examples.library/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.parsley.examples.library/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.parsley.examples.library/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..59a9d5bfc
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.parsley.examples.library;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.parsley.examples.library,
+ org.eclipse.emf.parsley.examples.library.impl,
+ org.eclipse.emf.parsley.examples.library.util
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.emf.ecore;bundle-version="2.7.0";visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;bundle-version="2.7.0";visibility:=reexport
+Eclipse-LazyStart: true
+Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.parsley.examples.library/about.html b/examples/org.eclipse.emf.parsley.examples.library/about.html
new file mode 100644
index 000000000..1b8f94080
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.library/build.properties b/examples/org.eclipse.emf.parsley.examples.library/build.properties
new file mode 100644
index 000000000..833a42733
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/build.properties
@@ -0,0 +1,9 @@
+bin.includes = model/,\
+ .,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/examples/org.eclipse.emf.parsley.examples.library/model/Library.xmi b/examples/org.eclipse.emf.parsley.examples.library/model/Library.xmi
new file mode 100644
index 000000000..49e0ddaee
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/model/Library.xmi
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="ASCII"?>
+<extlib:Library xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:extlib="http:///org/eclipse/emf/parsley/examples/library/extlibrary.ecore/0.1.0"
+ xsi:schemaLocation="http:///org/eclipse/emf/parsley/examples/library/extlibrary.ecore/0.1.0 extlibrary.ecore"/>
diff --git a/examples/org.eclipse.emf.parsley.examples.library/model/extlibrary.ecore b/examples/org.eclipse.emf.parsley.examples.library/model/extlibrary.ecore
new file mode 100644
index 000000000..9cd20a7fb
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/model/extlibrary.ecore
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="extlibrary"
+ nsURI="http:///org/eclipse/emf/parsley/examples/library/extlibrary.ecore/0.1.0" nsPrefix="extlib">
+ <eClassifiers xsi:type="ecore:EClass" name="Book" eSuperTypes="#//CirculatingItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="pages" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="100"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" eType="#//BookCategory"
+ unsettable="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="author" lowerBound="1"
+ eType="#//Writer" eOpposite="#//Writer/books"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Library" eSuperTypes="#//Addressable">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="writers" upperBound="-1"
+ eType="#//Writer" volatile="true" transient="true" derived="true" resolveProxies="false" containment="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="group" value="#people"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="employees" upperBound="-1"
+ eType="#//Employee" volatile="true" transient="true" derived="true" resolveProxies="false" containment="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="group" value="#people"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="borrowers" upperBound="-1"
+ eType="#//Borrower" volatile="true" transient="true" derived="true" resolveProxies="false" containment="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="group" value="#people"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stock" ordered="false"
+ upperBound="-1" eType="#//Item" resolveProxies="false" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="books" ordered="false"
+ upperBound="-1" eType="#//Book" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="branches" upperBound="-1"
+ eType="#//Library" containment="true" eOpposite="#//Library/parentBranch"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parentBranch" eType="#//Library"
+ eOpposite="#//Library/branches"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="people" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="group"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Writer" eSuperTypes="#//Person">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ volatile="true" transient="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="books" upperBound="-1"
+ eType="#//Book" eOpposite="#//Book/author"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="BookCategory">
+ <eLiterals name="Mystery"/>
+ <eLiterals name="ScienceFiction" value="1"/>
+ <eLiterals name="Biography" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Item" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="publicationDate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Lendable" abstract="true" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="copies" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="borrowers" ordered="false"
+ upperBound="-1" eType="#//Borrower" eOpposite="#//Borrower/borrowed"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CirculatingItem" abstract="true" eSuperTypes="#//Item #//Lendable"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Periodical" abstract="true" eSuperTypes="#//Item">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="issuesPerYear" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AudioVisualItem" abstract="true" eSuperTypes="#//CirculatingItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="minutesLength" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="damaged" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BookOnTape" eSuperTypes="#//AudioVisualItem">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="reader" eType="#//Person"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="author" eType="#//Writer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="VideoCassette" eSuperTypes="#//AudioVisualItem">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="cast" upperBound="-1" eType="#//Person"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Borrower" eSuperTypes="#//Person">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="borrowed" upperBound="-1"
+ eType="#//Lendable" eOpposite="#//Lendable/borrowers"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Person" eSuperTypes="#//Addressable">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="firstName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lastName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Employee" eSuperTypes="#//Person">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="manager" eType="#//Employee"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Addressable" abstract="true" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="address" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/examples/org.eclipse.emf.parsley.examples.library/model/extlibrary.genmodel b/examples/org.eclipse.emf.parsley.examples.library/model/extlibrary.genmodel
new file mode 100644
index 000000000..f1bccf759
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/model/extlibrary.genmodel
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.parsley.examples.library/src"
+ editDirectory="/org.eclipse.emf.parsley.examples.library.edit/src" editorDirectory="/org.eclipse.emf.parsley.examples.library.editor/src"
+ modelPluginID="org.eclipse.emf.parsley.examples.library" runtimeJar="true" modelName="EXTLibrary"
+ editPluginClass="org.eclipse.emf.parsley.examples.library.provider.EXTLibraryEditPlugin"
+ editorPluginClass="org.eclipse.emf.parsley.examples.library.presentation.EXTLibraryEditorPlugin"
+ nonNLSMarkers="true" testsDirectory="" booleanFlagsField="eFlags" booleanFlagsReservedBits="8"
+ importerID="org.eclipse.emf.importer.ecore" containmentProxies="true" complianceLevel="5.0"
+ language="en">
+ <foreignModel>extlibrary.ecore</foreignModel>
+ <genPackages prefix="EXTLibrary" basePackage="org.eclipse.emf.examples" disposableProviderFactory="true"
+ contentTypeIdentifier="emfComponentsLibrary" ecorePackage="extlibrary.ecore#/">
+ <genEnums ecoreEnum="extlibrary.ecore#//BookCategory">
+ <genEnumLiterals ecoreEnumLiteral="extlibrary.ecore#//BookCategory/Mystery"/>
+ <genEnumLiterals ecoreEnumLiteral="extlibrary.ecore#//BookCategory/ScienceFiction"/>
+ <genEnumLiterals ecoreEnumLiteral="extlibrary.ecore#//BookCategory/Biography"/>
+ </genEnums>
+ <genClasses ecoreClass="extlibrary.ecore#//Book" labelFeature="#//extlibrary/Book/title">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Book/title"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Book/pages"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Book/category"/>
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//Book/author"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//Library">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Library/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extlibrary.ecore#//Library/writers"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extlibrary.ecore#//Library/employees"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extlibrary.ecore#//Library/borrowers"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extlibrary.ecore#//Library/stock"/>
+ <genFeatures property="Readonly" notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//Library/books"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference extlibrary.ecore#//Library/branches"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//Library/parentBranch"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Library/people"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//Writer">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Writer/name"/>
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//Writer/books"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="extlibrary.ecore#//Item">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Item/publicationDate"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//Lendable">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Lendable/copies"/>
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//Lendable/borrowers"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//CirculatingItem"/>
+ <genClasses image="false" ecoreClass="extlibrary.ecore#//Periodical" labelFeature="#//extlibrary/Periodical/title">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Periodical/title"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Periodical/issuesPerYear"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="extlibrary.ecore#//AudioVisualItem" labelFeature="#//extlibrary/AudioVisualItem/title">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//AudioVisualItem/title"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//AudioVisualItem/minutesLength"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//AudioVisualItem/damaged"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//BookOnTape" labelFeature="#//extlibrary/AudioVisualItem/title">
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//BookOnTape/reader"/>
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//BookOnTape/author"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//VideoCassette" labelFeature="#//extlibrary/AudioVisualItem/title">
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//VideoCassette/cast"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//Borrower" labelFeature="#//extlibrary/Person/lastName">
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//Borrower/borrowed"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//Person" labelFeature="#//extlibrary/Person/lastName">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Person/firstName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Person/lastName"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//Employee" labelFeature="#//extlibrary/Person/lastName">
+ <genFeatures notify="false" createChild="false" ecoreFeature="ecore:EReference extlibrary.ecore#//Employee/manager"/>
+ </genClasses>
+ <genClasses ecoreClass="extlibrary.ecore#//Addressable">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute extlibrary.ecore#//Addressable/address"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/examples/org.eclipse.emf.parsley.examples.library/plugin.properties b/examples/org.eclipse.emf.parsley.examples.library/plugin.properties
new file mode 100644
index 000000000..87cdf9a3e
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/plugin.properties
@@ -0,0 +1,23 @@
+# /**
+# * <copyright>
+# *
+# * Copyright (c) 2002-2008 IBM Corporation and others.
+# * 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:
+# * IBM - Initial API and implementation
+# *
+# * </copyright>
+# *
+# * $Id: plugin.properties,v 1.4 2009/04/07 18:58:20 davidms Exp $
+# */
+
+# NLS_MESSAGEFORMAT_VAR
+
+pluginName = EMF Extended Library Model Example
+providerName = Eclipse Modeling Project
+
+_UI_EXTLibrary_content_type = Extended Library File
diff --git a/examples/org.eclipse.emf.parsley.examples.library/plugin.xml b/examples/org.eclipse.emf.parsley.examples.library/plugin.xml
new file mode 100644
index 000000000..d8968a3f9
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/plugin.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http:///org/eclipse/emf/parsley/examples/library/extlibrary.ecore/0.1.0"
+ class="org.eclipse.emf.parsley.examples.library.EXTLibraryPackage"
+ genModel="model/extlibrary.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.content_parser">
+ <parser
+ contentTypeIdentifier="emfComponentsLibrary"
+ class="org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.core.contenttype.contentTypes">
+ <content-type
+ base-type="org.eclipse.emf.ecore.xmi"
+ file-extensions="extlibrary"
+ id="emfComponentsLibrary"
+ name="%_UI_EXTLibrary_content_type"
+ priority="normal">
+ <describer class="org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl$Describer">
+ <parameter name="namespace" value="http:///org/eclipse/emf/parsley/examples/library/extlibrary.ecore/0.1.0"/>
+ <parameter name="kind" value="xmi"/>
+ </describer>
+ </content-type>
+ </extension>
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Addressable.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Addressable.java
new file mode 100644
index 000000000..dc77b497a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Addressable.java
@@ -0,0 +1,63 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: Addressable.java,v 1.2 2008/05/04 17:03:18 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library;
+
+
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Addressable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Addressable#getAddress <em>Address</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getAddressable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface Addressable extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Address</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Address</em>' attribute.
+ * @see #setAddress(String)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getAddressable_Address()
+ * @model
+ * @generated
+ */
+ String getAddress();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.Addressable#getAddress <em>Address</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Address</em>' attribute.
+ * @see #getAddress()
+ * @generated
+ */
+ void setAddress(String value);
+
+} // Addressable
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/AudioVisualItem.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/AudioVisualItem.java
new file mode 100644
index 000000000..f06689d2e
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/AudioVisualItem.java
@@ -0,0 +1,106 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: AudioVisualItem.java,v 1.2 2008/05/04 17:03:18 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Audo Visual Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.AudioVisualItem#getTitle <em>Title</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.AudioVisualItem#getMinutesLength <em>Minutes Length</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.AudioVisualItem#isDamaged <em>Damaged</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getAudioVisualItem()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AudioVisualItem extends CirculatingItem
+{
+ /**
+ * Returns the value of the '<em><b>Title</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Title</em>' attribute.
+ * @see #setTitle(String)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getAudioVisualItem_Title()
+ * @model
+ * @generated
+ */
+ String getTitle();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.AudioVisualItem#getTitle <em>Title</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Title</em>' attribute.
+ * @see #getTitle()
+ * @generated
+ */
+ void setTitle(String value);
+
+ /**
+ * Returns the value of the '<em><b>Minutes Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Minutes Length</em>' attribute.
+ * @see #setMinutesLength(int)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getAudioVisualItem_MinutesLength()
+ * @model required="true"
+ * @generated
+ */
+ int getMinutesLength();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.AudioVisualItem#getMinutesLength <em>Minutes Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Minutes Length</em>' attribute.
+ * @see #getMinutesLength()
+ * @generated
+ */
+ void setMinutesLength(int value);
+
+ /**
+ * Returns the value of the '<em><b>Damaged</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Damaged</em>' attribute.
+ * @see #setDamaged(boolean)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getAudioVisualItem_Damaged()
+ * @model
+ * @generated
+ */
+ boolean isDamaged();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.AudioVisualItem#isDamaged <em>Damaged</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Damaged</em>' attribute.
+ * @see #isDamaged()
+ * @generated
+ */
+ void setDamaged(boolean value);
+
+} // AudioVisualItem
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Book.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Book.java
new file mode 100644
index 000000000..ae8f55a65
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Book.java
@@ -0,0 +1,162 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: Book.java,v 1.2 2008/05/04 17:03:18 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Book</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Book#getTitle <em>Title</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Book#getPages <em>Pages</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Book#getCategory <em>Category</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Book#getAuthor <em>Author</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getBook()
+ * @model
+ * @generated
+ */
+public interface Book extends CirculatingItem
+{
+ /**
+ * Returns the value of the '<em><b>Title</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Title</em>' attribute.
+ * @see #setTitle(String)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getBook_Title()
+ * @model
+ * @generated
+ */
+ String getTitle();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.Book#getTitle <em>Title</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Title</em>' attribute.
+ * @see #getTitle()
+ * @generated
+ */
+ void setTitle(String value);
+
+ /**
+ * Returns the value of the '<em><b>Pages</b></em>' attribute.
+ * The default value is <code>"100"</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pages</em>' attribute.
+ * @see #setPages(int)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getBook_Pages()
+ * @model default="100"
+ * @generated
+ */
+ int getPages();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.Book#getPages <em>Pages</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pages</em>' attribute.
+ * @see #getPages()
+ * @generated
+ */
+ void setPages(int value);
+
+ /**
+ * Returns the value of the '<em><b>Category</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.parsley.examples.library.BookCategory}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Category</em>' attribute.
+ * @see org.eclipse.emf.parsley.examples.library.BookCategory
+ * @see #isSetCategory()
+ * @see #unsetCategory()
+ * @see #setCategory(BookCategory)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getBook_Category()
+ * @model unsettable="true"
+ * @generated
+ */
+ BookCategory getCategory();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.Book#getCategory <em>Category</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Category</em>' attribute.
+ * @see org.eclipse.emf.parsley.examples.library.BookCategory
+ * @see #isSetCategory()
+ * @see #unsetCategory()
+ * @see #getCategory()
+ * @generated
+ */
+ void setCategory(BookCategory value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.parsley.examples.library.Book#getCategory <em>Category</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetCategory()
+ * @see #getCategory()
+ * @see #setCategory(BookCategory)
+ * @generated
+ */
+ void unsetCategory();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.parsley.examples.library.Book#getCategory <em>Category</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Category</em>' attribute is set.
+ * @see #unsetCategory()
+ * @see #getCategory()
+ * @see #setCategory(BookCategory)
+ * @generated
+ */
+ boolean isSetCategory();
+
+ /**
+ * Returns the value of the '<em><b>Author</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.parsley.examples.library.Writer#getBooks <em>Books</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Author</em>' reference.
+ * @see #setAuthor(Writer)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getBook_Author()
+ * @see org.eclipse.emf.parsley.examples.library.Writer#getBooks
+ * @model opposite="books" required="true"
+ * @generated
+ */
+ Writer getAuthor();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.Book#getAuthor <em>Author</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Author</em>' reference.
+ * @see #getAuthor()
+ * @generated
+ */
+ void setAuthor(Writer value);
+
+} // Book
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/BookCategory.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/BookCategory.java
new file mode 100644
index 000000000..439486461
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/BookCategory.java
@@ -0,0 +1,250 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: BookCategory.java,v 1.4 2008/05/04 17:03:18 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library;
+
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Book Category</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getBookCategory()
+ * @model
+ * @generated
+ */
+public enum BookCategory implements Enumerator
+{
+ /**
+ * The '<em><b>Mystery</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MYSTERY
+ * @generated
+ * @ordered
+ */
+ MYSTERY_LITERAL(0, "Mystery", "Mystery"),
+ /**
+ * The '<em><b>Science Fiction</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SCIENCE_FICTION
+ * @generated
+ * @ordered
+ */
+ SCIENCE_FICTION_LITERAL(1, "ScienceFiction", "ScienceFiction"),
+ /**
+ * The '<em><b>Biography</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BIOGRAPHY
+ * @generated
+ * @ordered
+ */
+ BIOGRAPHY_LITERAL(2, "Biography", "Biography");
+ /**
+ * The '<em><b>Mystery</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MYSTERY_LITERAL
+ * @model name="Mystery"
+ * @generated
+ * @ordered
+ */
+ public static final int MYSTERY = 0;
+
+ /**
+ * The '<em><b>Science Fiction</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SCIENCE_FICTION_LITERAL
+ * @model name="ScienceFiction"
+ * @generated
+ * @ordered
+ */
+ public static final int SCIENCE_FICTION = 1;
+
+ /**
+ * The '<em><b>Biography</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BIOGRAPHY_LITERAL
+ * @model name="Biography"
+ * @generated
+ * @ordered
+ */
+ public static final int BIOGRAPHY = 2;
+
+ /**
+ * An array of all the '<em><b>Book Category</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final BookCategory[] VALUES_ARRAY =
+ new BookCategory[]
+ {
+ MYSTERY_LITERAL,
+ SCIENCE_FICTION_LITERAL,
+ BIOGRAPHY_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Book Category</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<BookCategory> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Book Category</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BookCategory get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ BookCategory result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Book Category</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BookCategory getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ BookCategory result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Book Category</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BookCategory get(int value)
+ {
+ switch (value)
+ {
+ case MYSTERY: return MYSTERY_LITERAL;
+ case SCIENCE_FICTION: return SCIENCE_FICTION_LITERAL;
+ case BIOGRAPHY: return BIOGRAPHY_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private BookCategory(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/BookOnTape.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/BookOnTape.java
new file mode 100644
index 000000000..1bcf67b17
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/BookOnTape.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: BookOnTape.java,v 1.3 2008/05/04 17:03:17 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Book On Tape</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.BookOnTape#getReader <em>Reader</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.BookOnTape#getAuthor <em>Author</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getBookOnTape()
+ * @model
+ * @generated
+ */
+public interface BookOnTape extends AudioVisualItem
+{
+ /**
+ * Returns the value of the '<em><b>Reader</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Reader</em>' reference.
+ * @see #setReader(Person)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getBookOnTape_Reader()
+ * @model
+ * @generated
+ */
+ Person getReader();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.BookOnTape#getReader <em>Reader</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Reader</em>' reference.
+ * @see #getReader()
+ * @generated
+ */
+ void setReader(Person value);
+
+ /**
+ * Returns the value of the '<em><b>Author</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Author</em>' reference.
+ * @see #setAuthor(Writer)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getBookOnTape_Author()
+ * @model
+ * @generated
+ */
+ Writer getAuthor();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.BookOnTape#getAuthor <em>Author</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Author</em>' reference.
+ * @see #getAuthor()
+ * @generated
+ */
+ void setAuthor(Writer value);
+
+} // BookOnTape
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Borrower.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Borrower.java
new file mode 100644
index 000000000..e9fe31de1
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Borrower.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: Borrower.java,v 1.4 2008/05/04 17:03:18 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library;
+
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Borrower</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Borrower#getBorrowed <em>Borrowed</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getBorrower()
+ * @model
+ * @generated
+ */
+public interface Borrower extends Person
+{
+ /**
+ * Returns the value of the '<em><b>Borrowed</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.library.Lendable}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.parsley.examples.library.Lendable#getBorrowers <em>Borrowers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Borrowed</em>' reference list.
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getBorrower_Borrowed()
+ * @see org.eclipse.emf.parsley.examples.library.Lendable#getBorrowers
+ * @model opposite="borrowers"
+ * @generated
+ */
+ EList<Lendable> getBorrowed();
+
+} // Borrower
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/CirculatingItem.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/CirculatingItem.java
new file mode 100644
index 000000000..ca49a703f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/CirculatingItem.java
@@ -0,0 +1,33 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: CirculatingItem.java,v 1.2 2006/12/29 18:27:44 marcelop Exp $
+ */
+package org.eclipse.emf.parsley.examples.library;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Circulating Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getCirculatingItem()
+ * @model abstract="true"
+ * @generated
+ */
+public interface CirculatingItem extends Item, Lendable
+{
+ // No additional features
+} // CirculatingItem
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/EXTLibraryFactory.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/EXTLibraryFactory.java
new file mode 100644
index 000000000..533d5fbb3
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/EXTLibraryFactory.java
@@ -0,0 +1,122 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: EXTLibraryFactory.java,v 1.2 2005/12/05 12:36:02 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library;
+
+
+import org.eclipse.emf.ecore.EFactory;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage
+ * @generated
+ */
+public interface EXTLibraryFactory extends EFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EXTLibraryFactory eINSTANCE = org.eclipse.emf.parsley.examples.library.impl.EXTLibraryFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Book</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Book</em>'.
+ * @generated
+ */
+ Book createBook();
+
+ /**
+ * Returns a new object of class '<em>Library</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Library</em>'.
+ * @generated
+ */
+ Library createLibrary();
+
+ /**
+ * Returns a new object of class '<em>Writer</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Writer</em>'.
+ * @generated
+ */
+ Writer createWriter();
+
+ /**
+ * Returns a new object of class '<em>Book On Tape</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Book On Tape</em>'.
+ * @generated
+ */
+ BookOnTape createBookOnTape();
+
+ /**
+ * Returns a new object of class '<em>Video Cassette</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Video Cassette</em>'.
+ * @generated
+ */
+ VideoCassette createVideoCassette();
+
+ /**
+ * Returns a new object of class '<em>Borrower</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Borrower</em>'.
+ * @generated
+ */
+ Borrower createBorrower();
+
+ /**
+ * Returns a new object of class '<em>Person</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Person</em>'.
+ * @generated
+ */
+ Person createPerson();
+
+ /**
+ * Returns a new object of class '<em>Employee</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Employee</em>'.
+ * @generated
+ */
+ Employee createEmployee();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ EXTLibraryPackage getEXTLibraryPackage();
+
+} //EXTLibraryFactory
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/EXTLibraryPackage.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/EXTLibraryPackage.java
new file mode 100644
index 000000000..0504eebec
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/EXTLibraryPackage.java
@@ -0,0 +1,1851 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: EXTLibraryPackage.java,v 1.3 2008/05/01 18:31:58 davidms Exp $
+ */
+package org.eclipse.emf.parsley.examples.library;
+
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface EXTLibraryPackage extends EPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "extlibrary"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///org/eclipse/emf/parsley/examples/library/extlibrary.ecore/0.1.0"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "extlib"; //$NON-NLS-1$
+
+ /**
+ * The package content type ID.
+ * <!-- begin-user-doc -->
+ * @since 2.4
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eCONTENT_TYPE = "emfComponentsLibrary"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EXTLibraryPackage eINSTANCE = org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.library.impl.ItemImpl <em>Item</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.ItemImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getItem()
+ * @generated
+ */
+ int ITEM = 3;
+
+ /**
+ * The feature id for the '<em><b>Publication Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ITEM__PUBLICATION_DATE = 0;
+
+ /**
+ * The number of structural features of the '<em>Item</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ITEM_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.library.impl.CirculatingItemImpl <em>Circulating Item</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.CirculatingItemImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getCirculatingItem()
+ * @generated
+ */
+ int CIRCULATING_ITEM = 5;
+
+ /**
+ * The feature id for the '<em><b>Publication Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CIRCULATING_ITEM__PUBLICATION_DATE = ITEM__PUBLICATION_DATE;
+
+ /**
+ * The feature id for the '<em><b>Copies</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CIRCULATING_ITEM__COPIES = ITEM_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Borrowers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CIRCULATING_ITEM__BORROWERS = ITEM_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Circulating Item</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CIRCULATING_ITEM_FEATURE_COUNT = ITEM_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.library.impl.BookImpl <em>Book</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.BookImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getBook()
+ * @generated
+ */
+ int BOOK = 0;
+
+ /**
+ * The feature id for the '<em><b>Publication Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK__PUBLICATION_DATE = CIRCULATING_ITEM__PUBLICATION_DATE;
+
+ /**
+ * The feature id for the '<em><b>Copies</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK__COPIES = CIRCULATING_ITEM__COPIES;
+
+ /**
+ * The feature id for the '<em><b>Borrowers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK__BORROWERS = CIRCULATING_ITEM__BORROWERS;
+
+ /**
+ * The feature id for the '<em><b>Title</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK__TITLE = CIRCULATING_ITEM_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Pages</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK__PAGES = CIRCULATING_ITEM_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Category</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK__CATEGORY = CIRCULATING_ITEM_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Author</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK__AUTHOR = CIRCULATING_ITEM_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Book</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_FEATURE_COUNT = CIRCULATING_ITEM_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.library.Addressable <em>Addressable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.Addressable
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getAddressable()
+ * @generated
+ */
+ int ADDRESSABLE = 13;
+
+ /**
+ * The feature id for the '<em><b>Address</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDRESSABLE__ADDRESS = 0;
+
+ /**
+ * The number of structural features of the '<em>Addressable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDRESSABLE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.library.impl.LibraryImpl <em>Library</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.LibraryImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getLibrary()
+ * @generated
+ */
+ int LIBRARY = 1;
+
+ /**
+ * The feature id for the '<em><b>Address</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__ADDRESS = ADDRESSABLE__ADDRESS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__NAME = ADDRESSABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Writers</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__WRITERS = ADDRESSABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Employees</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__EMPLOYEES = ADDRESSABLE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Borrowers</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__BORROWERS = ADDRESSABLE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Stock</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__STOCK = ADDRESSABLE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Books</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__BOOKS = ADDRESSABLE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Branches</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__BRANCHES = ADDRESSABLE_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Parent Branch</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__PARENT_BRANCH = ADDRESSABLE_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>People</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY__PEOPLE = ADDRESSABLE_FEATURE_COUNT + 8;
+
+ /**
+ * The number of structural features of the '<em>Library</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LIBRARY_FEATURE_COUNT = ADDRESSABLE_FEATURE_COUNT + 9;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.library.impl.PersonImpl <em>Person</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.PersonImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getPerson()
+ * @generated
+ */
+ int PERSON = 11;
+
+ /**
+ * The feature id for the '<em><b>Address</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERSON__ADDRESS = ADDRESSABLE__ADDRESS;
+
+ /**
+ * The feature id for the '<em><b>First Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERSON__FIRST_NAME = ADDRESSABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Last Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERSON__LAST_NAME = ADDRESSABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Person</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERSON_FEATURE_COUNT = ADDRESSABLE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.library.impl.WriterImpl <em>Writer</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.WriterImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getWriter()
+ * @generated
+ */
+ int WRITER = 2;
+
+ /**
+ * The feature id for the '<em><b>Address</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WRITER__ADDRESS = PERSON__ADDRESS;
+
+ /**
+ * The feature id for the '<em><b>First Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WRITER__FIRST_NAME = PERSON__FIRST_NAME;
+
+ /**
+ * The feature id for the '<em><b>Last Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WRITER__LAST_NAME = PERSON__LAST_NAME;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WRITER__NAME = PERSON_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Books</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WRITER__BOOKS = PERSON_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Writer</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WRITER_FEATURE_COUNT = PERSON_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.library.Lendable <em>Lendable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.Lendable
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getLendable()
+ * @generated
+ */
+ int LENDABLE = 4;
+
+ /**
+ * The feature id for the '<em><b>Copies</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LENDABLE__COPIES = 0;
+
+ /**
+ * The feature id for the '<em><b>Borrowers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LENDABLE__BORROWERS = 1;
+
+ /**
+ * The number of structural features of the '<em>Lendable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LENDABLE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.library.impl.PeriodicalImpl <em>Periodical</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.PeriodicalImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getPeriodical()
+ * @generated
+ */
+ int PERIODICAL = 6;
+
+ /**
+ * The feature id for the '<em><b>Publication Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERIODICAL__PUBLICATION_DATE = ITEM__PUBLICATION_DATE;
+
+ /**
+ * The feature id for the '<em><b>Title</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERIODICAL__TITLE = ITEM_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Issues Per Year</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERIODICAL__ISSUES_PER_YEAR = ITEM_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Periodical</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERIODICAL_FEATURE_COUNT = ITEM_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.library.impl.AudioVisualItemImpl <em>Audio Visual Item</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.AudioVisualItemImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getAudioVisualItem()
+ * @generated
+ */
+ int AUDIO_VISUAL_ITEM = 7;
+
+ /**
+ * The feature id for the '<em><b>Publication Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUDIO_VISUAL_ITEM__PUBLICATION_DATE = CIRCULATING_ITEM__PUBLICATION_DATE;
+
+ /**
+ * The feature id for the '<em><b>Copies</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUDIO_VISUAL_ITEM__COPIES = CIRCULATING_ITEM__COPIES;
+
+ /**
+ * The feature id for the '<em><b>Borrowers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUDIO_VISUAL_ITEM__BORROWERS = CIRCULATING_ITEM__BORROWERS;
+
+ /**
+ * The feature id for the '<em><b>Title</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUDIO_VISUAL_ITEM__TITLE = CIRCULATING_ITEM_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Minutes Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUDIO_VISUAL_ITEM__MINUTES_LENGTH = CIRCULATING_ITEM_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Damaged</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUDIO_VISUAL_ITEM__DAMAGED = CIRCULATING_ITEM_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Audio Visual Item</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AUDIO_VISUAL_ITEM_FEATURE_COUNT = CIRCULATING_ITEM_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.library.impl.BookOnTapeImpl <em>Book On Tape</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.BookOnTapeImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getBookOnTape()
+ * @generated
+ */
+ int BOOK_ON_TAPE = 8;
+
+ /**
+ * The feature id for the '<em><b>Publication Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_ON_TAPE__PUBLICATION_DATE = AUDIO_VISUAL_ITEM__PUBLICATION_DATE;
+
+ /**
+ * The feature id for the '<em><b>Copies</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_ON_TAPE__COPIES = AUDIO_VISUAL_ITEM__COPIES;
+
+ /**
+ * The feature id for the '<em><b>Borrowers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_ON_TAPE__BORROWERS = AUDIO_VISUAL_ITEM__BORROWERS;
+
+ /**
+ * The feature id for the '<em><b>Title</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_ON_TAPE__TITLE = AUDIO_VISUAL_ITEM__TITLE;
+
+ /**
+ * The feature id for the '<em><b>Minutes Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_ON_TAPE__MINUTES_LENGTH = AUDIO_VISUAL_ITEM__MINUTES_LENGTH;
+
+ /**
+ * The feature id for the '<em><b>Damaged</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_ON_TAPE__DAMAGED = AUDIO_VISUAL_ITEM__DAMAGED;
+
+ /**
+ * The feature id for the '<em><b>Reader</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_ON_TAPE__READER = AUDIO_VISUAL_ITEM_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Author</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_ON_TAPE__AUTHOR = AUDIO_VISUAL_ITEM_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Book On Tape</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOOK_ON_TAPE_FEATURE_COUNT = AUDIO_VISUAL_ITEM_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.library.impl.VideoCassetteImpl <em>Video Cassette</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.VideoCassetteImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getVideoCassette()
+ * @generated
+ */
+ int VIDEO_CASSETTE = 9;
+
+ /**
+ * The feature id for the '<em><b>Publication Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIDEO_CASSETTE__PUBLICATION_DATE = AUDIO_VISUAL_ITEM__PUBLICATION_DATE;
+
+ /**
+ * The feature id for the '<em><b>Copies</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIDEO_CASSETTE__COPIES = AUDIO_VISUAL_ITEM__COPIES;
+
+ /**
+ * The feature id for the '<em><b>Borrowers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIDEO_CASSETTE__BORROWERS = AUDIO_VISUAL_ITEM__BORROWERS;
+
+ /**
+ * The feature id for the '<em><b>Title</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIDEO_CASSETTE__TITLE = AUDIO_VISUAL_ITEM__TITLE;
+
+ /**
+ * The feature id for the '<em><b>Minutes Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIDEO_CASSETTE__MINUTES_LENGTH = AUDIO_VISUAL_ITEM__MINUTES_LENGTH;
+
+ /**
+ * The feature id for the '<em><b>Damaged</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIDEO_CASSETTE__DAMAGED = AUDIO_VISUAL_ITEM__DAMAGED;
+
+ /**
+ * The feature id for the '<em><b>Cast</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIDEO_CASSETTE__CAST = AUDIO_VISUAL_ITEM_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Video Cassette</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VIDEO_CASSETTE_FEATURE_COUNT = AUDIO_VISUAL_ITEM_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.library.impl.BorrowerImpl <em>Borrower</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.BorrowerImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getBorrower()
+ * @generated
+ */
+ int BORROWER = 10;
+
+ /**
+ * The feature id for the '<em><b>Address</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BORROWER__ADDRESS = PERSON__ADDRESS;
+
+ /**
+ * The feature id for the '<em><b>First Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BORROWER__FIRST_NAME = PERSON__FIRST_NAME;
+
+ /**
+ * The feature id for the '<em><b>Last Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BORROWER__LAST_NAME = PERSON__LAST_NAME;
+
+ /**
+ * The feature id for the '<em><b>Borrowed</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BORROWER__BORROWED = PERSON_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Borrower</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BORROWER_FEATURE_COUNT = PERSON_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.library.impl.EmployeeImpl <em>Employee</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.EmployeeImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getEmployee()
+ * @generated
+ */
+ int EMPLOYEE = 12;
+
+ /**
+ * The feature id for the '<em><b>Address</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMPLOYEE__ADDRESS = PERSON__ADDRESS;
+
+ /**
+ * The feature id for the '<em><b>First Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMPLOYEE__FIRST_NAME = PERSON__FIRST_NAME;
+
+ /**
+ * The feature id for the '<em><b>Last Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMPLOYEE__LAST_NAME = PERSON__LAST_NAME;
+
+ /**
+ * The feature id for the '<em><b>Manager</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMPLOYEE__MANAGER = PERSON_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Employee</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMPLOYEE_FEATURE_COUNT = PERSON_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.library.BookCategory <em>Book Category</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.BookCategory
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getBookCategory()
+ * @generated
+ */
+ int BOOK_CATEGORY = 14;
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.library.Book <em>Book</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Book</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Book
+ * @generated
+ */
+ EClass getBook();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.library.Book#getTitle <em>Title</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Title</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Book#getTitle()
+ * @see #getBook()
+ * @generated
+ */
+ EAttribute getBook_Title();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.library.Book#getPages <em>Pages</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Pages</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Book#getPages()
+ * @see #getBook()
+ * @generated
+ */
+ EAttribute getBook_Pages();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.library.Book#getCategory <em>Category</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Category</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Book#getCategory()
+ * @see #getBook()
+ * @generated
+ */
+ EAttribute getBook_Category();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.parsley.examples.library.Book#getAuthor <em>Author</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Author</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Book#getAuthor()
+ * @see #getBook()
+ * @generated
+ */
+ EReference getBook_Author();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.library.Library <em>Library</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Library</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Library
+ * @generated
+ */
+ EClass getLibrary();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.library.Library#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Library#getName()
+ * @see #getLibrary()
+ * @generated
+ */
+ EAttribute getLibrary_Name();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.examples.library.Library#getWriters <em>Writers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Writers</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Library#getWriters()
+ * @see #getLibrary()
+ * @generated
+ */
+ EReference getLibrary_Writers();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.examples.library.Library#getEmployees <em>Employees</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Employees</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Library#getEmployees()
+ * @see #getLibrary()
+ * @generated
+ */
+ EReference getLibrary_Employees();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.examples.library.Library#getBorrowers <em>Borrowers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Borrowers</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Library#getBorrowers()
+ * @see #getLibrary()
+ * @generated
+ */
+ EReference getLibrary_Borrowers();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.examples.library.Library#getStock <em>Stock</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Stock</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Library#getStock()
+ * @see #getLibrary()
+ * @generated
+ */
+ EReference getLibrary_Stock();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.parsley.examples.library.Library#getBooks <em>Books</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Books</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Library#getBooks()
+ * @see #getLibrary()
+ * @generated
+ */
+ EReference getLibrary_Books();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.examples.library.Library#getBranches <em>Branches</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Branches</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Library#getBranches()
+ * @see #getLibrary()
+ * @generated
+ */
+ EReference getLibrary_Branches();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.emf.parsley.examples.library.Library#getParentBranch <em>Parent Branch</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Parent Branch</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Library#getParentBranch()
+ * @see #getLibrary()
+ * @generated
+ */
+ EReference getLibrary_ParentBranch();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.emf.parsley.examples.library.Library#getPeople <em>People</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>People</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Library#getPeople()
+ * @see #getLibrary()
+ * @generated
+ */
+ EAttribute getLibrary_People();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.library.Writer <em>Writer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Writer</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Writer
+ * @generated
+ */
+ EClass getWriter();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.library.Writer#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Writer#getName()
+ * @see #getWriter()
+ * @generated
+ */
+ EAttribute getWriter_Name();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.parsley.examples.library.Writer#getBooks <em>Books</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Books</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Writer#getBooks()
+ * @see #getWriter()
+ * @generated
+ */
+ EReference getWriter_Books();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.library.Item <em>Item</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Item</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Item
+ * @generated
+ */
+ EClass getItem();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.library.Item#getPublicationDate <em>Publication Date</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Publication Date</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Item#getPublicationDate()
+ * @see #getItem()
+ * @generated
+ */
+ EAttribute getItem_PublicationDate();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.library.Lendable <em>Lendable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Lendable</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Lendable
+ * @generated
+ */
+ EClass getLendable();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.library.Lendable#getCopies <em>Copies</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Copies</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Lendable#getCopies()
+ * @see #getLendable()
+ * @generated
+ */
+ EAttribute getLendable_Copies();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.parsley.examples.library.Lendable#getBorrowers <em>Borrowers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Borrowers</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Lendable#getBorrowers()
+ * @see #getLendable()
+ * @generated
+ */
+ EReference getLendable_Borrowers();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.library.CirculatingItem <em>Circulating Item</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Circulating Item</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.CirculatingItem
+ * @generated
+ */
+ EClass getCirculatingItem();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.library.Periodical <em>Periodical</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Periodical</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Periodical
+ * @generated
+ */
+ EClass getPeriodical();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.library.Periodical#getTitle <em>Title</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Title</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Periodical#getTitle()
+ * @see #getPeriodical()
+ * @generated
+ */
+ EAttribute getPeriodical_Title();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.library.Periodical#getIssuesPerYear <em>Issues Per Year</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Issues Per Year</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Periodical#getIssuesPerYear()
+ * @see #getPeriodical()
+ * @generated
+ */
+ EAttribute getPeriodical_IssuesPerYear();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.library.AudioVisualItem <em>Audio Visual Item</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Audio Visual Item</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.AudioVisualItem
+ * @generated
+ */
+ EClass getAudioVisualItem();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.library.AudioVisualItem#getTitle <em>Title</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Title</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.AudioVisualItem#getTitle()
+ * @see #getAudioVisualItem()
+ * @generated
+ */
+ EAttribute getAudioVisualItem_Title();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.library.AudioVisualItem#getMinutesLength <em>Minutes Length</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Minutes Length</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.AudioVisualItem#getMinutesLength()
+ * @see #getAudioVisualItem()
+ * @generated
+ */
+ EAttribute getAudioVisualItem_MinutesLength();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.library.AudioVisualItem#isDamaged <em>Damaged</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Damaged</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.AudioVisualItem#isDamaged()
+ * @see #getAudioVisualItem()
+ * @generated
+ */
+ EAttribute getAudioVisualItem_Damaged();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.library.BookOnTape <em>Book On Tape</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Book On Tape</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.BookOnTape
+ * @generated
+ */
+ EClass getBookOnTape();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.parsley.examples.library.BookOnTape#getReader <em>Reader</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Reader</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.BookOnTape#getReader()
+ * @see #getBookOnTape()
+ * @generated
+ */
+ EReference getBookOnTape_Reader();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.parsley.examples.library.BookOnTape#getAuthor <em>Author</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Author</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.BookOnTape#getAuthor()
+ * @see #getBookOnTape()
+ * @generated
+ */
+ EReference getBookOnTape_Author();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.library.VideoCassette <em>Video Cassette</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Video Cassette</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.VideoCassette
+ * @generated
+ */
+ EClass getVideoCassette();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.parsley.examples.library.VideoCassette#getCast <em>Cast</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Cast</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.VideoCassette#getCast()
+ * @see #getVideoCassette()
+ * @generated
+ */
+ EReference getVideoCassette_Cast();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.library.Borrower <em>Borrower</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Borrower</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Borrower
+ * @generated
+ */
+ EClass getBorrower();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.parsley.examples.library.Borrower#getBorrowed <em>Borrowed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Borrowed</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Borrower#getBorrowed()
+ * @see #getBorrower()
+ * @generated
+ */
+ EReference getBorrower_Borrowed();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.library.Person <em>Person</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Person</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Person
+ * @generated
+ */
+ EClass getPerson();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.library.Person#getFirstName <em>First Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>First Name</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Person#getFirstName()
+ * @see #getPerson()
+ * @generated
+ */
+ EAttribute getPerson_FirstName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.library.Person#getLastName <em>Last Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Last Name</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Person#getLastName()
+ * @see #getPerson()
+ * @generated
+ */
+ EAttribute getPerson_LastName();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.library.Employee <em>Employee</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Employee</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Employee
+ * @generated
+ */
+ EClass getEmployee();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.parsley.examples.library.Employee#getManager <em>Manager</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Manager</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Employee#getManager()
+ * @see #getEmployee()
+ * @generated
+ */
+ EReference getEmployee_Manager();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.library.Addressable <em>Addressable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Addressable</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Addressable
+ * @generated
+ */
+ EClass getAddressable();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.library.Addressable#getAddress <em>Address</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Address</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.Addressable#getAddress()
+ * @see #getAddressable()
+ * @generated
+ */
+ EAttribute getAddressable_Address();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.emf.parsley.examples.library.BookCategory <em>Book Category</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Book Category</em>'.
+ * @see org.eclipse.emf.parsley.examples.library.BookCategory
+ * @generated
+ */
+ EEnum getBookCategory();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ EXTLibraryFactory getEXTLibraryFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.library.impl.BookImpl <em>Book</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.BookImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getBook()
+ * @generated
+ */
+ EClass BOOK = eINSTANCE.getBook();
+
+ /**
+ * The meta object literal for the '<em><b>Title</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BOOK__TITLE = eINSTANCE.getBook_Title();
+
+ /**
+ * The meta object literal for the '<em><b>Pages</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BOOK__PAGES = eINSTANCE.getBook_Pages();
+
+ /**
+ * The meta object literal for the '<em><b>Category</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BOOK__CATEGORY = eINSTANCE.getBook_Category();
+
+ /**
+ * The meta object literal for the '<em><b>Author</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BOOK__AUTHOR = eINSTANCE.getBook_Author();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.library.impl.LibraryImpl <em>Library</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.LibraryImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getLibrary()
+ * @generated
+ */
+ EClass LIBRARY = eINSTANCE.getLibrary();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LIBRARY__NAME = eINSTANCE.getLibrary_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Writers</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LIBRARY__WRITERS = eINSTANCE.getLibrary_Writers();
+
+ /**
+ * The meta object literal for the '<em><b>Employees</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LIBRARY__EMPLOYEES = eINSTANCE.getLibrary_Employees();
+
+ /**
+ * The meta object literal for the '<em><b>Borrowers</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LIBRARY__BORROWERS = eINSTANCE.getLibrary_Borrowers();
+
+ /**
+ * The meta object literal for the '<em><b>Stock</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LIBRARY__STOCK = eINSTANCE.getLibrary_Stock();
+
+ /**
+ * The meta object literal for the '<em><b>Books</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LIBRARY__BOOKS = eINSTANCE.getLibrary_Books();
+
+ /**
+ * The meta object literal for the '<em><b>Branches</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LIBRARY__BRANCHES = eINSTANCE.getLibrary_Branches();
+
+ /**
+ * The meta object literal for the '<em><b>Parent Branch</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LIBRARY__PARENT_BRANCH = eINSTANCE.getLibrary_ParentBranch();
+
+ /**
+ * The meta object literal for the '<em><b>People</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LIBRARY__PEOPLE = eINSTANCE.getLibrary_People();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.library.impl.WriterImpl <em>Writer</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.WriterImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getWriter()
+ * @generated
+ */
+ EClass WRITER = eINSTANCE.getWriter();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute WRITER__NAME = eINSTANCE.getWriter_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Books</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference WRITER__BOOKS = eINSTANCE.getWriter_Books();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.library.impl.ItemImpl <em>Item</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.ItemImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getItem()
+ * @generated
+ */
+ EClass ITEM = eINSTANCE.getItem();
+
+ /**
+ * The meta object literal for the '<em><b>Publication Date</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ITEM__PUBLICATION_DATE = eINSTANCE.getItem_PublicationDate();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.library.Lendable <em>Lendable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.Lendable
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getLendable()
+ * @generated
+ */
+ EClass LENDABLE = eINSTANCE.getLendable();
+
+ /**
+ * The meta object literal for the '<em><b>Copies</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LENDABLE__COPIES = eINSTANCE.getLendable_Copies();
+
+ /**
+ * The meta object literal for the '<em><b>Borrowers</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LENDABLE__BORROWERS = eINSTANCE.getLendable_Borrowers();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.library.impl.CirculatingItemImpl <em>Circulating Item</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.CirculatingItemImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getCirculatingItem()
+ * @generated
+ */
+ EClass CIRCULATING_ITEM = eINSTANCE.getCirculatingItem();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.library.impl.PeriodicalImpl <em>Periodical</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.PeriodicalImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getPeriodical()
+ * @generated
+ */
+ EClass PERIODICAL = eINSTANCE.getPeriodical();
+
+ /**
+ * The meta object literal for the '<em><b>Title</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PERIODICAL__TITLE = eINSTANCE.getPeriodical_Title();
+
+ /**
+ * The meta object literal for the '<em><b>Issues Per Year</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PERIODICAL__ISSUES_PER_YEAR = eINSTANCE.getPeriodical_IssuesPerYear();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.library.impl.AudioVisualItemImpl <em>Audio Visual Item</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.AudioVisualItemImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getAudioVisualItem()
+ * @generated
+ */
+ EClass AUDIO_VISUAL_ITEM = eINSTANCE.getAudioVisualItem();
+
+ /**
+ * The meta object literal for the '<em><b>Title</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute AUDIO_VISUAL_ITEM__TITLE = eINSTANCE.getAudioVisualItem_Title();
+
+ /**
+ * The meta object literal for the '<em><b>Minutes Length</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute AUDIO_VISUAL_ITEM__MINUTES_LENGTH = eINSTANCE.getAudioVisualItem_MinutesLength();
+
+ /**
+ * The meta object literal for the '<em><b>Damaged</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute AUDIO_VISUAL_ITEM__DAMAGED = eINSTANCE.getAudioVisualItem_Damaged();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.library.impl.BookOnTapeImpl <em>Book On Tape</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.BookOnTapeImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getBookOnTape()
+ * @generated
+ */
+ EClass BOOK_ON_TAPE = eINSTANCE.getBookOnTape();
+
+ /**
+ * The meta object literal for the '<em><b>Reader</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BOOK_ON_TAPE__READER = eINSTANCE.getBookOnTape_Reader();
+
+ /**
+ * The meta object literal for the '<em><b>Author</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BOOK_ON_TAPE__AUTHOR = eINSTANCE.getBookOnTape_Author();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.library.impl.VideoCassetteImpl <em>Video Cassette</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.VideoCassetteImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getVideoCassette()
+ * @generated
+ */
+ EClass VIDEO_CASSETTE = eINSTANCE.getVideoCassette();
+
+ /**
+ * The meta object literal for the '<em><b>Cast</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VIDEO_CASSETTE__CAST = eINSTANCE.getVideoCassette_Cast();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.library.impl.BorrowerImpl <em>Borrower</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.BorrowerImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getBorrower()
+ * @generated
+ */
+ EClass BORROWER = eINSTANCE.getBorrower();
+
+ /**
+ * The meta object literal for the '<em><b>Borrowed</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BORROWER__BORROWED = eINSTANCE.getBorrower_Borrowed();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.library.impl.PersonImpl <em>Person</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.PersonImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getPerson()
+ * @generated
+ */
+ EClass PERSON = eINSTANCE.getPerson();
+
+ /**
+ * The meta object literal for the '<em><b>First Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PERSON__FIRST_NAME = eINSTANCE.getPerson_FirstName();
+
+ /**
+ * The meta object literal for the '<em><b>Last Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PERSON__LAST_NAME = eINSTANCE.getPerson_LastName();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.library.impl.EmployeeImpl <em>Employee</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.impl.EmployeeImpl
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getEmployee()
+ * @generated
+ */
+ EClass EMPLOYEE = eINSTANCE.getEmployee();
+
+ /**
+ * The meta object literal for the '<em><b>Manager</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EMPLOYEE__MANAGER = eINSTANCE.getEmployee_Manager();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.library.Addressable <em>Addressable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.Addressable
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getAddressable()
+ * @generated
+ */
+ EClass ADDRESSABLE = eINSTANCE.getAddressable();
+
+ /**
+ * The meta object literal for the '<em><b>Address</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ADDRESSABLE__ADDRESS = eINSTANCE.getAddressable_Address();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.library.BookCategory <em>Book Category</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.BookCategory
+ * @see org.eclipse.emf.parsley.examples.library.impl.EXTLibraryPackageImpl#getBookCategory()
+ * @generated
+ */
+ EEnum BOOK_CATEGORY = eINSTANCE.getBookCategory();
+
+ }
+
+} //EXTLibraryPackage
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Employee.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Employee.java
new file mode 100644
index 000000000..9980b9419
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Employee.java
@@ -0,0 +1,60 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: Employee.java,v 1.2 2008/05/04 17:03:17 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Employee</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Employee#getManager <em>Manager</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getEmployee()
+ * @model
+ * @generated
+ */
+public interface Employee extends Person
+{
+ /**
+ * Returns the value of the '<em><b>Manager</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Manager</em>' reference.
+ * @see #setManager(Employee)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getEmployee_Manager()
+ * @model
+ * @generated
+ */
+ Employee getManager();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.Employee#getManager <em>Manager</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Manager</em>' reference.
+ * @see #getManager()
+ * @generated
+ */
+ void setManager(Employee value);
+
+} // Employee
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Item.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Item.java
new file mode 100644
index 000000000..9773a4e95
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Item.java
@@ -0,0 +1,65 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: Item.java,v 1.2 2008/05/04 17:03:17 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library;
+
+
+import java.util.Date;
+
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Item#getPublicationDate <em>Publication Date</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getItem()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Item extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Publication Date</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Publication Date</em>' attribute.
+ * @see #setPublicationDate(Date)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getItem_PublicationDate()
+ * @model
+ * @generated
+ */
+ Date getPublicationDate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.Item#getPublicationDate <em>Publication Date</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Publication Date</em>' attribute.
+ * @see #getPublicationDate()
+ * @generated
+ */
+ void setPublicationDate(Date value);
+
+} // Item
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Lendable.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Lendable.java
new file mode 100644
index 000000000..288e088d2
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Lendable.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: Lendable.java,v 1.4 2008/05/04 17:03:18 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library;
+
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Lendable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Lendable#getCopies <em>Copies</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Lendable#getBorrowers <em>Borrowers</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getLendable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface Lendable extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Copies</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Copies</em>' attribute.
+ * @see #setCopies(int)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getLendable_Copies()
+ * @model required="true"
+ * @generated
+ */
+ int getCopies();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.Lendable#getCopies <em>Copies</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Copies</em>' attribute.
+ * @see #getCopies()
+ * @generated
+ */
+ void setCopies(int value);
+
+ /**
+ * Returns the value of the '<em><b>Borrowers</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.library.Borrower}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.parsley.examples.library.Borrower#getBorrowed <em>Borrowed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Borrowers</em>' reference list.
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getLendable_Borrowers()
+ * @see org.eclipse.emf.parsley.examples.library.Borrower#getBorrowed
+ * @model opposite="borrowed" ordered="false"
+ * @generated
+ */
+ EList<Borrower> getBorrowers();
+
+} // Lendable
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Library.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Library.java
new file mode 100644
index 000000000..a755ef7e8
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Library.java
@@ -0,0 +1,187 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: Library.java,v 1.7 2008/05/04 17:03:17 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library;
+
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.util.FeatureMap;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Library</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Library#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Library#getWriters <em>Writers</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Library#getEmployees <em>Employees</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Library#getBorrowers <em>Borrowers</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Library#getStock <em>Stock</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Library#getBooks <em>Books</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Library#getBranches <em>Branches</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Library#getParentBranch <em>Parent Branch</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Library#getPeople <em>People</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getLibrary()
+ * @model
+ * @generated
+ */
+public interface Library extends Addressable
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getLibrary_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.Library#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Writers</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.library.Writer}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Writers</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getLibrary_Writers()
+ * @model containment="true" transient="true" volatile="true" derived="true"
+ * extendedMetaData="group='#people'"
+ * @generated
+ */
+ EList<Writer> getWriters();
+
+ /**
+ * Returns the value of the '<em><b>Employees</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.library.Employee}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Employees</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getLibrary_Employees()
+ * @model containment="true" transient="true" volatile="true" derived="true"
+ * extendedMetaData="group='#people'"
+ * @generated
+ */
+ EList<Employee> getEmployees();
+
+ /**
+ * Returns the value of the '<em><b>Borrowers</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.library.Borrower}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Borrowers</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getLibrary_Borrowers()
+ * @model containment="true" transient="true" volatile="true" derived="true"
+ * extendedMetaData="group='#people'"
+ * @generated
+ */
+ EList<Borrower> getBorrowers();
+
+ /**
+ * Returns the value of the '<em><b>Stock</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.library.Item}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stock</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getLibrary_Stock()
+ * @model containment="true" ordered="false"
+ * @generated
+ */
+ EList<Item> getStock();
+
+ /**
+ * Returns the value of the '<em><b>Books</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.library.Book}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Books</em>' reference list.
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getLibrary_Books()
+ * @model transient="true" derived="true" ordered="false"
+ * @generated
+ */
+ EList<Book> getBooks();
+
+ /**
+ * Returns the value of the '<em><b>Branches</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.library.Library}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.parsley.examples.library.Library#getParentBranch <em>Parent Branch</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Branches</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getLibrary_Branches()
+ * @see org.eclipse.emf.parsley.examples.library.Library#getParentBranch
+ * @model opposite="parentBranch" containment="true" resolveProxies="true"
+ * @generated
+ */
+ EList<Library> getBranches();
+
+ /**
+ * Returns the value of the '<em><b>Parent Branch</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.parsley.examples.library.Library#getBranches <em>Branches</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parent Branch</em>' container reference.
+ * @see #setParentBranch(Library)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getLibrary_ParentBranch()
+ * @see org.eclipse.emf.parsley.examples.library.Library#getBranches
+ * @model opposite="branches" transient="false"
+ * @generated
+ */
+ Library getParentBranch();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.Library#getParentBranch <em>Parent Branch</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Parent Branch</em>' container reference.
+ * @see #getParentBranch()
+ * @generated
+ */
+ void setParentBranch(Library value);
+
+ /**
+ * Returns the value of the '<em><b>People</b></em>' attribute list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>People</em>' attribute list.
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getLibrary_People()
+ * @model dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
+ * extendedMetaData="kind='group'"
+ * @generated
+ */
+ FeatureMap getPeople();
+
+} // Library
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Periodical.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Periodical.java
new file mode 100644
index 000000000..02e01317f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Periodical.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: Periodical.java,v 1.2 2008/05/04 17:03:18 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Periodical</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Periodical#getTitle <em>Title</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Periodical#getIssuesPerYear <em>Issues Per Year</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getPeriodical()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Periodical extends Item
+{
+ /**
+ * Returns the value of the '<em><b>Title</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Title</em>' attribute.
+ * @see #setTitle(String)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getPeriodical_Title()
+ * @model
+ * @generated
+ */
+ String getTitle();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.Periodical#getTitle <em>Title</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Title</em>' attribute.
+ * @see #getTitle()
+ * @generated
+ */
+ void setTitle(String value);
+
+ /**
+ * Returns the value of the '<em><b>Issues Per Year</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Issues Per Year</em>' attribute.
+ * @see #setIssuesPerYear(int)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getPeriodical_IssuesPerYear()
+ * @model required="true"
+ * @generated
+ */
+ int getIssuesPerYear();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.Periodical#getIssuesPerYear <em>Issues Per Year</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Issues Per Year</em>' attribute.
+ * @see #getIssuesPerYear()
+ * @generated
+ */
+ void setIssuesPerYear(int value);
+
+} // Periodical
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Person.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Person.java
new file mode 100644
index 000000000..e352bcf8c
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Person.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: Person.java,v 1.2 2008/05/04 17:03:18 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Person</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Person#getFirstName <em>First Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Person#getLastName <em>Last Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getPerson()
+ * @model
+ * @generated
+ */
+public interface Person extends Addressable
+{
+ /**
+ * Returns the value of the '<em><b>First Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>First Name</em>' attribute.
+ * @see #setFirstName(String)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getPerson_FirstName()
+ * @model required="true"
+ * @generated
+ */
+ String getFirstName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.Person#getFirstName <em>First Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>First Name</em>' attribute.
+ * @see #getFirstName()
+ * @generated
+ */
+ void setFirstName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Last Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Last Name</em>' attribute.
+ * @see #setLastName(String)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getPerson_LastName()
+ * @model required="true"
+ * @generated
+ */
+ String getLastName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.Person#getLastName <em>Last Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Last Name</em>' attribute.
+ * @see #getLastName()
+ * @generated
+ */
+ void setLastName(String value);
+
+} // Person
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/VideoCassette.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/VideoCassette.java
new file mode 100644
index 000000000..8f009f50e
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/VideoCassette.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: VideoCassette.java,v 1.5 2008/05/04 17:03:17 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library;
+
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Video Cassette</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.VideoCassette#getCast <em>Cast</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getVideoCassette()
+ * @model
+ * @generated
+ */
+public interface VideoCassette extends AudioVisualItem
+{
+ /**
+ * Returns the value of the '<em><b>Cast</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.library.Person}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cast</em>' reference list.
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getVideoCassette_Cast()
+ * @model
+ * @generated
+ */
+ EList<Person> getCast();
+
+} // VideoCassette
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Writer.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Writer.java
new file mode 100644
index 000000000..4160221a3
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/Writer.java
@@ -0,0 +1,78 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: Writer.java,v 1.4 2008/05/04 17:03:17 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library;
+
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Writer</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Writer#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.Writer#getBooks <em>Books</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getWriter()
+ * @model
+ * @generated
+ */
+public interface Writer extends Person
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getWriter_Name()
+ * @model transient="true" volatile="true"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.library.Writer#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Books</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.library.Book}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.parsley.examples.library.Book#getAuthor <em>Author</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Books</em>' reference list.
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#getWriter_Books()
+ * @see org.eclipse.emf.parsley.examples.library.Book#getAuthor
+ * @model opposite="author"
+ * @generated
+ */
+ EList<Book> getBooks();
+
+} // Writer
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/AudioVisualItemImpl.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/AudioVisualItemImpl.java
new file mode 100644
index 000000000..50d7ceb5f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/AudioVisualItemImpl.java
@@ -0,0 +1,304 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: AudioVisualItemImpl.java,v 1.3 2008/12/22 14:25:21 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.impl;
+
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.parsley.examples.library.AudioVisualItem;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Audo Visual Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.AudioVisualItemImpl#getTitle <em>Title</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.AudioVisualItemImpl#getMinutesLength <em>Minutes Length</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.AudioVisualItemImpl#isDamaged <em>Damaged</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class AudioVisualItemImpl extends CirculatingItemImpl implements AudioVisualItem
+{
+ /**
+ * The default value of the '{@link #getTitle() <em>Title</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTitle()
+ * @generated
+ * @ordered
+ */
+ protected static final String TITLE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTitle() <em>Title</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTitle()
+ * @generated
+ * @ordered
+ */
+ protected String title = TITLE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getMinutesLength() <em>Minutes Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMinutesLength()
+ * @generated
+ * @ordered
+ */
+ protected static final int MINUTES_LENGTH_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getMinutesLength() <em>Minutes Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMinutesLength()
+ * @generated
+ * @ordered
+ */
+ protected int minutesLength = MINUTES_LENGTH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isDamaged() <em>Damaged</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDamaged()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean DAMAGED_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isDamaged() <em>Damaged</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDamaged()
+ * @generated
+ * @ordered
+ */
+ protected static final int DAMAGED_EFLAG = 1 << 8;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AudioVisualItemImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.AUDIO_VISUAL_ITEM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTitle()
+ {
+ return title;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTitle(String newTitle)
+ {
+ String oldTitle = title;
+ title = newTitle;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.AUDIO_VISUAL_ITEM__TITLE, oldTitle, title));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getMinutesLength()
+ {
+ return minutesLength;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMinutesLength(int newMinutesLength)
+ {
+ int oldMinutesLength = minutesLength;
+ minutesLength = newMinutesLength;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.AUDIO_VISUAL_ITEM__MINUTES_LENGTH, oldMinutesLength, minutesLength));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDamaged()
+ {
+ return (eFlags & DAMAGED_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDamaged(boolean newDamaged)
+ {
+ boolean oldDamaged = (eFlags & DAMAGED_EFLAG) != 0;
+ if (newDamaged) eFlags |= DAMAGED_EFLAG; else eFlags &= ~DAMAGED_EFLAG;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.AUDIO_VISUAL_ITEM__DAMAGED, oldDamaged, newDamaged));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__TITLE:
+ return getTitle();
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__MINUTES_LENGTH:
+ return getMinutesLength();
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__DAMAGED:
+ return isDamaged();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__TITLE:
+ setTitle((String)newValue);
+ return;
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__MINUTES_LENGTH:
+ setMinutesLength((Integer)newValue);
+ return;
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__DAMAGED:
+ setDamaged((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__TITLE:
+ setTitle(TITLE_EDEFAULT);
+ return;
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__MINUTES_LENGTH:
+ setMinutesLength(MINUTES_LENGTH_EDEFAULT);
+ return;
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__DAMAGED:
+ setDamaged(DAMAGED_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__TITLE:
+ return TITLE_EDEFAULT == null ? title != null : !TITLE_EDEFAULT.equals(title);
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__MINUTES_LENGTH:
+ return minutesLength != MINUTES_LENGTH_EDEFAULT;
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM__DAMAGED:
+ return ((eFlags & DAMAGED_EFLAG) != 0) != DAMAGED_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (title: "); //$NON-NLS-1$
+ result.append(title);
+ result.append(", minutesLength: "); //$NON-NLS-1$
+ result.append(minutesLength);
+ result.append(", damaged: "); //$NON-NLS-1$
+ result.append((eFlags & DAMAGED_EFLAG) != 0);
+ result.append(')');
+ return result.toString();
+ }
+
+} //AudioVisualItemImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/BookImpl.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/BookImpl.java
new file mode 100644
index 000000000..c7c04a0f2
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/BookImpl.java
@@ -0,0 +1,469 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: BookImpl.java,v 1.5 2008/12/22 14:25:21 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.impl;
+
+
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.BookCategory;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Writer;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Book</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.BookImpl#getTitle <em>Title</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.BookImpl#getPages <em>Pages</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.BookImpl#getCategory <em>Category</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.BookImpl#getAuthor <em>Author</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BookImpl extends CirculatingItemImpl implements Book
+{
+ /**
+ * The default value of the '{@link #getTitle() <em>Title</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTitle()
+ * @generated
+ * @ordered
+ */
+ protected static final String TITLE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTitle() <em>Title</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTitle()
+ * @generated
+ * @ordered
+ */
+ protected String title = TITLE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPages() <em>Pages</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPages()
+ * @generated
+ * @ordered
+ */
+ protected static final int PAGES_EDEFAULT = 100;
+
+ /**
+ * The cached value of the '{@link #getPages() <em>Pages</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPages()
+ * @generated
+ * @ordered
+ */
+ protected int pages = PAGES_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCategory() <em>Category</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCategory()
+ * @generated
+ * @ordered
+ */
+ protected static final BookCategory CATEGORY_EDEFAULT = BookCategory.MYSTERY_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getCategory() <em>Category</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCategory()
+ * @generated
+ * @ordered
+ */
+ protected BookCategory category = CATEGORY_EDEFAULT;
+
+ /**
+ * The flag representing whether the Category attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected static final int CATEGORY_ESETFLAG = 1 << 8;
+
+ /**
+ * The cached value of the '{@link #getAuthor() <em>Author</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAuthor()
+ * @generated
+ * @ordered
+ */
+ protected Writer author;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BookImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.BOOK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTitle()
+ {
+ return title;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTitle(String newTitle)
+ {
+ String oldTitle = title;
+ title = newTitle;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.BOOK__TITLE, oldTitle, title));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getPages()
+ {
+ return pages;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPages(int newPages)
+ {
+ int oldPages = pages;
+ pages = newPages;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.BOOK__PAGES, oldPages, pages));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BookCategory getCategory()
+ {
+ return category;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCategory(BookCategory newCategory)
+ {
+ BookCategory oldCategory = category;
+ category = newCategory == null ? CATEGORY_EDEFAULT : newCategory;
+ boolean oldCategoryESet = (eFlags & CATEGORY_ESETFLAG) != 0;
+ eFlags |= CATEGORY_ESETFLAG;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.BOOK__CATEGORY, oldCategory, category, !oldCategoryESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetCategory()
+ {
+ BookCategory oldCategory = category;
+ boolean oldCategoryESet = (eFlags & CATEGORY_ESETFLAG) != 0;
+ category = CATEGORY_EDEFAULT;
+ eFlags &= ~CATEGORY_ESETFLAG;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, EXTLibraryPackage.BOOK__CATEGORY, oldCategory, CATEGORY_EDEFAULT, oldCategoryESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetCategory()
+ {
+ return (eFlags & CATEGORY_ESETFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Writer getAuthor()
+ {
+ if (author != null && author.eIsProxy())
+ {
+ InternalEObject oldAuthor = (InternalEObject)author;
+ author = (Writer)eResolveProxy(oldAuthor);
+ if (author != oldAuthor)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, EXTLibraryPackage.BOOK__AUTHOR, oldAuthor, author));
+ }
+ }
+ return author;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Writer basicGetAuthor()
+ {
+ return author;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetAuthor(Writer newAuthor, NotificationChain msgs)
+ {
+ Writer oldAuthor = author;
+ author = newAuthor;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.BOOK__AUTHOR, oldAuthor, newAuthor);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAuthor(Writer newAuthor)
+ {
+ if (newAuthor != author)
+ {
+ NotificationChain msgs = null;
+ if (author != null)
+ msgs = ((InternalEObject)author).eInverseRemove(this, EXTLibraryPackage.WRITER__BOOKS, Writer.class, msgs);
+ if (newAuthor != null)
+ msgs = ((InternalEObject)newAuthor).eInverseAdd(this, EXTLibraryPackage.WRITER__BOOKS, Writer.class, msgs);
+ msgs = basicSetAuthor(newAuthor, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.BOOK__AUTHOR, newAuthor, newAuthor));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK__AUTHOR:
+ if (author != null)
+ msgs = ((InternalEObject)author).eInverseRemove(this, EXTLibraryPackage.WRITER__BOOKS, Writer.class, msgs);
+ return basicSetAuthor((Writer)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK__AUTHOR:
+ return basicSetAuthor(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK__TITLE:
+ return getTitle();
+ case EXTLibraryPackage.BOOK__PAGES:
+ return getPages();
+ case EXTLibraryPackage.BOOK__CATEGORY:
+ return getCategory();
+ case EXTLibraryPackage.BOOK__AUTHOR:
+ if (resolve) return getAuthor();
+ return basicGetAuthor();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK__TITLE:
+ setTitle((String)newValue);
+ return;
+ case EXTLibraryPackage.BOOK__PAGES:
+ setPages((Integer)newValue);
+ return;
+ case EXTLibraryPackage.BOOK__CATEGORY:
+ setCategory((BookCategory)newValue);
+ return;
+ case EXTLibraryPackage.BOOK__AUTHOR:
+ setAuthor((Writer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK__TITLE:
+ setTitle(TITLE_EDEFAULT);
+ return;
+ case EXTLibraryPackage.BOOK__PAGES:
+ setPages(PAGES_EDEFAULT);
+ return;
+ case EXTLibraryPackage.BOOK__CATEGORY:
+ unsetCategory();
+ return;
+ case EXTLibraryPackage.BOOK__AUTHOR:
+ setAuthor((Writer)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK__TITLE:
+ return TITLE_EDEFAULT == null ? title != null : !TITLE_EDEFAULT.equals(title);
+ case EXTLibraryPackage.BOOK__PAGES:
+ return pages != PAGES_EDEFAULT;
+ case EXTLibraryPackage.BOOK__CATEGORY:
+ return isSetCategory();
+ case EXTLibraryPackage.BOOK__AUTHOR:
+ return author != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (title: "); //$NON-NLS-1$
+ result.append(title);
+ result.append(", pages: "); //$NON-NLS-1$
+ result.append(pages);
+ result.append(", category: "); //$NON-NLS-1$
+ if ((eFlags & CATEGORY_ESETFLAG) != 0) result.append(category); else result.append("<unset>"); //$NON-NLS-1$
+ result.append(')');
+ return result.toString();
+ }
+
+} //BookImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/BookOnTapeImpl.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/BookOnTapeImpl.java
new file mode 100644
index 000000000..cf5080a56
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/BookOnTapeImpl.java
@@ -0,0 +1,255 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: BookOnTapeImpl.java,v 1.4 2007/02/20 17:41:55 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.impl;
+
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.parsley.examples.library.BookOnTape;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Person;
+import org.eclipse.emf.parsley.examples.library.Writer;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Book On Tape</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.BookOnTapeImpl#getReader <em>Reader</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.BookOnTapeImpl#getAuthor <em>Author</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BookOnTapeImpl extends AudioVisualItemImpl implements BookOnTape
+{
+ /**
+ * The cached value of the '{@link #getReader() <em>Reader</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReader()
+ * @generated
+ * @ordered
+ */
+ protected Person reader;
+
+ /**
+ * The cached value of the '{@link #getAuthor() <em>Author</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAuthor()
+ * @generated
+ * @ordered
+ */
+ protected Writer author;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BookOnTapeImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.BOOK_ON_TAPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Person getReader()
+ {
+ if (reader != null && reader.eIsProxy())
+ {
+ InternalEObject oldReader = (InternalEObject)reader;
+ reader = (Person)eResolveProxy(oldReader);
+ if (reader != oldReader)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, EXTLibraryPackage.BOOK_ON_TAPE__READER, oldReader, reader));
+ }
+ }
+ return reader;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Person basicGetReader()
+ {
+ return reader;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setReader(Person newReader)
+ {
+ Person oldReader = reader;
+ reader = newReader;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.BOOK_ON_TAPE__READER, oldReader, reader));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Writer getAuthor()
+ {
+ if (author != null && author.eIsProxy())
+ {
+ InternalEObject oldAuthor = (InternalEObject)author;
+ author = (Writer)eResolveProxy(oldAuthor);
+ if (author != oldAuthor)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, EXTLibraryPackage.BOOK_ON_TAPE__AUTHOR, oldAuthor, author));
+ }
+ }
+ return author;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Writer basicGetAuthor()
+ {
+ return author;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAuthor(Writer newAuthor)
+ {
+ Writer oldAuthor = author;
+ author = newAuthor;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.BOOK_ON_TAPE__AUTHOR, oldAuthor, author));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK_ON_TAPE__READER:
+ if (resolve) return getReader();
+ return basicGetReader();
+ case EXTLibraryPackage.BOOK_ON_TAPE__AUTHOR:
+ if (resolve) return getAuthor();
+ return basicGetAuthor();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK_ON_TAPE__READER:
+ setReader((Person)newValue);
+ return;
+ case EXTLibraryPackage.BOOK_ON_TAPE__AUTHOR:
+ setAuthor((Writer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK_ON_TAPE__READER:
+ setReader((Person)null);
+ return;
+ case EXTLibraryPackage.BOOK_ON_TAPE__AUTHOR:
+ setAuthor((Writer)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BOOK_ON_TAPE__READER:
+ return reader != null;
+ case EXTLibraryPackage.BOOK_ON_TAPE__AUTHOR:
+ return author != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //BookOnTapeImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/BorrowerImpl.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/BorrowerImpl.java
new file mode 100644
index 000000000..f411d5140
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/BorrowerImpl.java
@@ -0,0 +1,199 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: BorrowerImpl.java,v 1.4 2007/02/20 17:41:55 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.impl;
+
+
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.parsley.examples.library.Borrower;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Lendable;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Borrower</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.BorrowerImpl#getBorrowed <em>Borrowed</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BorrowerImpl extends PersonImpl implements Borrower
+{
+ /**
+ * The cached value of the '{@link #getBorrowed() <em>Borrowed</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBorrowed()
+ * @generated
+ * @ordered
+ */
+ protected EList<Lendable> borrowed;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BorrowerImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.BORROWER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Lendable> getBorrowed()
+ {
+ if (borrowed == null)
+ {
+ borrowed = new EObjectWithInverseResolvingEList.ManyInverse<Lendable>(Lendable.class, this, EXTLibraryPackage.BORROWER__BORROWED, EXTLibraryPackage.LENDABLE__BORROWERS);
+ }
+ return borrowed;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BORROWER__BORROWED:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getBorrowed()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BORROWER__BORROWED:
+ return ((InternalEList<?>)getBorrowed()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BORROWER__BORROWED:
+ return getBorrowed();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BORROWER__BORROWED:
+ getBorrowed().clear();
+ getBorrowed().addAll((Collection<? extends Lendable>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BORROWER__BORROWED:
+ getBorrowed().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.BORROWER__BORROWED:
+ return borrowed != null && !borrowed.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //BorrowerImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/CirculatingItemImpl.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/CirculatingItemImpl.java
new file mode 100644
index 000000000..013415b0e
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/CirculatingItemImpl.java
@@ -0,0 +1,313 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: CirculatingItemImpl.java,v 1.5 2008/12/22 14:25:22 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.impl;
+
+
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.parsley.examples.library.Borrower;
+import org.eclipse.emf.parsley.examples.library.CirculatingItem;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Lendable;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Circulating Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.CirculatingItemImpl#getCopies <em>Copies</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.CirculatingItemImpl#getBorrowers <em>Borrowers</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class CirculatingItemImpl extends ItemImpl implements CirculatingItem
+{
+ /**
+ * The default value of the '{@link #getCopies() <em>Copies</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCopies()
+ * @generated
+ * @ordered
+ */
+ protected static final int COPIES_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getCopies() <em>Copies</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCopies()
+ * @generated
+ * @ordered
+ */
+ protected int copies = COPIES_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBorrowers() <em>Borrowers</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBorrowers()
+ * @generated
+ * @ordered
+ */
+ protected EList<Borrower> borrowers;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CirculatingItemImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.CIRCULATING_ITEM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getCopies()
+ {
+ return copies;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCopies(int newCopies)
+ {
+ int oldCopies = copies;
+ copies = newCopies;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.CIRCULATING_ITEM__COPIES, oldCopies, copies));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Borrower> getBorrowers()
+ {
+ if (borrowers == null)
+ {
+ borrowers = new EObjectWithInverseResolvingEList.ManyInverse<Borrower>(Borrower.class, this, EXTLibraryPackage.CIRCULATING_ITEM__BORROWERS, EXTLibraryPackage.BORROWER__BORROWED);
+ }
+ return borrowers;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.CIRCULATING_ITEM__BORROWERS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getBorrowers()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.CIRCULATING_ITEM__BORROWERS:
+ return ((InternalEList<?>)getBorrowers()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.CIRCULATING_ITEM__COPIES:
+ return getCopies();
+ case EXTLibraryPackage.CIRCULATING_ITEM__BORROWERS:
+ return getBorrowers();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.CIRCULATING_ITEM__COPIES:
+ setCopies((Integer)newValue);
+ return;
+ case EXTLibraryPackage.CIRCULATING_ITEM__BORROWERS:
+ getBorrowers().clear();
+ getBorrowers().addAll((Collection<? extends Borrower>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.CIRCULATING_ITEM__COPIES:
+ setCopies(COPIES_EDEFAULT);
+ return;
+ case EXTLibraryPackage.CIRCULATING_ITEM__BORROWERS:
+ getBorrowers().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.CIRCULATING_ITEM__COPIES:
+ return copies != COPIES_EDEFAULT;
+ case EXTLibraryPackage.CIRCULATING_ITEM__BORROWERS:
+ return borrowers != null && !borrowers.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
+ {
+ if (baseClass == Lendable.class)
+ {
+ switch (derivedFeatureID)
+ {
+ case EXTLibraryPackage.CIRCULATING_ITEM__COPIES: return EXTLibraryPackage.LENDABLE__COPIES;
+ case EXTLibraryPackage.CIRCULATING_ITEM__BORROWERS: return EXTLibraryPackage.LENDABLE__BORROWERS;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
+ {
+ if (baseClass == Lendable.class)
+ {
+ switch (baseFeatureID)
+ {
+ case EXTLibraryPackage.LENDABLE__COPIES: return EXTLibraryPackage.CIRCULATING_ITEM__COPIES;
+ case EXTLibraryPackage.LENDABLE__BORROWERS: return EXTLibraryPackage.CIRCULATING_ITEM__BORROWERS;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (copies: "); //$NON-NLS-1$
+ result.append(copies);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CirculatingItemImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/EXTLibraryFactoryImpl.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/EXTLibraryFactoryImpl.java
new file mode 100644
index 000000000..921eeb815
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/EXTLibraryFactoryImpl.java
@@ -0,0 +1,265 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: EXTLibraryFactoryImpl.java,v 1.3 2006/12/29 18:27:44 marcelop Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.impl;
+
+
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.parsley.examples.library.*;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EXTLibraryFactoryImpl extends EFactoryImpl implements EXTLibraryFactory
+{
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static EXTLibraryFactory init()
+ {
+ try
+ {
+ EXTLibraryFactory theEXTLibraryFactory = (EXTLibraryFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/emf/parsley/examples/library/extlibrary.ecore/0.1.0"); //$NON-NLS-1$
+ if (theEXTLibraryFactory != null)
+ {
+ return theEXTLibraryFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new EXTLibraryFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibraryFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case EXTLibraryPackage.BOOK: return createBook();
+ case EXTLibraryPackage.LIBRARY: return createLibrary();
+ case EXTLibraryPackage.WRITER: return createWriter();
+ case EXTLibraryPackage.BOOK_ON_TAPE: return createBookOnTape();
+ case EXTLibraryPackage.VIDEO_CASSETTE: return createVideoCassette();
+ case EXTLibraryPackage.BORROWER: return createBorrower();
+ case EXTLibraryPackage.PERSON: return createPerson();
+ case EXTLibraryPackage.EMPLOYEE: return createEmployee();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case EXTLibraryPackage.BOOK_CATEGORY:
+ return createBookCategoryFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case EXTLibraryPackage.BOOK_CATEGORY:
+ return convertBookCategoryToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Book createBook()
+ {
+ BookImpl book = new BookImpl();
+ return book;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Library createLibrary()
+ {
+ LibraryImpl library = new LibraryImpl();
+ return library;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Writer createWriter()
+ {
+ WriterImpl writer = new WriterImpl();
+ return writer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BookOnTape createBookOnTape()
+ {
+ BookOnTapeImpl bookOnTape = new BookOnTapeImpl();
+ return bookOnTape;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VideoCassette createVideoCassette()
+ {
+ VideoCassetteImpl videoCassette = new VideoCassetteImpl();
+ return videoCassette;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Borrower createBorrower()
+ {
+ BorrowerImpl borrower = new BorrowerImpl();
+ return borrower;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Person createPerson()
+ {
+ PersonImpl person = new PersonImpl();
+ return person;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Employee createEmployee()
+ {
+ EmployeeImpl employee = new EmployeeImpl();
+ return employee;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BookCategory createBookCategoryFromString(EDataType eDataType, String initialValue)
+ {
+ BookCategory result = BookCategory.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertBookCategoryToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibraryPackage getEXTLibraryPackage()
+ {
+ return (EXTLibraryPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static EXTLibraryPackage getPackage()
+ {
+ return EXTLibraryPackage.eINSTANCE;
+ }
+
+} //EXTLibraryFactoryImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/EXTLibraryPackageImpl.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/EXTLibraryPackageImpl.java
new file mode 100644
index 000000000..aee5f2f6c
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/EXTLibraryPackageImpl.java
@@ -0,0 +1,932 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: EXTLibraryPackageImpl.java,v 1.7 2009/05/12 15:54:39 davidms Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.impl;
+
+
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.parsley.examples.library.Addressable;
+import org.eclipse.emf.parsley.examples.library.AudioVisualItem;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.BookCategory;
+import org.eclipse.emf.parsley.examples.library.BookOnTape;
+import org.eclipse.emf.parsley.examples.library.Borrower;
+import org.eclipse.emf.parsley.examples.library.CirculatingItem;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryFactory;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Employee;
+import org.eclipse.emf.parsley.examples.library.Item;
+import org.eclipse.emf.parsley.examples.library.Lendable;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.examples.library.Periodical;
+import org.eclipse.emf.parsley.examples.library.Person;
+import org.eclipse.emf.parsley.examples.library.VideoCassette;
+import org.eclipse.emf.parsley.examples.library.Writer;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EXTLibraryPackageImpl extends EPackageImpl implements EXTLibraryPackage
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass bookEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass libraryEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass writerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass itemEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass lendableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass circulatingItemEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass periodicalEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass audioVisualItemEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass bookOnTapeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass videoCassetteEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass borrowerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass personEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass employeeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass addressableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum bookCategoryEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private EXTLibraryPackageImpl()
+ {
+ super(eNS_URI, EXTLibraryFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link EXTLibraryPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static EXTLibraryPackage init()
+ {
+ if (isInited) return (EXTLibraryPackage)EPackage.Registry.INSTANCE.getEPackage(EXTLibraryPackage.eNS_URI);
+
+ // Obtain or create and register package
+ EXTLibraryPackageImpl theEXTLibraryPackage = (EXTLibraryPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EXTLibraryPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new EXTLibraryPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theEXTLibraryPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theEXTLibraryPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theEXTLibraryPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(EXTLibraryPackage.eNS_URI, theEXTLibraryPackage);
+ return theEXTLibraryPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBook()
+ {
+ return bookEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBook_Title()
+ {
+ return (EAttribute)bookEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBook_Pages()
+ {
+ return (EAttribute)bookEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBook_Category()
+ {
+ return (EAttribute)bookEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBook_Author()
+ {
+ return (EReference)bookEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLibrary()
+ {
+ return libraryEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLibrary_Name()
+ {
+ return (EAttribute)libraryEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLibrary_Writers()
+ {
+ return (EReference)libraryEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLibrary_Employees()
+ {
+ return (EReference)libraryEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLibrary_Borrowers()
+ {
+ return (EReference)libraryEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLibrary_Stock()
+ {
+ return (EReference)libraryEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLibrary_Books()
+ {
+ return (EReference)libraryEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLibrary_Branches()
+ {
+ return (EReference)libraryEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLibrary_ParentBranch()
+ {
+ return (EReference)libraryEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLibrary_People()
+ {
+ return (EAttribute)libraryEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getWriter()
+ {
+ return writerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getWriter_Name()
+ {
+ return (EAttribute)writerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getWriter_Books()
+ {
+ return (EReference)writerEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getItem()
+ {
+ return itemEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getItem_PublicationDate()
+ {
+ return (EAttribute)itemEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLendable()
+ {
+ return lendableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLendable_Copies()
+ {
+ return (EAttribute)lendableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLendable_Borrowers()
+ {
+ return (EReference)lendableEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCirculatingItem()
+ {
+ return circulatingItemEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPeriodical()
+ {
+ return periodicalEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPeriodical_Title()
+ {
+ return (EAttribute)periodicalEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPeriodical_IssuesPerYear()
+ {
+ return (EAttribute)periodicalEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAudioVisualItem()
+ {
+ return audioVisualItemEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAudioVisualItem_Title()
+ {
+ return (EAttribute)audioVisualItemEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAudioVisualItem_MinutesLength()
+ {
+ return (EAttribute)audioVisualItemEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAudioVisualItem_Damaged()
+ {
+ return (EAttribute)audioVisualItemEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBookOnTape()
+ {
+ return bookOnTapeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBookOnTape_Reader()
+ {
+ return (EReference)bookOnTapeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBookOnTape_Author()
+ {
+ return (EReference)bookOnTapeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVideoCassette()
+ {
+ return videoCassetteEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getVideoCassette_Cast()
+ {
+ return (EReference)videoCassetteEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBorrower()
+ {
+ return borrowerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBorrower_Borrowed()
+ {
+ return (EReference)borrowerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPerson()
+ {
+ return personEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPerson_FirstName()
+ {
+ return (EAttribute)personEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPerson_LastName()
+ {
+ return (EAttribute)personEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEmployee()
+ {
+ return employeeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEmployee_Manager()
+ {
+ return (EReference)employeeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAddressable()
+ {
+ return addressableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAddressable_Address()
+ {
+ return (EAttribute)addressableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getBookCategory()
+ {
+ return bookCategoryEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibraryFactory getEXTLibraryFactory()
+ {
+ return (EXTLibraryFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ bookEClass = createEClass(BOOK);
+ createEAttribute(bookEClass, BOOK__TITLE);
+ createEAttribute(bookEClass, BOOK__PAGES);
+ createEAttribute(bookEClass, BOOK__CATEGORY);
+ createEReference(bookEClass, BOOK__AUTHOR);
+
+ libraryEClass = createEClass(LIBRARY);
+ createEAttribute(libraryEClass, LIBRARY__NAME);
+ createEReference(libraryEClass, LIBRARY__WRITERS);
+ createEReference(libraryEClass, LIBRARY__EMPLOYEES);
+ createEReference(libraryEClass, LIBRARY__BORROWERS);
+ createEReference(libraryEClass, LIBRARY__STOCK);
+ createEReference(libraryEClass, LIBRARY__BOOKS);
+ createEReference(libraryEClass, LIBRARY__BRANCHES);
+ createEReference(libraryEClass, LIBRARY__PARENT_BRANCH);
+ createEAttribute(libraryEClass, LIBRARY__PEOPLE);
+
+ writerEClass = createEClass(WRITER);
+ createEAttribute(writerEClass, WRITER__NAME);
+ createEReference(writerEClass, WRITER__BOOKS);
+
+ itemEClass = createEClass(ITEM);
+ createEAttribute(itemEClass, ITEM__PUBLICATION_DATE);
+
+ lendableEClass = createEClass(LENDABLE);
+ createEAttribute(lendableEClass, LENDABLE__COPIES);
+ createEReference(lendableEClass, LENDABLE__BORROWERS);
+
+ circulatingItemEClass = createEClass(CIRCULATING_ITEM);
+
+ periodicalEClass = createEClass(PERIODICAL);
+ createEAttribute(periodicalEClass, PERIODICAL__TITLE);
+ createEAttribute(periodicalEClass, PERIODICAL__ISSUES_PER_YEAR);
+
+ audioVisualItemEClass = createEClass(AUDIO_VISUAL_ITEM);
+ createEAttribute(audioVisualItemEClass, AUDIO_VISUAL_ITEM__TITLE);
+ createEAttribute(audioVisualItemEClass, AUDIO_VISUAL_ITEM__MINUTES_LENGTH);
+ createEAttribute(audioVisualItemEClass, AUDIO_VISUAL_ITEM__DAMAGED);
+
+ bookOnTapeEClass = createEClass(BOOK_ON_TAPE);
+ createEReference(bookOnTapeEClass, BOOK_ON_TAPE__READER);
+ createEReference(bookOnTapeEClass, BOOK_ON_TAPE__AUTHOR);
+
+ videoCassetteEClass = createEClass(VIDEO_CASSETTE);
+ createEReference(videoCassetteEClass, VIDEO_CASSETTE__CAST);
+
+ borrowerEClass = createEClass(BORROWER);
+ createEReference(borrowerEClass, BORROWER__BORROWED);
+
+ personEClass = createEClass(PERSON);
+ createEAttribute(personEClass, PERSON__FIRST_NAME);
+ createEAttribute(personEClass, PERSON__LAST_NAME);
+
+ employeeEClass = createEClass(EMPLOYEE);
+ createEReference(employeeEClass, EMPLOYEE__MANAGER);
+
+ addressableEClass = createEClass(ADDRESSABLE);
+ createEAttribute(addressableEClass, ADDRESSABLE__ADDRESS);
+
+ // Create enums
+ bookCategoryEEnum = createEEnum(BOOK_CATEGORY);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ bookEClass.getESuperTypes().add(this.getCirculatingItem());
+ libraryEClass.getESuperTypes().add(this.getAddressable());
+ writerEClass.getESuperTypes().add(this.getPerson());
+ circulatingItemEClass.getESuperTypes().add(this.getItem());
+ circulatingItemEClass.getESuperTypes().add(this.getLendable());
+ periodicalEClass.getESuperTypes().add(this.getItem());
+ audioVisualItemEClass.getESuperTypes().add(this.getCirculatingItem());
+ bookOnTapeEClass.getESuperTypes().add(this.getAudioVisualItem());
+ videoCassetteEClass.getESuperTypes().add(this.getAudioVisualItem());
+ borrowerEClass.getESuperTypes().add(this.getPerson());
+ personEClass.getESuperTypes().add(this.getAddressable());
+ employeeEClass.getESuperTypes().add(this.getPerson());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(bookEClass, Book.class, "Book", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getBook_Title(), ecorePackage.getEString(), "title", null, 0, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getBook_Pages(), ecorePackage.getEInt(), "pages", "100", 0, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getBook_Category(), this.getBookCategory(), "category", null, 0, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getBook_Author(), this.getWriter(), this.getWriter_Books(), "author", null, 1, 1, Book.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(libraryEClass, Library.class, "Library", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLibrary_Name(), ecorePackage.getEString(), "name", null, 0, 1, Library.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLibrary_Writers(), this.getWriter(), null, "writers", null, 0, -1, Library.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLibrary_Employees(), this.getEmployee(), null, "employees", null, 0, -1, Library.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLibrary_Borrowers(), this.getBorrower(), null, "borrowers", null, 0, -1, Library.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLibrary_Stock(), this.getItem(), null, "stock", null, 0, -1, Library.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLibrary_Books(), this.getBook(), null, "books", null, 0, -1, Library.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLibrary_Branches(), this.getLibrary(), this.getLibrary_ParentBranch(), "branches", null, 0, -1, Library.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLibrary_ParentBranch(), this.getLibrary(), this.getLibrary_Branches(), "parentBranch", null, 0, 1, Library.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLibrary_People(), ecorePackage.getEFeatureMapEntry(), "people", null, 0, -1, Library.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(writerEClass, Writer.class, "Writer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getWriter_Name(), ecorePackage.getEString(), "name", null, 0, 1, Writer.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getWriter_Books(), this.getBook(), this.getBook_Author(), "books", null, 0, -1, Writer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(itemEClass, Item.class, "Item", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getItem_PublicationDate(), ecorePackage.getEDate(), "publicationDate", null, 0, 1, Item.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(lendableEClass, Lendable.class, "Lendable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLendable_Copies(), ecorePackage.getEInt(), "copies", null, 1, 1, Lendable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLendable_Borrowers(), this.getBorrower(), this.getBorrower_Borrowed(), "borrowers", null, 0, -1, Lendable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(circulatingItemEClass, CirculatingItem.class, "CirculatingItem", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(periodicalEClass, Periodical.class, "Periodical", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getPeriodical_Title(), ecorePackage.getEString(), "title", null, 0, 1, Periodical.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getPeriodical_IssuesPerYear(), ecorePackage.getEInt(), "issuesPerYear", null, 1, 1, Periodical.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(audioVisualItemEClass, AudioVisualItem.class, "AudioVisualItem", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getAudioVisualItem_Title(), ecorePackage.getEString(), "title", null, 0, 1, AudioVisualItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getAudioVisualItem_MinutesLength(), ecorePackage.getEInt(), "minutesLength", null, 1, 1, AudioVisualItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getAudioVisualItem_Damaged(), ecorePackage.getEBoolean(), "damaged", null, 0, 1, AudioVisualItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(bookOnTapeEClass, BookOnTape.class, "BookOnTape", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getBookOnTape_Reader(), this.getPerson(), null, "reader", null, 0, 1, BookOnTape.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getBookOnTape_Author(), this.getWriter(), null, "author", null, 0, 1, BookOnTape.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(videoCassetteEClass, VideoCassette.class, "VideoCassette", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getVideoCassette_Cast(), this.getPerson(), null, "cast", null, 0, -1, VideoCassette.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(borrowerEClass, Borrower.class, "Borrower", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getBorrower_Borrowed(), this.getLendable(), this.getLendable_Borrowers(), "borrowed", null, 0, -1, Borrower.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(personEClass, Person.class, "Person", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getPerson_FirstName(), ecorePackage.getEString(), "firstName", null, 1, 1, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getPerson_LastName(), ecorePackage.getEString(), "lastName", null, 1, 1, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(employeeEClass, Employee.class, "Employee", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getEmployee_Manager(), this.getEmployee(), null, "manager", null, 0, 1, Employee.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(addressableEClass, Addressable.class, "Addressable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getAddressable_Address(), ecorePackage.getEString(), "address", null, 0, 1, Addressable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ // Initialize enums and add enum literals
+ initEEnum(bookCategoryEEnum, BookCategory.class, "BookCategory"); //$NON-NLS-1$
+ addEEnumLiteral(bookCategoryEEnum, BookCategory.MYSTERY_LITERAL);
+ addEEnumLiteral(bookCategoryEEnum, BookCategory.SCIENCE_FICTION_LITERAL);
+ addEEnumLiteral(bookCategoryEEnum, BookCategory.BIOGRAPHY_LITERAL);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http:///org/eclipse/emf/ecore/util/ExtendedMetaData
+ createExtendedMetaDataAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/emf/ecore/util/ExtendedMetaData</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createExtendedMetaDataAnnotations()
+ {
+ String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData"; //$NON-NLS-1$
+ addAnnotation
+ (getLibrary_Writers(),
+ source,
+ new String[]
+ {
+ "group", "#people" //$NON-NLS-1$ //$NON-NLS-2$
+ });
+ addAnnotation
+ (getLibrary_Employees(),
+ source,
+ new String[]
+ {
+ "group", "#people" //$NON-NLS-1$ //$NON-NLS-2$
+ });
+ addAnnotation
+ (getLibrary_Borrowers(),
+ source,
+ new String[]
+ {
+ "group", "#people" //$NON-NLS-1$ //$NON-NLS-2$
+ });
+ addAnnotation
+ (getLibrary_People(),
+ source,
+ new String[]
+ {
+ "kind", "group" //$NON-NLS-1$ //$NON-NLS-2$
+ });
+ }
+
+} //EXTLibraryPackageImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/EmployeeImpl.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/EmployeeImpl.java
new file mode 100644
index 000000000..9e01dae0a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/EmployeeImpl.java
@@ -0,0 +1,188 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: EmployeeImpl.java,v 1.4 2007/02/20 17:41:55 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.impl;
+
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Employee;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Employee</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.EmployeeImpl#getManager <em>Manager</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EmployeeImpl extends PersonImpl implements Employee
+{
+ /**
+ * The cached value of the '{@link #getManager() <em>Manager</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getManager()
+ * @generated
+ * @ordered
+ */
+ protected Employee manager;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EmployeeImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.EMPLOYEE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Employee getManager()
+ {
+ if (manager != null && manager.eIsProxy())
+ {
+ InternalEObject oldManager = (InternalEObject)manager;
+ manager = (Employee)eResolveProxy(oldManager);
+ if (manager != oldManager)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, EXTLibraryPackage.EMPLOYEE__MANAGER, oldManager, manager));
+ }
+ }
+ return manager;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Employee basicGetManager()
+ {
+ return manager;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setManager(Employee newManager)
+ {
+ Employee oldManager = manager;
+ manager = newManager;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.EMPLOYEE__MANAGER, oldManager, manager));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.EMPLOYEE__MANAGER:
+ if (resolve) return getManager();
+ return basicGetManager();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.EMPLOYEE__MANAGER:
+ setManager((Employee)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.EMPLOYEE__MANAGER:
+ setManager((Employee)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.EMPLOYEE__MANAGER:
+ return manager != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //EmployeeImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/ItemImpl.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/ItemImpl.java
new file mode 100644
index 000000000..a0d709369
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/ItemImpl.java
@@ -0,0 +1,195 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: ItemImpl.java,v 1.3 2006/12/29 18:27:44 marcelop Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.impl;
+
+
+
+import java.util.Date;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Item;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.ItemImpl#getPublicationDate <em>Publication Date</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ItemImpl extends EObjectImpl implements Item
+{
+ /**
+ * The default value of the '{@link #getPublicationDate() <em>Publication Date</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPublicationDate()
+ * @generated
+ * @ordered
+ */
+ protected static final Date PUBLICATION_DATE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPublicationDate() <em>Publication Date</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPublicationDate()
+ * @generated
+ * @ordered
+ */
+ protected Date publicationDate = PUBLICATION_DATE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ItemImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.ITEM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getPublicationDate()
+ {
+ return publicationDate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPublicationDate(Date newPublicationDate)
+ {
+ Date oldPublicationDate = publicationDate;
+ publicationDate = newPublicationDate;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.ITEM__PUBLICATION_DATE, oldPublicationDate, publicationDate));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.ITEM__PUBLICATION_DATE:
+ return getPublicationDate();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.ITEM__PUBLICATION_DATE:
+ setPublicationDate((Date)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.ITEM__PUBLICATION_DATE:
+ setPublicationDate(PUBLICATION_DATE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.ITEM__PUBLICATION_DATE:
+ return PUBLICATION_DATE_EDEFAULT == null ? publicationDate != null : !PUBLICATION_DATE_EDEFAULT.equals(publicationDate);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (publicationDate: "); //$NON-NLS-1$
+ result.append(publicationDate);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ItemImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/LibraryImpl.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/LibraryImpl.java
new file mode 100644
index 000000000..e0b7dbdd8
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/LibraryImpl.java
@@ -0,0 +1,677 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: LibraryImpl.java,v 1.8 2009/04/18 11:39:33 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.impl;
+
+
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.Borrower;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Employee;
+import org.eclipse.emf.parsley.examples.library.Item;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.examples.library.Writer;
+
+//import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Library</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.LibraryImpl#getAddress <em>Address</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.LibraryImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.LibraryImpl#getWriters <em>Writers</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.LibraryImpl#getEmployees <em>Employees</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.LibraryImpl#getBorrowers <em>Borrowers</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.LibraryImpl#getStock <em>Stock</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.LibraryImpl#getBooks <em>Books</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.LibraryImpl#getBranches <em>Branches</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.LibraryImpl#getParentBranch <em>Parent Branch</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.LibraryImpl#getPeople <em>People</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LibraryImpl extends EObjectImpl implements Library
+{
+ /**
+ * The default value of the '{@link #getAddress() <em>Address</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAddress()
+ * @generated
+ * @ordered
+ */
+ protected static final String ADDRESS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAddress() <em>Address</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAddress()
+ * @generated
+ * @ordered
+ */
+ protected String address = ADDRESS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getStock() <em>Stock</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStock()
+ * @generated
+ * @ordered
+ */
+ protected EList<Item> stock;
+
+ /**
+ * The cached value of the '{@link #getBooks() <em>Books</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBooks()
+ * @generated
+ * @ordered
+ */
+ protected EList<Book> books;
+
+ /**
+ * The cached value of the '{@link #getBranches() <em>Branches</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBranches()
+ * @generated
+ * @ordered
+ */
+ protected EList<Library> branches;
+
+ /**
+ * The cached value of the '{@link #getPeople() <em>People</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPeople()
+ * @generated
+ * @ordered
+ */
+ protected FeatureMap people;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LibraryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.LIBRARY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getAddress()
+ {
+ return address;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAddress(String newAddress)
+ {
+ String oldAddress = address;
+ address = newAddress;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.LIBRARY__ADDRESS, oldAddress, address));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.LIBRARY__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Writer> getWriters()
+ {
+ return getPeople().list(EXTLibraryPackage.Literals.LIBRARY__WRITERS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Employee> getEmployees()
+ {
+ return getPeople().list(EXTLibraryPackage.Literals.LIBRARY__EMPLOYEES);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Borrower> getBorrowers()
+ {
+ return getPeople().list(EXTLibraryPackage.Literals.LIBRARY__BORROWERS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EList<Item> getStock()
+ {
+ if (stock == null)
+ {
+ // create a custom list implementation that synchronizes its book
+ // content with the "books" subset
+ stock = new EObjectContainmentEList<Item>(Item.class, this, EXTLibraryPackage.LIBRARY__STOCK)
+ {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void didAdd(int index, Item newObject)
+ {
+ if ((newObject instanceof Book) && !getBooks().contains(newObject))
+ {
+ // these lists are unordered, so index doesn't matter
+ getBooks().add((Book)newObject);
+ }
+ }
+
+ @Override
+ protected void didRemove(int index, Item oldObject)
+ {
+ if ((oldObject instanceof Book) && getBooks().contains(oldObject))
+ {
+ // these lists are unordered, so index doesn't matter
+ getBooks().remove(oldObject);
+ }
+ }
+
+ @Override
+ protected void didSet(int index, Item newObject, Item oldObject)
+ {
+ didRemove(index, oldObject);
+ didAdd(index, newObject);
+ }
+ };
+ }
+ return stock;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EList<Book> getBooks()
+ {
+ if (books == null)
+ {
+ // create a custom list implementation that synchronizes its content
+ // with the "stock" superset
+ books = new EObjectEList<Book>(Book.class, this, EXTLibraryPackage.LIBRARY__BOOKS)
+ {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void didAdd(int index, Book newObject)
+ {
+ if (getStock().indexOf(newObject) == -1)
+ {
+ // these lists are unordered, so index doesn't matter
+ getStock().add(newObject);
+ }
+ }
+
+ @Override
+ protected void didRemove(int index, Book oldObject)
+ {
+ if (getStock().indexOf(oldObject) != -1)
+ {
+ // these lists are unordered, so index doesn't matter
+ getStock().remove(oldObject);
+ }
+ }
+
+ @Override
+ protected void didSet(int index, Book newObject, Book oldObject)
+ {
+ didRemove(index, oldObject);
+ didAdd(index, newObject);
+ }
+ };
+ }
+
+ return books;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Library> getBranches()
+ {
+ if (branches == null)
+ {
+ branches = new EObjectContainmentWithInverseEList.Resolving<Library>(Library.class, this, EXTLibraryPackage.LIBRARY__BRANCHES, EXTLibraryPackage.LIBRARY__PARENT_BRANCH);
+ }
+ return branches;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Library getParentBranch()
+ {
+ if (eContainerFeatureID() != EXTLibraryPackage.LIBRARY__PARENT_BRANCH) return null;
+ return (Library)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Library basicGetParentBranch()
+ {
+ if (eContainerFeatureID() != EXTLibraryPackage.LIBRARY__PARENT_BRANCH) return null;
+ return (Library)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetParentBranch(Library newParentBranch, NotificationChain msgs)
+ {
+ msgs = eBasicSetContainer((InternalEObject)newParentBranch, EXTLibraryPackage.LIBRARY__PARENT_BRANCH, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParentBranch(Library newParentBranch)
+ {
+ if (newParentBranch != eInternalContainer() || (eContainerFeatureID() != EXTLibraryPackage.LIBRARY__PARENT_BRANCH && newParentBranch != null))
+ {
+ if (EcoreUtil.isAncestor(this, newParentBranch))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newParentBranch != null)
+ msgs = ((InternalEObject)newParentBranch).eInverseAdd(this, EXTLibraryPackage.LIBRARY__BRANCHES, Library.class, msgs);
+ msgs = basicSetParentBranch(newParentBranch, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.LIBRARY__PARENT_BRANCH, newParentBranch, newParentBranch));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FeatureMap getPeople()
+ {
+ if (people == null)
+ {
+ people = new BasicFeatureMap(this, EXTLibraryPackage.LIBRARY__PEOPLE);
+ }
+ return people;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.LIBRARY__BRANCHES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getBranches()).basicAdd(otherEnd, msgs);
+ case EXTLibraryPackage.LIBRARY__PARENT_BRANCH:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetParentBranch((Library)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.LIBRARY__WRITERS:
+ return ((InternalEList<?>)getWriters()).basicRemove(otherEnd, msgs);
+ case EXTLibraryPackage.LIBRARY__EMPLOYEES:
+ return ((InternalEList<?>)getEmployees()).basicRemove(otherEnd, msgs);
+ case EXTLibraryPackage.LIBRARY__BORROWERS:
+ return ((InternalEList<?>)getBorrowers()).basicRemove(otherEnd, msgs);
+ case EXTLibraryPackage.LIBRARY__STOCK:
+ return ((InternalEList<?>)getStock()).basicRemove(otherEnd, msgs);
+ case EXTLibraryPackage.LIBRARY__BRANCHES:
+ return ((InternalEList<?>)getBranches()).basicRemove(otherEnd, msgs);
+ case EXTLibraryPackage.LIBRARY__PARENT_BRANCH:
+ return basicSetParentBranch(null, msgs);
+ case EXTLibraryPackage.LIBRARY__PEOPLE:
+ return ((InternalEList<?>)getPeople()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs)
+ {
+ switch (eContainerFeatureID())
+ {
+ case EXTLibraryPackage.LIBRARY__PARENT_BRANCH:
+ return eInternalContainer().eInverseRemove(this, EXTLibraryPackage.LIBRARY__BRANCHES, Library.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.LIBRARY__ADDRESS:
+ return getAddress();
+ case EXTLibraryPackage.LIBRARY__NAME:
+ return getName();
+ case EXTLibraryPackage.LIBRARY__WRITERS:
+ return getWriters();
+ case EXTLibraryPackage.LIBRARY__EMPLOYEES:
+ return getEmployees();
+ case EXTLibraryPackage.LIBRARY__BORROWERS:
+ return getBorrowers();
+ case EXTLibraryPackage.LIBRARY__STOCK:
+ return getStock();
+ case EXTLibraryPackage.LIBRARY__BOOKS:
+ return getBooks();
+ case EXTLibraryPackage.LIBRARY__BRANCHES:
+ return getBranches();
+ case EXTLibraryPackage.LIBRARY__PARENT_BRANCH:
+ if (resolve) return getParentBranch();
+ return basicGetParentBranch();
+ case EXTLibraryPackage.LIBRARY__PEOPLE:
+ if (coreType) return getPeople();
+ return ((FeatureMap.Internal)getPeople()).getWrapper();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.LIBRARY__ADDRESS:
+ setAddress((String)newValue);
+ return;
+ case EXTLibraryPackage.LIBRARY__NAME:
+ setName((String)newValue);
+ return;
+ case EXTLibraryPackage.LIBRARY__WRITERS:
+ getWriters().clear();
+ getWriters().addAll((Collection<? extends Writer>)newValue);
+ return;
+ case EXTLibraryPackage.LIBRARY__EMPLOYEES:
+ getEmployees().clear();
+ getEmployees().addAll((Collection<? extends Employee>)newValue);
+ return;
+ case EXTLibraryPackage.LIBRARY__BORROWERS:
+ getBorrowers().clear();
+ getBorrowers().addAll((Collection<? extends Borrower>)newValue);
+ return;
+ case EXTLibraryPackage.LIBRARY__STOCK:
+ getStock().clear();
+ getStock().addAll((Collection<? extends Item>)newValue);
+ return;
+ case EXTLibraryPackage.LIBRARY__BOOKS:
+ getBooks().clear();
+ getBooks().addAll((Collection<? extends Book>)newValue);
+ return;
+ case EXTLibraryPackage.LIBRARY__BRANCHES:
+ getBranches().clear();
+ getBranches().addAll((Collection<? extends Library>)newValue);
+ return;
+ case EXTLibraryPackage.LIBRARY__PARENT_BRANCH:
+ setParentBranch((Library)newValue);
+ return;
+ case EXTLibraryPackage.LIBRARY__PEOPLE:
+ ((FeatureMap.Internal)getPeople()).set(newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.LIBRARY__ADDRESS:
+ setAddress(ADDRESS_EDEFAULT);
+ return;
+ case EXTLibraryPackage.LIBRARY__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case EXTLibraryPackage.LIBRARY__WRITERS:
+ getWriters().clear();
+ return;
+ case EXTLibraryPackage.LIBRARY__EMPLOYEES:
+ getEmployees().clear();
+ return;
+ case EXTLibraryPackage.LIBRARY__BORROWERS:
+ getBorrowers().clear();
+ return;
+ case EXTLibraryPackage.LIBRARY__STOCK:
+ getStock().clear();
+ return;
+ case EXTLibraryPackage.LIBRARY__BOOKS:
+ getBooks().clear();
+ return;
+ case EXTLibraryPackage.LIBRARY__BRANCHES:
+ getBranches().clear();
+ return;
+ case EXTLibraryPackage.LIBRARY__PARENT_BRANCH:
+ setParentBranch((Library)null);
+ return;
+ case EXTLibraryPackage.LIBRARY__PEOPLE:
+ getPeople().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.LIBRARY__ADDRESS:
+ return ADDRESS_EDEFAULT == null ? address != null : !ADDRESS_EDEFAULT.equals(address);
+ case EXTLibraryPackage.LIBRARY__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case EXTLibraryPackage.LIBRARY__WRITERS:
+ return !getWriters().isEmpty();
+ case EXTLibraryPackage.LIBRARY__EMPLOYEES:
+ return !getEmployees().isEmpty();
+ case EXTLibraryPackage.LIBRARY__BORROWERS:
+ return !getBorrowers().isEmpty();
+ case EXTLibraryPackage.LIBRARY__STOCK:
+ return stock != null && !stock.isEmpty();
+ case EXTLibraryPackage.LIBRARY__BOOKS:
+ return books != null && !books.isEmpty();
+ case EXTLibraryPackage.LIBRARY__BRANCHES:
+ return branches != null && !branches.isEmpty();
+ case EXTLibraryPackage.LIBRARY__PARENT_BRANCH:
+ return basicGetParentBranch() != null;
+ case EXTLibraryPackage.LIBRARY__PEOPLE:
+ return people != null && !people.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (address: "); //$NON-NLS-1$
+ result.append(address);
+ result.append(", name: "); //$NON-NLS-1$
+ result.append(name);
+ result.append(", people: "); //$NON-NLS-1$
+ result.append(people);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LibraryImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/PeriodicalImpl.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/PeriodicalImpl.java
new file mode 100644
index 000000000..5e307817f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/PeriodicalImpl.java
@@ -0,0 +1,248 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: PeriodicalImpl.java,v 1.4 2008/12/22 14:25:22 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.impl;
+
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Periodical;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Periodical</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.PeriodicalImpl#getTitle <em>Title</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.PeriodicalImpl#getIssuesPerYear <em>Issues Per Year</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class PeriodicalImpl extends ItemImpl implements Periodical
+{
+ /**
+ * The default value of the '{@link #getTitle() <em>Title</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTitle()
+ * @generated
+ * @ordered
+ */
+ protected static final String TITLE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTitle() <em>Title</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTitle()
+ * @generated
+ * @ordered
+ */
+ protected String title = TITLE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIssuesPerYear() <em>Issues Per Year</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIssuesPerYear()
+ * @generated
+ * @ordered
+ */
+ protected static final int ISSUES_PER_YEAR_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getIssuesPerYear() <em>Issues Per Year</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIssuesPerYear()
+ * @generated
+ * @ordered
+ */
+ protected int issuesPerYear = ISSUES_PER_YEAR_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PeriodicalImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.PERIODICAL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTitle()
+ {
+ return title;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTitle(String newTitle)
+ {
+ String oldTitle = title;
+ title = newTitle;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.PERIODICAL__TITLE, oldTitle, title));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getIssuesPerYear()
+ {
+ return issuesPerYear;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIssuesPerYear(int newIssuesPerYear)
+ {
+ int oldIssuesPerYear = issuesPerYear;
+ issuesPerYear = newIssuesPerYear;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.PERIODICAL__ISSUES_PER_YEAR, oldIssuesPerYear, issuesPerYear));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.PERIODICAL__TITLE:
+ return getTitle();
+ case EXTLibraryPackage.PERIODICAL__ISSUES_PER_YEAR:
+ return getIssuesPerYear();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.PERIODICAL__TITLE:
+ setTitle((String)newValue);
+ return;
+ case EXTLibraryPackage.PERIODICAL__ISSUES_PER_YEAR:
+ setIssuesPerYear((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.PERIODICAL__TITLE:
+ setTitle(TITLE_EDEFAULT);
+ return;
+ case EXTLibraryPackage.PERIODICAL__ISSUES_PER_YEAR:
+ setIssuesPerYear(ISSUES_PER_YEAR_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.PERIODICAL__TITLE:
+ return TITLE_EDEFAULT == null ? title != null : !TITLE_EDEFAULT.equals(title);
+ case EXTLibraryPackage.PERIODICAL__ISSUES_PER_YEAR:
+ return issuesPerYear != ISSUES_PER_YEAR_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (title: "); //$NON-NLS-1$
+ result.append(title);
+ result.append(", issuesPerYear: "); //$NON-NLS-1$
+ result.append(issuesPerYear);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PeriodicalImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/PersonImpl.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/PersonImpl.java
new file mode 100644
index 000000000..bc89cc844
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/PersonImpl.java
@@ -0,0 +1,305 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: PersonImpl.java,v 1.3 2006/12/29 18:27:44 marcelop Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.impl;
+
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Person;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Person</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.PersonImpl#getAddress <em>Address</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.PersonImpl#getFirstName <em>First Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.PersonImpl#getLastName <em>Last Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PersonImpl extends EObjectImpl implements Person
+{
+ /**
+ * The default value of the '{@link #getAddress() <em>Address</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAddress()
+ * @generated
+ * @ordered
+ */
+ protected static final String ADDRESS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAddress() <em>Address</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAddress()
+ * @generated
+ * @ordered
+ */
+ protected String address = ADDRESS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getFirstName() <em>First Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFirstName()
+ * @generated
+ * @ordered
+ */
+ protected static final String FIRST_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFirstName() <em>First Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFirstName()
+ * @generated
+ * @ordered
+ */
+ protected String firstName = FIRST_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLastName() <em>Last Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLastName()
+ * @generated
+ * @ordered
+ */
+ protected static final String LAST_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLastName() <em>Last Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLastName()
+ * @generated
+ * @ordered
+ */
+ protected String lastName = LAST_NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PersonImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.PERSON;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getAddress()
+ {
+ return address;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAddress(String newAddress)
+ {
+ String oldAddress = address;
+ address = newAddress;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.PERSON__ADDRESS, oldAddress, address));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFirstName()
+ {
+ return firstName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFirstName(String newFirstName)
+ {
+ String oldFirstName = firstName;
+ firstName = newFirstName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.PERSON__FIRST_NAME, oldFirstName, firstName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLastName()
+ {
+ return lastName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLastName(String newLastName)
+ {
+ String oldLastName = lastName;
+ lastName = newLastName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EXTLibraryPackage.PERSON__LAST_NAME, oldLastName, lastName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.PERSON__ADDRESS:
+ return getAddress();
+ case EXTLibraryPackage.PERSON__FIRST_NAME:
+ return getFirstName();
+ case EXTLibraryPackage.PERSON__LAST_NAME:
+ return getLastName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.PERSON__ADDRESS:
+ setAddress((String)newValue);
+ return;
+ case EXTLibraryPackage.PERSON__FIRST_NAME:
+ setFirstName((String)newValue);
+ return;
+ case EXTLibraryPackage.PERSON__LAST_NAME:
+ setLastName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.PERSON__ADDRESS:
+ setAddress(ADDRESS_EDEFAULT);
+ return;
+ case EXTLibraryPackage.PERSON__FIRST_NAME:
+ setFirstName(FIRST_NAME_EDEFAULT);
+ return;
+ case EXTLibraryPackage.PERSON__LAST_NAME:
+ setLastName(LAST_NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.PERSON__ADDRESS:
+ return ADDRESS_EDEFAULT == null ? address != null : !ADDRESS_EDEFAULT.equals(address);
+ case EXTLibraryPackage.PERSON__FIRST_NAME:
+ return FIRST_NAME_EDEFAULT == null ? firstName != null : !FIRST_NAME_EDEFAULT.equals(firstName);
+ case EXTLibraryPackage.PERSON__LAST_NAME:
+ return LAST_NAME_EDEFAULT == null ? lastName != null : !LAST_NAME_EDEFAULT.equals(lastName);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (address: "); //$NON-NLS-1$
+ result.append(address);
+ result.append(", firstName: "); //$NON-NLS-1$
+ result.append(firstName);
+ result.append(", lastName: "); //$NON-NLS-1$
+ result.append(lastName);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PersonImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/VideoCassetteImpl.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/VideoCassetteImpl.java
new file mode 100644
index 000000000..84c59a7be
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/VideoCassetteImpl.java
@@ -0,0 +1,160 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: VideoCassetteImpl.java,v 1.4 2007/02/20 17:41:55 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.impl;
+
+
+
+import java.util.Collection;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Person;
+import org.eclipse.emf.parsley.examples.library.VideoCassette;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Video Cassette</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.VideoCassetteImpl#getCast <em>Cast</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class VideoCassetteImpl extends AudioVisualItemImpl implements VideoCassette
+{
+ /**
+ * The cached value of the '{@link #getCast() <em>Cast</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCast()
+ * @generated
+ * @ordered
+ */
+ protected EList<Person> cast;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VideoCassetteImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.VIDEO_CASSETTE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Person> getCast()
+ {
+ if (cast == null)
+ {
+ cast = new EObjectResolvingEList<Person>(Person.class, this, EXTLibraryPackage.VIDEO_CASSETTE__CAST);
+ }
+ return cast;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.VIDEO_CASSETTE__CAST:
+ return getCast();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.VIDEO_CASSETTE__CAST:
+ getCast().clear();
+ getCast().addAll((Collection<? extends Person>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.VIDEO_CASSETTE__CAST:
+ getCast().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.VIDEO_CASSETTE__CAST:
+ return cast != null && !cast.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //VideoCassetteImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/WriterImpl.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/WriterImpl.java
new file mode 100644
index 000000000..b47ae78ee
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/impl/WriterImpl.java
@@ -0,0 +1,285 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: WriterImpl.java,v 1.4 2007/02/20 17:41:55 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.impl;
+
+
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Writer;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Writer</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.WriterImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.library.impl.WriterImpl#getBooks <em>Books</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class WriterImpl extends PersonImpl implements Writer
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getBooks() <em>Books</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBooks()
+ * @generated
+ * @ordered
+ */
+ protected EList<Book> books;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected WriterImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EXTLibraryPackage.Literals.WRITER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String getName()
+ {
+ if (getFirstName() == null)
+ {
+ if (getLastName() == null)
+ {
+ return ""; //$NON-NLS-1$
+ }
+ else
+ {
+ return getLastName();
+ }
+ }
+ else if (getLastName() == null)
+ {
+ return getFirstName();
+ }
+ else
+ {
+ StringBuffer result = new StringBuffer();
+
+ result.append(getFirstName()).append(' ').append(getLastName());
+
+ return result.toString();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setName(String newName)
+ {
+ if (newName == null || newName.length() == 0)
+ {
+ setFirstName(null);
+ setLastName(null);
+ }
+ else
+ {
+ int comma = newName.indexOf(',');
+ if (comma < 0)
+ {
+ comma = newName.indexOf(' ');
+ }
+
+ if (comma >= 0)
+ {
+ setFirstName(newName.substring(0, comma).trim());
+ setLastName(newName.substring(comma + 1).trim());
+ }
+ else
+ {
+ setFirstName(newName);
+ setLastName(null);
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Book> getBooks()
+ {
+ if (books == null)
+ {
+ books = new EObjectWithInverseResolvingEList<Book>(Book.class, this, EXTLibraryPackage.WRITER__BOOKS, EXTLibraryPackage.BOOK__AUTHOR);
+ }
+ return books;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.WRITER__BOOKS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getBooks()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.WRITER__BOOKS:
+ return ((InternalEList<?>)getBooks()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.WRITER__NAME:
+ return getName();
+ case EXTLibraryPackage.WRITER__BOOKS:
+ return getBooks();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.WRITER__NAME:
+ setName((String)newValue);
+ return;
+ case EXTLibraryPackage.WRITER__BOOKS:
+ getBooks().clear();
+ getBooks().addAll((Collection<? extends Book>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.WRITER__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case EXTLibraryPackage.WRITER__BOOKS:
+ getBooks().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EXTLibraryPackage.WRITER__NAME:
+ return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
+ case EXTLibraryPackage.WRITER__BOOKS:
+ return books != null && !books.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //WriterImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/util/EXTLibraryAdapterFactory.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/util/EXTLibraryAdapterFactory.java
new file mode 100644
index 000000000..1df9aa5ae
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/util/EXTLibraryAdapterFactory.java
@@ -0,0 +1,409 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: EXTLibraryAdapterFactory.java,v 1.4 2008/02/20 22:12:51 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.util;
+
+
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.parsley.examples.library.*;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage
+ * @generated
+ */
+public class EXTLibraryAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static EXTLibraryPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibraryAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = EXTLibraryPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object)
+ {
+ if (object == modelPackage)
+ {
+ return true;
+ }
+ if (object instanceof EObject)
+ {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EXTLibrarySwitch<Adapter> modelSwitch =
+ new EXTLibrarySwitch<Adapter>()
+ {
+ @Override
+ public Adapter caseBook(Book object)
+ {
+ return createBookAdapter();
+ }
+ @Override
+ public Adapter caseLibrary(Library object)
+ {
+ return createLibraryAdapter();
+ }
+ @Override
+ public Adapter caseWriter(Writer object)
+ {
+ return createWriterAdapter();
+ }
+ @Override
+ public Adapter caseItem(Item object)
+ {
+ return createItemAdapter();
+ }
+ @Override
+ public Adapter caseLendable(Lendable object)
+ {
+ return createLendableAdapter();
+ }
+ @Override
+ public Adapter caseCirculatingItem(CirculatingItem object)
+ {
+ return createCirculatingItemAdapter();
+ }
+ @Override
+ public Adapter casePeriodical(Periodical object)
+ {
+ return createPeriodicalAdapter();
+ }
+ @Override
+ public Adapter caseAudioVisualItem(AudioVisualItem object)
+ {
+ return createAudioVisualItemAdapter();
+ }
+ @Override
+ public Adapter caseBookOnTape(BookOnTape object)
+ {
+ return createBookOnTapeAdapter();
+ }
+ @Override
+ public Adapter caseVideoCassette(VideoCassette object)
+ {
+ return createVideoCassetteAdapter();
+ }
+ @Override
+ public Adapter caseBorrower(Borrower object)
+ {
+ return createBorrowerAdapter();
+ }
+ @Override
+ public Adapter casePerson(Person object)
+ {
+ return createPersonAdapter();
+ }
+ @Override
+ public Adapter caseEmployee(Employee object)
+ {
+ return createEmployeeAdapter();
+ }
+ @Override
+ public Adapter caseAddressable(Addressable object)
+ {
+ return createAddressableAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object)
+ {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target)
+ {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.library.Book <em>Book</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.library.Book
+ * @generated
+ */
+ public Adapter createBookAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.library.Library <em>Library</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.library.Library
+ * @generated
+ */
+ public Adapter createLibraryAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.library.Writer <em>Writer</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.library.Writer
+ * @generated
+ */
+ public Adapter createWriterAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.library.Item <em>Item</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.library.Item
+ * @generated
+ */
+ public Adapter createItemAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.library.Lendable <em>Lendable</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.library.Lendable
+ * @generated
+ */
+ public Adapter createLendableAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.library.CirculatingItem <em>Circulating Item</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.library.CirculatingItem
+ * @generated
+ */
+ public Adapter createCirculatingItemAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.library.Periodical <em>Periodical</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.library.Periodical
+ * @generated
+ */
+ public Adapter createPeriodicalAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.library.AudioVisualItem <em>Audio Visual Item</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.library.AudioVisualItem
+ * @generated
+ */
+ public Adapter createAudioVisualItemAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.library.BookOnTape <em>Book On Tape</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.library.BookOnTape
+ * @generated
+ */
+ public Adapter createBookOnTapeAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.library.VideoCassette <em>Video Cassette</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.library.VideoCassette
+ * @generated
+ */
+ public Adapter createVideoCassetteAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.library.Borrower <em>Borrower</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.library.Borrower
+ * @generated
+ */
+ public Adapter createBorrowerAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.library.Person <em>Person</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.library.Person
+ * @generated
+ */
+ public Adapter createPersonAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.library.Employee <em>Employee</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.library.Employee
+ * @generated
+ */
+ public Adapter createEmployeeAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.library.Addressable <em>Addressable</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.library.Addressable
+ * @generated
+ */
+ public Adapter createAddressableAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter()
+ {
+ return null;
+ }
+
+} //EXTLibraryAdapterFactory
diff --git a/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/util/EXTLibrarySwitch.java b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/util/EXTLibrarySwitch.java
new file mode 100644
index 000000000..a719dec91
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.library/src/org/eclipse/emf/parsley/examples/library/util/EXTLibrarySwitch.java
@@ -0,0 +1,478 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2005-2006 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: EXTLibrarySwitch.java,v 1.5 2007/06/15 21:22:20 emerks Exp $
+ */
+package org.eclipse.emf.parsley.examples.library.util;
+
+
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.parsley.examples.library.*;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.library.EXTLibraryPackage
+ * @generated
+ */
+public class EXTLibrarySwitch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static EXTLibraryPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EXTLibrarySwitch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = EXTLibraryPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ public T doSwitch(EObject theEObject)
+ {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject)
+ {
+ if (theEClass.eContainer() == modelPackage)
+ {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else
+ {
+ List<EClass> eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch(eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(int classifierID, EObject theEObject)
+ {
+ switch (classifierID)
+ {
+ case EXTLibraryPackage.BOOK:
+ {
+ Book book = (Book)theEObject;
+ T result = caseBook(book);
+ if (result == null) result = caseCirculatingItem(book);
+ if (result == null) result = caseItem(book);
+ if (result == null) result = caseLendable(book);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.LIBRARY:
+ {
+ Library library = (Library)theEObject;
+ T result = caseLibrary(library);
+ if (result == null) result = caseAddressable(library);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.WRITER:
+ {
+ Writer writer = (Writer)theEObject;
+ T result = caseWriter(writer);
+ if (result == null) result = casePerson(writer);
+ if (result == null) result = caseAddressable(writer);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.ITEM:
+ {
+ Item item = (Item)theEObject;
+ T result = caseItem(item);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.LENDABLE:
+ {
+ Lendable lendable = (Lendable)theEObject;
+ T result = caseLendable(lendable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.CIRCULATING_ITEM:
+ {
+ CirculatingItem circulatingItem = (CirculatingItem)theEObject;
+ T result = caseCirculatingItem(circulatingItem);
+ if (result == null) result = caseItem(circulatingItem);
+ if (result == null) result = caseLendable(circulatingItem);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.PERIODICAL:
+ {
+ Periodical periodical = (Periodical)theEObject;
+ T result = casePeriodical(periodical);
+ if (result == null) result = caseItem(periodical);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.AUDIO_VISUAL_ITEM:
+ {
+ AudioVisualItem audioVisualItem = (AudioVisualItem)theEObject;
+ T result = caseAudioVisualItem(audioVisualItem);
+ if (result == null) result = caseCirculatingItem(audioVisualItem);
+ if (result == null) result = caseItem(audioVisualItem);
+ if (result == null) result = caseLendable(audioVisualItem);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.BOOK_ON_TAPE:
+ {
+ BookOnTape bookOnTape = (BookOnTape)theEObject;
+ T result = caseBookOnTape(bookOnTape);
+ if (result == null) result = caseAudioVisualItem(bookOnTape);
+ if (result == null) result = caseCirculatingItem(bookOnTape);
+ if (result == null) result = caseItem(bookOnTape);
+ if (result == null) result = caseLendable(bookOnTape);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.VIDEO_CASSETTE:
+ {
+ VideoCassette videoCassette = (VideoCassette)theEObject;
+ T result = caseVideoCassette(videoCassette);
+ if (result == null) result = caseAudioVisualItem(videoCassette);
+ if (result == null) result = caseCirculatingItem(videoCassette);
+ if (result == null) result = caseItem(videoCassette);
+ if (result == null) result = caseLendable(videoCassette);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.BORROWER:
+ {
+ Borrower borrower = (Borrower)theEObject;
+ T result = caseBorrower(borrower);
+ if (result == null) result = casePerson(borrower);
+ if (result == null) result = caseAddressable(borrower);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.PERSON:
+ {
+ Person person = (Person)theEObject;
+ T result = casePerson(person);
+ if (result == null) result = caseAddressable(person);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.EMPLOYEE:
+ {
+ Employee employee = (Employee)theEObject;
+ T result = caseEmployee(employee);
+ if (result == null) result = casePerson(employee);
+ if (result == null) result = caseAddressable(employee);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EXTLibraryPackage.ADDRESSABLE:
+ {
+ Addressable addressable = (Addressable)theEObject;
+ T result = caseAddressable(addressable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Book</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Book</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBook(Book object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Library</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Library</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLibrary(Library object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Writer</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Writer</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseWriter(Writer object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Item</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Item</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseItem(Item object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Lendable</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Lendable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLendable(Lendable object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Circulating Item</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Circulating Item</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCirculatingItem(CirculatingItem object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Periodical</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Periodical</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePeriodical(Periodical object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Audio Visual Item</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Audio Visual Item</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAudioVisualItem(AudioVisualItem object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Book On Tape</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Book On Tape</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBookOnTape(BookOnTape object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Video Cassette</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Video Cassette</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVideoCassette(VideoCassette object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Borrower</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Borrower</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBorrower(Borrower object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Person</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Person</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePerson(Person object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Employee</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Employee</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEmployee(Employee object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Addressable</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Addressable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAddressable(Addressable object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public T defaultCase(EObject object)
+ {
+ return null;
+ }
+
+} //EXTLibrarySwitch
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/.classpath b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/.classpath
new file mode 100644
index 000000000..b83e23bcd
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="emfparsley-gen"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/.project b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/.project
new file mode 100644
index 000000000..aaa19ccad
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.mail.accountsview</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..deb5226ce
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.emf.parsley.examples.mail.accountsview
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: org.eclipse.emf.parsley.examples.mail.accountsview;singleton:=true
+Bundle-Activator: org.eclipse.emf.parsley.examples.mail.accountsview.AccountsviewActivator
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.ui;bundle-version="3.5.0",
+ org.eclipse.emf.parsley.views;bundle-version="0.1.0";visibility:=reexport,
+ org.eclipse.emf.parsley.examples.mail.model;bundle-version="0.1.0",
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.4.2,2.5.0)"
+Import-Package: org.apache.log4j,
+ org.apache.commons.logging
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.parsley.examples.mail.accountsview,
+ org.eclipse.emf.parsley.examples.mail.accountsview.views
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/build.properties b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/build.properties
new file mode 100644
index 000000000..cdac4372d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/build.properties
@@ -0,0 +1,7 @@
+source.. = src/,\
+ emfparsley-gen/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/
+
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/accountsview/EmfComponentsGuiceModuleGen.java b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/accountsview/EmfComponentsGuiceModuleGen.java
new file mode 100644
index 000000000..f19a65eea
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/accountsview/EmfComponentsGuiceModuleGen.java
@@ -0,0 +1,28 @@
+package org.eclipse.emf.parsley.examples.mail.accountsview;
+
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.examples.mail.accountsview.edit.ui.provider.ViewerContentProviderGen;
+import org.eclipse.emf.parsley.examples.mail.accountsview.ui.provider.LabelProviderGen;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * org.eclipse.emf.parsley.examples.mail.accountsview Emf Components Dsl Module file
+ */
+@SuppressWarnings("all")
+public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {
+ public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends ILabelProvider> bindILabelProvider() {
+ return LabelProviderGen.class;
+ }
+
+ @Override
+ public Class<? extends IContentProvider> bindIContentProvider() {
+ return ViewerContentProviderGen.class;
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/accountsview/edit/ui/provider/ViewerContentProviderGen.java b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/accountsview/edit/ui/provider/ViewerContentProviderGen.java
new file mode 100644
index 000000000..ae3600534
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/accountsview/edit/ui/provider/ViewerContentProviderGen.java
@@ -0,0 +1,20 @@
+package org.eclipse.emf.parsley.examples.mail.accountsview.edit.ui.provider;
+
+import com.google.inject.Inject;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.parsley.edit.ui.provider.ViewerContentProvider;
+import org.eclipse.emf.parsley.examples.mail.Folder;
+
+@SuppressWarnings("all")
+public class ViewerContentProviderGen extends ViewerContentProvider {
+ @Inject
+ public ViewerContentProviderGen(final AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ public Object children(final Folder it) {
+ EList<Folder> _subfolders = it.getSubfolders();
+ return _subfolders;
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/accountsview/ui/provider/LabelProviderGen.java b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/accountsview/ui/provider/LabelProviderGen.java
new file mode 100644
index 000000000..0a0b20ee8
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/accountsview/ui/provider/LabelProviderGen.java
@@ -0,0 +1,59 @@
+package org.eclipse.emf.parsley.examples.mail.accountsview.ui.provider;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.parsley.examples.mail.Account;
+import org.eclipse.emf.parsley.examples.mail.Folder;
+import org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider;
+
+@SuppressWarnings("all")
+public class LabelProviderGen extends ViewerLabelProvider {
+ @Inject
+ public LabelProviderGen(final AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+
+ public String text(final Account it) {
+ String _email = it.getEmail();
+ return _email;
+ }
+
+ public String text(final Folder it) {
+ String _name = it.getName();
+ return _name;
+ }
+
+ public Object image(final Account it) {
+ return "account.gif";
+ }
+
+ public Object image(final Folder it) {
+ String _switchResult = null;
+ String _name = it.getName();
+ final String getName = _name;
+ boolean _matched = false;
+ if (!_matched) {
+ if (Objects.equal(getName,"Inbox")) {
+ _matched=true;
+ _switchResult = "inbox.gif";
+ }
+ }
+ if (!_matched) {
+ if (Objects.equal(getName,"Sent")) {
+ _matched=true;
+ _switchResult = "sent.png";
+ }
+ }
+ if (!_matched) {
+ if (Objects.equal(getName,"Trash")) {
+ _matched=true;
+ _switchResult = "trash.png";
+ }
+ }
+ if (!_matched) {
+ _switchResult = "folder.gif";
+ }
+ return _switchResult;
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/account.gif b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/account.gif
new file mode 100644
index 000000000..63c8abfbe
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/account.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/folder.gif b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/folder.gif
new file mode 100644
index 000000000..42e027c93
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/folder.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/inbox.gif b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/inbox.gif
new file mode 100644
index 000000000..27506f6d7
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/inbox.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/sample.gif b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/sample.gif
new file mode 100644
index 000000000..34fb3c9d8
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/sample.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/sent.png b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/sent.png
new file mode 100644
index 000000000..34a736f70
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/sent.png
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/trash.png b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/trash.png
new file mode 100644
index 000000000..112b01638
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/icons/trash.png
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/plugin.xml b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/plugin.xml
new file mode 100644
index 000000000..eb919c4f2
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/plugin.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <category
+ id="org.eclipse.emf.parsley.examples.mail.accountsview"
+ name="Mail Example">
+ </category>
+ <view
+ category="org.eclipse.emf.parsley.examples.mail.accountsview"
+ class="org.eclipse.emf.parsley.examples.mail.accountsview.AccountsviewExecutableExtensionFactory:org.eclipse.emf.parsley.examples.mail.accountsview.views.AccountsView"
+ icon="icons/sample.gif"
+ id="org.eclipse.emf.parsley.examples.mail.accountsview.views.AccountsView"
+ name="Mail Accounts View">
+ </view>
+ </extension>
+
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/plugin.xml_emfparsley_gen b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/plugin.xml_emfparsley_gen
new file mode 100644
index 000000000..be0d4876c
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/plugin.xml_emfparsley_gen
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ category="org.eclipse.emf.parsley.examples.mail.accountsview"
+ class="org.eclipse.emf.parsley.examples.mail.accountsview.AccountsviewExecutableExtensionFactory:org.eclipse.emf.parsley.examples.mail.accountsview.views.AccountsView"
+ id="org.eclipse.emf.parsley.examples.mail.accountsview.views.AccountsView"
+ name="Mail Accounts View"
+ restorable="true">
+ </view>
+ </extension>
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/AccountsviewActivator.java b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/AccountsviewActivator.java
new file mode 100644
index 000000000..973b63c26
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/AccountsviewActivator.java
@@ -0,0 +1,57 @@
+package org.eclipse.emf.parsley.examples.mail.accountsview;
+
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.ui.EmfComponentsAbstractActivator;
+import org.osgi.framework.BundleContext;
+
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class AccountsviewActivator extends EmfComponentsAbstractActivator {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.parsley.examples.mail.accountsview"; //$NON-NLS-1$
+
+ // The shared instance
+ private static AccountsviewActivator plugin;
+
+ public AccountsviewActivator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static AccountsviewActivator getDefault() {
+ return plugin;
+ }
+
+ /**
+ * Creates the EmfComponentsGuiceModule for this this plugin
+ *
+ * @return the EmfComponentsGuiceModule for this this plugin
+ */
+ public EmfComponentsGuiceModule createModule() {
+ return new AccountsviewGuiceModule(getDefault());
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/AccountsviewExecutableExtensionFactory.java b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/AccountsviewExecutableExtensionFactory.java
new file mode 100644
index 000000000..378e99fb3
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/AccountsviewExecutableExtensionFactory.java
@@ -0,0 +1,27 @@
+package org.eclipse.emf.parsley.examples.mail.accountsview;
+
+import org.eclipse.emf.parsley.EmfComponentsExtensionFactory;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.osgi.framework.Bundle;
+
+
+import com.google.inject.Injector;
+
+public class AccountsviewExecutableExtensionFactory extends
+ EmfComponentsExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return AccountsviewActivator.getDefault().getBundle();
+ }
+
+ @Override
+ protected EmfComponentsGuiceModule getModule() {
+ return AccountsviewActivator.getDefault().createModule();
+ }
+
+ @Override
+ protected Injector getInjector() {
+ return AccountsviewActivator.getDefault().getInjector();
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/AccountsviewGuiceModule.java b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/AccountsviewGuiceModule.java
new file mode 100644
index 000000000..a4130f7a8
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/AccountsviewGuiceModule.java
@@ -0,0 +1,20 @@
+package org.eclipse.emf.parsley.examples.mail.accountsview;
+
+import org.eclipse.emf.parsley.examples.mail.accountsview.EmfComponentsGuiceModuleGen;
+
+import org.eclipse.emf.parsley.examples.mail.accountsview.custom.MailEmptyResourceInitializer;
+import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+
+public class AccountsviewGuiceModule extends EmfComponentsGuiceModuleGen {
+
+ public AccountsviewGuiceModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends EmptyResourceInitializer> bindEmptyResourceInitializer() {
+ return MailEmptyResourceInitializer.class;
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/custom/MailEmptyResourceInitializer.java b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/custom/MailEmptyResourceInitializer.java
new file mode 100644
index 000000000..23d59f70b
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/custom/MailEmptyResourceInitializer.java
@@ -0,0 +1,84 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.examples.mail.accountsview.custom;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.parsley.examples.mail.Account;
+import org.eclipse.emf.parsley.examples.mail.Folder;
+import org.eclipse.emf.parsley.examples.mail.Mail;
+import org.eclipse.emf.parsley.examples.mail.MailFactory;
+import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+public class MailEmptyResourceInitializer extends EmptyResourceInitializer {
+
+ int counter = 0;
+
+ @Override
+ public void initialize(Resource resource) {
+ super.initialize(resource);
+
+ Account account = createAccount("Lorenzo", "lorenzo@foobar");
+ resource.getContents().add(account);
+ createDefaultFolders(account);
+
+ account = createAccount("Lorenzo2", "lorenzo2@foobar");
+ resource.getContents().add(account);
+ createDefaultFolders(account);
+
+ account = createAccount("Lorenzo3", "lorenzo3@foobar");
+ resource.getContents().add(account);
+ createDefaultFolders(account);
+ }
+
+ protected Account createAccount(String name, String email) {
+ Account account = MailFactory.eINSTANCE.createAccount();
+ account.setName(name);
+ account.setEmail(email);
+ return account;
+ }
+
+ protected void createDefaultFolders(Account account) {
+ Folder folder = createFolder(account, "Inbox");
+ createMail(folder);
+ createMail(folder);
+
+ createFolder(account, "Sent");
+ createFolder(account, "Trash");
+
+ createFolder(account, "myfolder");
+ folder = createFolder(account, "myfolder2");
+ createSubFolder(folder, "sub1");
+ createSubFolder(folder, "sub2");
+ }
+
+ protected Folder createFolder(Account account, String name) {
+ Folder folder = MailFactory.eINSTANCE.createFolder();
+ folder.setName(name);
+ account.getFolders().add(folder);
+ return folder;
+ }
+
+ protected Folder createSubFolder(Folder parent, String name) {
+ Folder folder = MailFactory.eINSTANCE.createFolder();
+ folder.setName(name);
+ parent.getSubfolders().add(folder);
+ return folder;
+ }
+
+ protected void createMail(Folder folder) {
+ Mail mail = MailFactory.eINSTANCE.createMail();
+ mail.setFrom("foo@foobar");
+ mail.setSubject("Test subject " + (++counter));
+ mail.getRecipients().add("dest@foobar");
+ mail.setMessage("This is a test message."
+ + "\nNumber " + counter
+ + "\nCheers!");
+ folder.getMails().add(mail);
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/module.parsley b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/module.parsley
new file mode 100644
index 000000000..40d80b32a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/module.parsley
@@ -0,0 +1,40 @@
+import org.eclipse.emf.parsley.examples.mail.Account
+import org.eclipse.emf.parsley.examples.mail.Folder
+import org.eclipse.emf.parsley.examples.mail.accountsview.views.AccountsView
+
+/* org.eclipse.emf.parsley.examples.mail.accountsview Emf Components Dsl Module file */
+module org.eclipse.emf.parsley.examples.mail.accountsview {
+
+ parts {
+ viewpart org.eclipse.emf.parsley.examples.mail.accountsview.views.AccountsView {
+ viewname "Mail Accounts View"
+ viewclass AccountsView
+ viewcategory org.eclipse.emf.parsley.examples.mail.accountsview
+ }
+ }
+
+ labelProvider {
+ image {
+ Account -> "account.gif"
+ Folder -> {
+ switch (name) {
+ case "Inbox" : "inbox.gif"
+ case "Sent" : "sent.png"
+ case "Trash" : "trash.png"
+ default: "folder.gif"
+ }
+ }
+ }
+
+ text {
+ Account -> email
+ Folder -> name
+ }
+ }
+
+ viewerContentProvider {
+ children {
+ Folder -> subfolders // don't show emails
+ }
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/views/AccountsView.java b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/views/AccountsView.java
new file mode 100644
index 000000000..2a9db2fc1
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.accountsview/src/org/eclipse/emf/parsley/examples/mail/accountsview/views/AccountsView.java
@@ -0,0 +1,35 @@
+package org.eclipse.emf.parsley.examples.mail.accountsview.views;
+
+import java.io.IOException;
+
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.parsley.views.AbstractSaveableTreeView;
+
+
+/**
+ * @author Lorenzo Bettini
+ */
+public class AccountsView extends AbstractSaveableTreeView {
+
+ /**
+ * The ID of the view as specified by the extension.
+ */
+ public static final String ID = "org.eclipse.emf.parsley.examples.mail.accountsview.views.AccountsView";
+
+ @Override
+ protected URI createResourceURI() {
+ return URI.createFileURI(System.getProperty("user.home")
+ + "/examples/mail/My.mail");
+ }
+
+ @Override
+ protected void mostRecentCommandAffectsResource(Command mostRecentCommand) {
+ try {
+ saveResourceAndUpdateDirtyState();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+} \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.mailsview/.classpath b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/.classpath
new file mode 100644
index 000000000..b83e23bcd
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="emfparsley-gen"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.mailsview/.project b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/.project
new file mode 100644
index 000000000..a9b2f3fd3
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.mail.mailsview</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.mailsview/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.mailsview/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..1a8d56106
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.emf.parsley.examples.mail.mailsview
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: org.eclipse.emf.parsley.examples.mail.mailsview;singleton:=true
+Bundle-Activator: org.eclipse.emf.parsley.examples.mail.mailsview.MailsviewActivator
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.emf.parsley.views;bundle-version="0.1.0",
+ org.eclipse.emf.parsley.examples.mail.model;bundle-version="0.1.0",
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.4.2,2.5.0)"
+Import-Package: org.apache.log4j,
+ org.apache.commons.logging
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.parsley.examples.mail.mailsview,
+ org.eclipse.emf.parsley.examples.mail.mailsview.views
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.mailsview/build.properties b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/build.properties
new file mode 100644
index 000000000..cdac4372d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/build.properties
@@ -0,0 +1,7 @@
+source.. = src/,\
+ emfparsley-gen/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/
+
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.mailsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/mailsview/EmfComponentsGuiceModuleGen.java b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/mailsview/EmfComponentsGuiceModuleGen.java
new file mode 100644
index 000000000..3dae409c5
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/mailsview/EmfComponentsGuiceModuleGen.java
@@ -0,0 +1,21 @@
+package org.eclipse.emf.parsley.examples.mail.mailsview;
+
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.examples.mail.mailsview.ui.provider.FeaturesProviderGen;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * org.eclipse.emf.parsley.examples.mail.mailsview Emf Components Dsl Module file
+ */
+@SuppressWarnings("all")
+public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {
+ public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends FeaturesProvider> bindFeaturesProvider() {
+ return FeaturesProviderGen.class;
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.mailsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/mailsview/ui/provider/FeaturesProviderGen.java b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/mailsview/ui/provider/FeaturesProviderGen.java
new file mode 100644
index 000000000..2c7322e06
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/mailsview/ui/provider/FeaturesProviderGen.java
@@ -0,0 +1,15 @@
+package org.eclipse.emf.parsley.examples.mail.mailsview.ui.provider;
+
+import org.eclipse.emf.parsley.ui.provider.EClassToEStructuralFeatureAsStringsMap;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+
+@SuppressWarnings("all")
+public class FeaturesProviderGen extends FeaturesProvider {
+ @Override
+ public void buildStringMap(final EClassToEStructuralFeatureAsStringsMap stringMap) {
+ super.buildStringMap(stringMap);
+
+ stringMap.mapTo("org.eclipse.emf.parsley.examples.mail.Mail",
+ "subject", "from");
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.mailsview/icons/sample.gif b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/icons/sample.gif
new file mode 100644
index 000000000..34fb3c9d8
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/icons/sample.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.mailsview/plugin.xml b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/plugin.xml
new file mode 100644
index 000000000..f94d7ee1a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/plugin.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <category
+ id="org.eclipse.emf.parsley.examples.mail.mailsview"
+ name="Mail Example">
+ </category>
+ <view
+ category="org.eclipse.emf.parsley.examples.mail.mailsview"
+ class="org.eclipse.emf.parsley.examples.mail.mailsview.MailsviewExecutableExtensionFactory:org.eclipse.emf.parsley.examples.mail.mailsview.views.MailsView"
+ icon="icons/sample.gif"
+ id="org.eclipse.emf.parsley.examples.mail.mailsview.views.MailsView"
+ name="Mails View">
+ </view>
+ </extension>
+ <extension
+ point="org.eclipse.ui.perspectiveExtensions">
+ <perspectiveExtension
+ targetID="org.eclipse.emf.parsley.examples.mail.rcp.perspective">
+ <view
+ id="org.eclipse.emf.parsley.examples.mail.mailsview.views.MailsView"
+ minimized="false"
+ ratio="0.25"
+ relationship="top"
+ relative="org.eclipse.ui.editorss">
+ </view>
+ </perspectiveExtension>
+ </extension>
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.mailsview/plugin.xml_emfparsley_gen b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/plugin.xml_emfparsley_gen
new file mode 100644
index 000000000..097bb7267
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/plugin.xml_emfparsley_gen
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ category="org.eclipse.emf.parsley.examples.mail.mailsview"
+ class="org.eclipse.emf.parsley.examples.mail.mailsview.MailsviewExecutableExtensionFactory:org.eclipse.emf.parsley.examples.mail.mailsview.views.MailsView"
+ id="org.eclipse.emf.parsley.examples.mail.mailsview.views.MailsView"
+ name="Mails View"
+ restorable="true">
+ </view>
+ </extension>
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/MailsviewActivator.java b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/MailsviewActivator.java
new file mode 100644
index 000000000..f033208b1
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/MailsviewActivator.java
@@ -0,0 +1,57 @@
+package org.eclipse.emf.parsley.examples.mail.mailsview;
+
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.ui.EmfComponentsAbstractActivator;
+import org.osgi.framework.BundleContext;
+
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class MailsviewActivator extends EmfComponentsAbstractActivator {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.parsley.examples.mail.mailsview"; //$NON-NLS-1$
+
+ // The shared instance
+ private static MailsviewActivator plugin;
+
+ public MailsviewActivator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static MailsviewActivator getDefault() {
+ return plugin;
+ }
+
+ /**
+ * Creates the EmfComponentsGuiceModule for this this plugin
+ *
+ * @return the EmfComponentsGuiceModule for this this plugin
+ */
+ public EmfComponentsGuiceModule createModule() {
+ return new MailsviewGuiceModule(getDefault());
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/MailsviewExecutableExtensionFactory.java b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/MailsviewExecutableExtensionFactory.java
new file mode 100644
index 000000000..5bf9f47ef
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/MailsviewExecutableExtensionFactory.java
@@ -0,0 +1,27 @@
+package org.eclipse.emf.parsley.examples.mail.mailsview;
+
+import org.eclipse.emf.parsley.EmfComponentsExtensionFactory;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.osgi.framework.Bundle;
+
+
+import com.google.inject.Injector;
+
+public class MailsviewExecutableExtensionFactory extends
+ EmfComponentsExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return MailsviewActivator.getDefault().getBundle();
+ }
+
+ @Override
+ protected EmfComponentsGuiceModule getModule() {
+ return MailsviewActivator.getDefault().createModule();
+ }
+
+ @Override
+ protected Injector getInjector() {
+ return MailsviewActivator.getDefault().getInjector();
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/MailsviewGuiceModule.java b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/MailsviewGuiceModule.java
new file mode 100644
index 000000000..a302c34e4
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/MailsviewGuiceModule.java
@@ -0,0 +1,14 @@
+package org.eclipse.emf.parsley.examples.mail.mailsview;
+
+import org.eclipse.emf.parsley.examples.mail.mailsview.EmfComponentsGuiceModuleGen;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+
+public class MailsviewGuiceModule extends EmfComponentsGuiceModuleGen {
+
+ public MailsviewGuiceModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/module.parsley b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/module.parsley
new file mode 100644
index 000000000..146f22551
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/module.parsley
@@ -0,0 +1,18 @@
+import org.eclipse.emf.parsley.examples.mail.Mail
+
+/* org.eclipse.emf.parsley.examples.mail.mailsview Emf Components Dsl Module file */
+module org.eclipse.emf.parsley.examples.mail.mailsview {
+ parts {
+ viewpart org.eclipse.emf.parsley.examples.mail.mailsview.views.MailsView {
+ viewname "Mails View"
+ viewclass org.eclipse.emf.parsley.examples.mail.mailsview.views.MailsView
+ viewcategory org.eclipse.emf.parsley.examples.mail.mailsview
+ }
+ }
+
+ featuresProvider {
+ features {
+ Mail -> subject, from
+ }
+ }
+} \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/views/MailsView.java b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/views/MailsView.java
new file mode 100644
index 000000000..81c8cb697
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.mailsview/src/org/eclipse/emf/parsley/examples/mail/mailsview/views/MailsView.java
@@ -0,0 +1,30 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.examples.mail.mailsview.views;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.examples.mail.MailPackage;
+import org.eclipse.emf.parsley.views.AbstractOnSelectionTableView;
+
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+public class MailsView extends AbstractOnSelectionTableView {
+
+ public static final String ID = "org.eclipse.emf.parsley.examples.mail.mailsview.views.MailsView";
+
+ @Override
+ protected EStructuralFeature getEStructuralFeature() {
+ return MailPackage.Literals.FOLDER__MAILS;
+ }
+
+ @Override
+ protected EClass getEClass() {
+ return MailPackage.Literals.MAIL;
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/.classpath b/examples/org.eclipse.emf.parsley.examples.mail.messageview/.classpath
new file mode 100644
index 000000000..b83e23bcd
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="emfparsley-gen"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/.project b/examples/org.eclipse.emf.parsley.examples.mail.messageview/.project
new file mode 100644
index 000000000..74c826f2c
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.mail.messageview</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.parsley.examples.mail.messageview/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.parsley.examples.mail.messageview/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..b015268dd
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.emf.parsley.examples.mail.messageview
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: org.eclipse.emf.parsley.examples.mail.messageview;singleton:=true
+Bundle-Activator: org.eclipse.emf.parsley.examples.mail.messageview.MessageviewActivator
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.emf.parsley.examples.mail.model;bundle-version="0.1.0",
+ org.eclipse.emf.parsley.views;bundle-version="0.1.0",
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.4.2,2.5.0)"
+Import-Package: org.apache.log4j,
+ org.apache.commons.logging
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.parsley.examples.mail.messageview,
+ org.eclipse.emf.parsley.examples.mail.messageview.views
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/build.properties b/examples/org.eclipse.emf.parsley.examples.mail.messageview/build.properties
new file mode 100644
index 000000000..cdac4372d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/build.properties
@@ -0,0 +1,7 @@
+source.. = src/,\
+ emfparsley-gen/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/
+
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/EmfComponentsGuiceModuleGen.java b/examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/EmfComponentsGuiceModuleGen.java
new file mode 100644
index 000000000..8572a5d68
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/EmfComponentsGuiceModuleGen.java
@@ -0,0 +1,42 @@
+package org.eclipse.emf.parsley.examples.mail.messageview;
+
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.binding.FormControlFactory;
+import org.eclipse.emf.parsley.examples.mail.messageview.binding.FormFeatureControlFactoryGen;
+import org.eclipse.emf.parsley.examples.mail.messageview.ui.provider.FeaturesProviderGen;
+import org.eclipse.emf.parsley.examples.mail.messageview.ui.provider.LabelProviderGen;
+import org.eclipse.emf.parsley.examples.mail.messageview.ui.provider.PropertyDescriptionProviderGen;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+import org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * org.eclipse.emf.parsley.examples.mail.messageview Emf Components Dsl Module file
+ */
+@SuppressWarnings("all")
+public class EmfComponentsGuiceModuleGen extends EmfComponentsGuiceModule {
+ public EmfComponentsGuiceModuleGen(final AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends ILabelProvider> bindILabelProvider() {
+ return LabelProviderGen.class;
+ }
+
+ @Override
+ public Class<? extends PropertyDescriptionProvider> bindPropertyDescriptionProvider() {
+ return PropertyDescriptionProviderGen.class;
+ }
+
+ @Override
+ public Class<? extends FeaturesProvider> bindFeaturesProvider() {
+ return FeaturesProviderGen.class;
+ }
+
+ @Override
+ public Class<? extends FormControlFactory> bindFormControlFactory() {
+ return FormFeatureControlFactoryGen.class;
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/binding/FormFeatureControlFactoryGen.java b/examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/binding/FormFeatureControlFactoryGen.java
new file mode 100644
index 000000000..8f4e5d9f6
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/binding/FormFeatureControlFactoryGen.java
@@ -0,0 +1,38 @@
+package org.eclipse.emf.parsley.examples.mail.messageview.binding;
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.parsley.binding.FormControlFactory;
+import org.eclipse.jface.databinding.swt.ISWTObservableValue;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+@SuppressWarnings("all")
+public class FormFeatureControlFactoryGen extends FormControlFactory {
+ public Control control_Mail_message(final DataBindingContext dataBindingContext, final IObservableValue observableValue) {
+ Control control = createControl_Mail_message();
+ dataBindingContext.bindValue(
+ createTarget_Mail_message(control),
+ observableValue);
+ return control;
+ }
+
+ protected Control createControl_Mail_message() {
+ FormToolkit _toolkit = this.getToolkit();
+ Composite _parent = this.getParent();
+ int _bitwiseOr = (SWT.MULTI | SWT.BORDER);
+ int _bitwiseOr_1 = (_bitwiseOr | SWT.WRAP);
+ int _bitwiseOr_2 = (_bitwiseOr_1 | SWT.V_SCROLL);
+ Text _createText = _toolkit.createText(_parent, "", _bitwiseOr_2);
+ return _createText;
+ }
+
+ protected IObservableValue createTarget_Mail_message(final Control it) {
+ ISWTObservableValue _observeText = SWTObservables.observeText(it, SWT.Modify);
+ return _observeText;
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/ui/provider/FeaturesProviderGen.java b/examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/ui/provider/FeaturesProviderGen.java
new file mode 100644
index 000000000..98f07782f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/ui/provider/FeaturesProviderGen.java
@@ -0,0 +1,15 @@
+package org.eclipse.emf.parsley.examples.mail.messageview.ui.provider;
+
+import org.eclipse.emf.parsley.ui.provider.EClassToEStructuralFeatureAsStringsMap;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+
+@SuppressWarnings("all")
+public class FeaturesProviderGen extends FeaturesProvider {
+ @Override
+ public void buildStringMap(final EClassToEStructuralFeatureAsStringsMap stringMap) {
+ super.buildStringMap(stringMap);
+
+ stringMap.mapTo("org.eclipse.emf.parsley.examples.mail.Mail",
+ "from", "recipients", "message");
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/ui/provider/LabelProviderGen.java b/examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/ui/provider/LabelProviderGen.java
new file mode 100644
index 000000000..41a6e3ed9
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/ui/provider/LabelProviderGen.java
@@ -0,0 +1,23 @@
+package org.eclipse.emf.parsley.examples.mail.messageview.ui.provider;
+
+import com.google.inject.Inject;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.parsley.examples.mail.Mail;
+import org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider;
+
+@SuppressWarnings("all")
+public class LabelProviderGen extends ViewerLabelProvider {
+ @Inject
+ public LabelProviderGen(final AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+
+ public String text(final Mail it) {
+ String _subject = it.getSubject();
+ return _subject;
+ }
+
+ public Object image(final Mail it) {
+ return "email.png";
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/ui/provider/PropertyDescriptionProviderGen.java b/examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/ui/provider/PropertyDescriptionProviderGen.java
new file mode 100644
index 000000000..28d55d96f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/emfparsley-gen/org/eclipse/emf/parsley/examples/mail/messageview/ui/provider/PropertyDescriptionProviderGen.java
@@ -0,0 +1,11 @@
+package org.eclipse.emf.parsley.examples.mail.messageview.ui.provider;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider;
+
+@SuppressWarnings("all")
+public class PropertyDescriptionProviderGen extends PropertyDescriptionProvider {
+ public String text_Mail_recipients(final EStructuralFeature it) {
+ return "to";
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/icons/email.png b/examples/org.eclipse.emf.parsley.examples.mail.messageview/icons/email.png
new file mode 100644
index 000000000..7348aed77
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/icons/email.png
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/icons/sample.gif b/examples/org.eclipse.emf.parsley.examples.mail.messageview/icons/sample.gif
new file mode 100644
index 000000000..34fb3c9d8
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/icons/sample.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/plugin.xml b/examples/org.eclipse.emf.parsley.examples.mail.messageview/plugin.xml
new file mode 100644
index 000000000..509482176
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/plugin.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <category
+ id="org.eclipse.emf.parsley.examples.mail.messageview"
+ name="Mail Example">
+ </category>
+ <view
+ category="org.eclipse.emf.parsley.examples.mail.messageview"
+ class="org.eclipse.emf.parsley.examples.mail.messageview.MessageviewExecutableExtensionFactory:org.eclipse.emf.parsley.examples.mail.messageview.views.MessageView"
+ icon="icons/sample.gif"
+ id="org.eclipse.emf.parsley.examples.mail.messageview.views.MessageView"
+ name="Mail Message View">
+ </view>
+ </extension>
+ <extension
+ point="org.eclipse.ui.perspectiveExtensions">
+ <perspectiveExtension
+ targetID="org.eclipse.emf.parsley.examples.mail.rcp.perspective">
+ <view
+ id="org.eclipse.emf.parsley.examples.mail.messageview.views.MessageView"
+ minimized="false"
+ ratio="0.25"
+ relationship="bottom"
+ relative="org.eclipse.ui.editorss">
+ </view>
+ </perspectiveExtension>
+ </extension>
+
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/plugin.xml_emfparsley_gen b/examples/org.eclipse.emf.parsley.examples.mail.messageview/plugin.xml_emfparsley_gen
new file mode 100644
index 000000000..95cb5c086
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/plugin.xml_emfparsley_gen
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ category="org.eclipse.emf.parsley.examples.mail.messageview"
+ class="org.eclipse.emf.parsley.examples.mail.messageview.MessageviewExecutableExtensionFactory:org.eclipse.emf.parsley.examples.mail.messageview.views.MessageView"
+ id="org.eclipse.emf.parsley.examples.mail.messageview.views.MessageView"
+ name="Mail Message View"
+ restorable="true">
+ </view>
+ </extension>
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/MessageviewActivator.java b/examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/MessageviewActivator.java
new file mode 100644
index 000000000..9e7b2fb64
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/MessageviewActivator.java
@@ -0,0 +1,57 @@
+package org.eclipse.emf.parsley.examples.mail.messageview;
+
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.ui.EmfComponentsAbstractActivator;
+import org.osgi.framework.BundleContext;
+
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class MessageviewActivator extends EmfComponentsAbstractActivator {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.parsley.examples.mail.messageview"; //$NON-NLS-1$
+
+ // The shared instance
+ private static MessageviewActivator plugin;
+
+ public MessageviewActivator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static MessageviewActivator getDefault() {
+ return plugin;
+ }
+
+ /**
+ * Creates the EmfComponentsGuiceModule for this this plugin
+ *
+ * @return the EmfComponentsGuiceModule for this this plugin
+ */
+ public EmfComponentsGuiceModule createModule() {
+ return new MessageviewGuiceModule(getDefault());
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/MessageviewExecutableExtensionFactory.java b/examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/MessageviewExecutableExtensionFactory.java
new file mode 100644
index 000000000..bf899381d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/MessageviewExecutableExtensionFactory.java
@@ -0,0 +1,27 @@
+package org.eclipse.emf.parsley.examples.mail.messageview;
+
+import org.eclipse.emf.parsley.EmfComponentsExtensionFactory;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.osgi.framework.Bundle;
+
+
+import com.google.inject.Injector;
+
+public class MessageviewExecutableExtensionFactory extends
+ EmfComponentsExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return MessageviewActivator.getDefault().getBundle();
+ }
+
+ @Override
+ protected EmfComponentsGuiceModule getModule() {
+ return MessageviewActivator.getDefault().createModule();
+ }
+
+ @Override
+ protected Injector getInjector() {
+ return MessageviewActivator.getDefault().getInjector();
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/MessageviewGuiceModule.java b/examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/MessageviewGuiceModule.java
new file mode 100644
index 000000000..21bdd47be
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/MessageviewGuiceModule.java
@@ -0,0 +1,14 @@
+package org.eclipse.emf.parsley.examples.mail.messageview;
+
+import org.eclipse.emf.parsley.examples.mail.messageview.EmfComponentsGuiceModuleGen;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+
+public class MessageviewGuiceModule extends EmfComponentsGuiceModuleGen {
+
+ public MessageviewGuiceModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/module.parsley b/examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/module.parsley
new file mode 100644
index 000000000..f04c1c434
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/module.parsley
@@ -0,0 +1,44 @@
+import org.eclipse.emf.parsley.examples.mail.Mail
+import org.eclipse.emf.parsley.examples.mail.messageview.views.MessageView
+
+/* org.eclipse.emf.parsley.examples.mail.messageview Emf Components Dsl Module file */
+module org.eclipse.emf.parsley.examples.mail.messageview {
+
+ parts {
+ viewpart org.eclipse.emf.parsley.examples.mail.messageview.views.MessageView {
+ viewname "Mail Message View"
+ viewclass MessageView
+ viewcategory org.eclipse.emf.parsley.examples.mail.messageview
+ }
+ }
+
+ labelProvider {
+ text {
+ Mail -> subject
+ }
+ image {
+ Mail -> "email.png"
+ }
+ }
+ formControlFactory {
+ control {
+ Mail : message ->
+ toolkit.createText(parent, "",
+ SWT::MULTI.bitwiseOr(SWT::BORDER).
+ bitwiseOr(SWT::WRAP).bitwiseOr(SWT::V_SCROLL)
+ )
+ target observeText(SWT::Modify)
+ }
+ }
+ featuresProvider {
+ features {
+ // the subject is already in the title
+ Mail -> from, recipients, message
+ }
+ }
+ propertyDescriptionProvider {
+ text {
+ Mail : recipients -> 'to'
+ }
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/views/MessageView.java b/examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/views/MessageView.java
new file mode 100644
index 000000000..60690111a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.messageview/src/org/eclipse/emf/parsley/examples/mail/messageview/views/MessageView.java
@@ -0,0 +1,32 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.examples.mail.messageview.views;
+
+
+import org.eclipse.emf.parsley.examples.mail.MailPackage;
+import org.eclipse.emf.parsley.views.OnSelectionFormView;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IWorkbenchPart;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+public class MessageView extends OnSelectionFormView {
+
+ public static final String ID = "org.eclipse.emf.parsley.examples.mail.messageview.views.MessageView";
+
+ @Override
+ protected void updateOnSelection(IWorkbenchPart sourcepart,
+ ISelection selection) {
+ // we want to display only Mail elements
+ if (!MailPackage.Literals.MAIL
+ .isInstance(getFirstSelectedEObject(selection))) {
+ resetFormComposite();
+ return;
+ }
+
+ super.updateOnSelection(sourcepart, selection);
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/.classpath b/examples/org.eclipse.emf.parsley.examples.mail.model/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/.project b/examples/org.eclipse.emf.parsley.examples.mail.model/.project
new file mode 100644
index 000000000..ca6ba9d7f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.mail.model</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/.settings/org.eclipse.core.resources.prefs b/examples/org.eclipse.emf.parsley.examples.mail.model/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 000000000..29afbc128
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding//model/mail.ecorediag=UTF-8
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.parsley.examples.mail.model/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.parsley.examples.mail.model/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.parsley.examples.mail.model/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..57da31f50
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.parsley.examples.mail.model;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.parsley.examples.mail,
+ org.eclipse.emf.parsley.examples.mail.impl,
+ org.eclipse.emf.parsley.examples.mail.util
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.emf.ecore;bundle-version="2.7.0";visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/build.properties b/examples/org.eclipse.emf.parsley.examples.mail.model/build.properties
new file mode 100644
index 000000000..4465407fc
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/model/mail.ecore b/examples/org.eclipse.emf.parsley.examples.mail.model/model/mail.ecore
new file mode 100644
index 000000000..ad01b40ec
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/model/mail.ecore
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="mail" nsURI="http:///org/eclipse/emf/parsley/examples/mail/mail.ecore/0.1.0"
+ nsPrefix="mail">
+ <eClassifiers xsi:type="ecore:EClass" name="Account">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="email" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="folders" upperBound="-1"
+ eType="#//Folder" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Folder" eSuperTypes="#//FolderContent">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subfolders" upperBound="-1"
+ eType="#//Folder" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mails" upperBound="-1"
+ eType="#//Mail" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FolderContent" abstract="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="MailContent" eSuperTypes="#//FolderContent"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Mail">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="from" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="recipients" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="message" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="subject" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/model/mail.ecorediag b/examples/org.eclipse.emf.parsley.examples.mail.model/model/mail.ecorediag
new file mode 100644
index 000000000..c54f679c6
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/model/mail.ecorediag
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_cluRAReMEeKcMszoK7VHwQ" type="EcoreTools" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_jepQoBeMEeKcMszoK7VHwQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_jeqewBeMEeKcMszoK7VHwQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_jers4BeMEeKcMszoK7VHwQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_nQ4MIBeMEeKcMszoK7VHwQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="mail.ecore#//Account/name"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nQ4MIReMEeKcMszoK7VHwQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_vBKRkBeMEeKcMszoK7VHwQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="mail.ecore#//Account/email"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vBKRkReMEeKcMszoK7VHwQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_jers4ReMEeKcMszoK7VHwQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jers4heMEeKcMszoK7VHwQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jers4xeMEeKcMszoK7VHwQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jesT8BeMEeKcMszoK7VHwQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_jesT8ReMEeKcMszoK7VHwQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jesT8heMEeKcMszoK7VHwQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jesT8xeMEeKcMszoK7VHwQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_jepQoReMEeKcMszoK7VHwQ" fontColor="4210752" fontName="Ubuntu" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="mail.ecore#//Account"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jepQoheMEeKcMszoK7VHwQ" x="84" y="12"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_xUtokBeMEeKcMszoK7VHwQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_xUwE0BeMEeKcMszoK7VHwQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_xUwr4BeMEeKcMszoK7VHwQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_tXjaABeNEeKcMszoK7VHwQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="mail.ecore#//Folder/name"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tXkBEBeNEeKcMszoK7VHwQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_xUwr4ReMEeKcMszoK7VHwQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xUwr4heMEeKcMszoK7VHwQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xUwr4xeMEeKcMszoK7VHwQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_xUxS8BeMEeKcMszoK7VHwQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_xUxS8ReMEeKcMszoK7VHwQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xUx6ABeMEeKcMszoK7VHwQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xUx6AReMEeKcMszoK7VHwQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_xUtokReMEeKcMszoK7VHwQ" fontColor="4210752" fontName="Ubuntu" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="mail.ecore#//Folder"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xUuPoBeMEeKcMszoK7VHwQ" x="84" y="144"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_rWQQoBeNEeKcMszoK7VHwQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_rWSF0BeNEeKcMszoK7VHwQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_rWSF0ReNEeKcMszoK7VHwQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_1wlhgBeNEeKcMszoK7VHwQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="mail.ecore#//Mail/from"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1wlhgReNEeKcMszoK7VHwQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4OixsBeNEeKcMszoK7VHwQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="mail.ecore#//Mail/recipients"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4OixsReNEeKcMszoK7VHwQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_x7cs4RoHEeKWC5t4GpmTjw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="mail.ecore#//Mail/subject"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_x7cs4hoHEeKWC5t4GpmTjw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_8SUwMBeNEeKcMszoK7VHwQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="mail.ecore#//Mail/message"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8SVXQBeNEeKcMszoK7VHwQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_rWSF0heNEeKcMszoK7VHwQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_rWSs4BeNEeKcMszoK7VHwQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_rWSs4ReNEeKcMszoK7VHwQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_rWTT8BeNEeKcMszoK7VHwQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_rWTT8ReNEeKcMszoK7VHwQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_rWTT8heNEeKcMszoK7VHwQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_rWTT8xeNEeKcMszoK7VHwQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_rWQQoReNEeKcMszoK7VHwQ" fontColor="4210752" fontName="Ubuntu" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="mail.ecore#//Mail"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rWQQoheNEeKcMszoK7VHwQ" x="48" y="264"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_clu4EBeMEeKcMszoK7VHwQ"/>
+ <element xmi:type="ecore:EPackage" href="mail.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_3yWaYBeMEeKcMszoK7VHwQ" type="3002" source="_jepQoBeMEeKcMszoK7VHwQ" target="_xUtokBeMEeKcMszoK7VHwQ">
+ <children xmi:type="notation:Node" xmi:id="_3yXBcBeMEeKcMszoK7VHwQ" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3yXBcReMEeKcMszoK7VHwQ" x="-10" y="37"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_3yXogBeMEeKcMszoK7VHwQ" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3yXogReMEeKcMszoK7VHwQ" x="2" y="38"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_3yWaYReMEeKcMszoK7VHwQ" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3yWaYheMEeKcMszoK7VHwQ" fontColor="4210752" fontName="Ubuntu" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="mail.ecore#//Account/folders"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3yWaYxeMEeKcMszoK7VHwQ" points="[-1, 9, 10, -83]$[-10, 86, 1, -6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3ypVUBeMEeKcMszoK7VHwQ" id="(0.3620689655172414,0.8615384615384616)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3ypVUReMEeKcMszoK7VHwQ" id="(0.37254901960784315,0.16666666666666666)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_m2ikEBeNEeKcMszoK7VHwQ" type="3002" source="_xUtokBeMEeKcMszoK7VHwQ" target="_xUtokBeMEeKcMszoK7VHwQ">
+ <children xmi:type="notation:Node" xmi:id="_m2jyMBeNEeKcMszoK7VHwQ" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m2jyMReNEeKcMszoK7VHwQ" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_m2jyMheNEeKcMszoK7VHwQ" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m2jyMxeNEeKcMszoK7VHwQ" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_m2ikEReNEeKcMszoK7VHwQ" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_m2ikEheNEeKcMszoK7VHwQ" fontColor="4210752" fontName="Ubuntu" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="mail.ecore#//Folder/subfolders"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_m2ikExeNEeKcMszoK7VHwQ" points="[7, -5, 4, -23]$[65, -5, 62, -23]$[85, 38, 82, 20]$[7, 19, 4, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m2lnYBeNEeKcMszoK7VHwQ" id="(0.9411764705882353,0.47619047619047616)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m2lnYReNEeKcMszoK7VHwQ" id="(0.9655172413793104,0.8571428571428571)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_BIf08BeOEeKcMszoK7VHwQ" type="3002" source="_xUtokBeMEeKcMszoK7VHwQ" target="_rWQQoBeNEeKcMszoK7VHwQ">
+ <children xmi:type="notation:Node" xmi:id="_BIgcABeOEeKcMszoK7VHwQ" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BIgcAReOEeKcMszoK7VHwQ" x="-18" y="32"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_BIgcAheOEeKcMszoK7VHwQ" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BIgcAxeOEeKcMszoK7VHwQ" x="-6" y="26"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_BIf08ReOEeKcMszoK7VHwQ" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_BIf08heOEeKcMszoK7VHwQ" fontColor="4210752" fontName="Ubuntu" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="mail.ecore#//Folder/mails"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BIf08xeOEeKcMszoK7VHwQ" points="[-1, 8, 10, -77]$[-10, 75, 1, -10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BIi4QBeOEeKcMszoK7VHwQ" id="(0.21551724137931033,0.8367346938775511)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BIi4QReOEeKcMszoK7VHwQ" id="(0.18055555555555555,0.13580246913580246)"/>
+ </edges>
+</notation:Diagram>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/model/mail.genmodel b/examples/org.eclipse.emf.parsley.examples.mail.model/model/mail.genmodel
new file mode 100644
index 000000000..15a5ca954
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/model/mail.genmodel
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.parsley.examples.mail.model/src"
+ modelPluginID="org.eclipse.emf.parsley.examples.mail.model" modelName="Mail"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0" copyrightFields="false">
+ <foreignModel>mail.ecore</foreignModel>
+ <genPackages prefix="Mail" basePackage="org.eclipse.emf.parsley.examples" disposableProviderFactory="true"
+ ecorePackage="mail.ecore#/">
+ <genClasses ecoreClass="mail.ecore#//Account">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mail.ecore#//Account/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mail.ecore#//Account/email"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference mail.ecore#//Account/folders"/>
+ </genClasses>
+ <genClasses ecoreClass="mail.ecore#//Folder">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference mail.ecore#//Folder/subfolders"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mail.ecore#//Folder/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference mail.ecore#//Folder/mails"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="mail.ecore#//FolderContent"/>
+ <genClasses ecoreClass="mail.ecore#//MailContent"/>
+ <genClasses ecoreClass="mail.ecore#//Mail">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mail.ecore#//Mail/from"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mail.ecore#//Mail/recipients"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute mail.ecore#//Mail/message"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/plugin.properties b/examples/org.eclipse.emf.parsley.examples.mail.model/plugin.properties
new file mode 100644
index 000000000..a34cfaf1a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/plugin.properties
@@ -0,0 +1,4 @@
+#
+
+pluginName = Emf Components Mail Model Example
+providerName = RCP-VISION
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/plugin.xml b/examples/org.eclipse.emf.parsley.examples.mail.model/plugin.xml
new file mode 100644
index 000000000..b722a11aa
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/plugin.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http:///org/eclipse/emf/parsley/examples/mail/mail.ecore/0.1.0"
+ class="org.eclipse.emf.parsley.examples.mail.MailPackage"
+ genModel="model/mail.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/Account.java b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/Account.java
new file mode 100644
index 000000000..c7fccbe46
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/Account.java
@@ -0,0 +1,96 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.mail;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Account</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.Account#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.Account#getEmail <em>Email</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.Account#getFolders <em>Folders</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage#getAccount()
+ * @model
+ * @generated
+ */
+public interface Account extends EObject {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage#getAccount_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.mail.Account#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Email</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Email</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Email</em>' attribute.
+ * @see #setEmail(String)
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage#getAccount_Email()
+ * @model
+ * @generated
+ */
+ String getEmail();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.mail.Account#getEmail <em>Email</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Email</em>' attribute.
+ * @see #getEmail()
+ * @generated
+ */
+ void setEmail(String value);
+
+ /**
+ * Returns the value of the '<em><b>Folders</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.mail.Folder}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Folders</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Folders</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage#getAccount_Folders()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Folder> getFolders();
+
+} // Account
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/Folder.java b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/Folder.java
new file mode 100644
index 000000000..4d9e55740
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/Folder.java
@@ -0,0 +1,84 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.mail;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Folder</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.Folder#getSubfolders <em>Subfolders</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.Folder#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.Folder#getMails <em>Mails</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage#getFolder()
+ * @model
+ * @generated
+ */
+public interface Folder extends FolderContent {
+ /**
+ * Returns the value of the '<em><b>Subfolders</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.mail.Folder}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Subfolders</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Subfolders</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage#getFolder_Subfolders()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Folder> getSubfolders();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage#getFolder_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.mail.Folder#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Mails</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.mail.Mail}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mails</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mails</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage#getFolder_Mails()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Mail> getMails();
+
+} // Folder
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/FolderContent.java b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/FolderContent.java
new file mode 100644
index 000000000..317362879
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/FolderContent.java
@@ -0,0 +1,18 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.mail;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Folder Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage#getFolderContent()
+ * @model abstract="true"
+ * @generated
+ */
+public interface FolderContent extends EObject {
+} // FolderContent
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/Mail.java b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/Mail.java
new file mode 100644
index 000000000..165c874d6
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/Mail.java
@@ -0,0 +1,123 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.mail;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Mail</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.Mail#getFrom <em>From</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.Mail#getRecipients <em>Recipients</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.Mail#getMessage <em>Message</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.Mail#getSubject <em>Subject</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage#getMail()
+ * @model
+ * @generated
+ */
+public interface Mail extends EObject {
+ /**
+ * Returns the value of the '<em><b>From</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>From</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>From</em>' attribute.
+ * @see #setFrom(String)
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage#getMail_From()
+ * @model
+ * @generated
+ */
+ String getFrom();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.mail.Mail#getFrom <em>From</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>From</em>' attribute.
+ * @see #getFrom()
+ * @generated
+ */
+ void setFrom(String value);
+
+ /**
+ * Returns the value of the '<em><b>Recipients</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Recipients</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Recipients</em>' attribute list.
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage#getMail_Recipients()
+ * @model
+ * @generated
+ */
+ EList<String> getRecipients();
+
+ /**
+ * Returns the value of the '<em><b>Message</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Message</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Message</em>' attribute.
+ * @see #setMessage(String)
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage#getMail_Message()
+ * @model
+ * @generated
+ */
+ String getMessage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.mail.Mail#getMessage <em>Message</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Message</em>' attribute.
+ * @see #getMessage()
+ * @generated
+ */
+ void setMessage(String value);
+
+ /**
+ * Returns the value of the '<em><b>Subject</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Subject</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Subject</em>' attribute.
+ * @see #setSubject(String)
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage#getMail_Subject()
+ * @model
+ * @generated
+ */
+ String getSubject();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.mail.Mail#getSubject <em>Subject</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Subject</em>' attribute.
+ * @see #getSubject()
+ * @generated
+ */
+ void setSubject(String value);
+
+} // Mail
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/MailContent.java b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/MailContent.java
new file mode 100644
index 000000000..f5c83c80a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/MailContent.java
@@ -0,0 +1,17 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.mail;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Content</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage#getMailContent()
+ * @model
+ * @generated
+ */
+public interface MailContent extends FolderContent {
+} // MailContent
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/MailFactory.java b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/MailFactory.java
new file mode 100644
index 000000000..cbc299505
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/MailFactory.java
@@ -0,0 +1,69 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.mail;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage
+ * @generated
+ */
+public interface MailFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ MailFactory eINSTANCE = org.eclipse.emf.parsley.examples.mail.impl.MailFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Account</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Account</em>'.
+ * @generated
+ */
+ Account createAccount();
+
+ /**
+ * Returns a new object of class '<em>Folder</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Folder</em>'.
+ * @generated
+ */
+ Folder createFolder();
+
+ /**
+ * Returns a new object of class '<em>Content</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Content</em>'.
+ * @generated
+ */
+ MailContent createMailContent();
+
+ /**
+ * Returns a new object of class '<em>Mail</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Mail</em>'.
+ * @generated
+ */
+ Mail createMail();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ MailPackage getMailPackage();
+
+} //MailFactory
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/MailPackage.java b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/MailPackage.java
new file mode 100644
index 000000000..0eba02c95
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/MailPackage.java
@@ -0,0 +1,558 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.mail;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.mail.MailFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface MailPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "mail";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///org/eclipse/emf/parsley/examples/mail/mail.ecore/0.1.0";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "mail";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ MailPackage eINSTANCE = org.eclipse.emf.parsley.examples.mail.impl.MailPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.mail.impl.AccountImpl <em>Account</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.mail.impl.AccountImpl
+ * @see org.eclipse.emf.parsley.examples.mail.impl.MailPackageImpl#getAccount()
+ * @generated
+ */
+ int ACCOUNT = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACCOUNT__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Email</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACCOUNT__EMAIL = 1;
+
+ /**
+ * The feature id for the '<em><b>Folders</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACCOUNT__FOLDERS = 2;
+
+ /**
+ * The number of structural features of the '<em>Account</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ACCOUNT_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.mail.impl.FolderContentImpl <em>Folder Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.mail.impl.FolderContentImpl
+ * @see org.eclipse.emf.parsley.examples.mail.impl.MailPackageImpl#getFolderContent()
+ * @generated
+ */
+ int FOLDER_CONTENT = 2;
+
+ /**
+ * The number of structural features of the '<em>Folder Content</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLDER_CONTENT_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.mail.impl.FolderImpl <em>Folder</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.mail.impl.FolderImpl
+ * @see org.eclipse.emf.parsley.examples.mail.impl.MailPackageImpl#getFolder()
+ * @generated
+ */
+ int FOLDER = 1;
+
+ /**
+ * The feature id for the '<em><b>Subfolders</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLDER__SUBFOLDERS = FOLDER_CONTENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLDER__NAME = FOLDER_CONTENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Mails</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLDER__MAILS = FOLDER_CONTENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Folder</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLDER_FEATURE_COUNT = FOLDER_CONTENT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.mail.impl.MailContentImpl <em>Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.mail.impl.MailContentImpl
+ * @see org.eclipse.emf.parsley.examples.mail.impl.MailPackageImpl#getMailContent()
+ * @generated
+ */
+ int MAIL_CONTENT = 3;
+
+ /**
+ * The number of structural features of the '<em>Content</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAIL_CONTENT_FEATURE_COUNT = FOLDER_CONTENT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.mail.impl.MailImpl <em>Mail</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.mail.impl.MailImpl
+ * @see org.eclipse.emf.parsley.examples.mail.impl.MailPackageImpl#getMail()
+ * @generated
+ */
+ int MAIL = 4;
+
+ /**
+ * The feature id for the '<em><b>From</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAIL__FROM = 0;
+
+ /**
+ * The feature id for the '<em><b>Recipients</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAIL__RECIPIENTS = 1;
+
+ /**
+ * The feature id for the '<em><b>Message</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAIL__MESSAGE = 2;
+
+ /**
+ * The feature id for the '<em><b>Subject</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAIL__SUBJECT = 3;
+
+ /**
+ * The number of structural features of the '<em>Mail</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAIL_FEATURE_COUNT = 4;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.mail.Account <em>Account</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Account</em>'.
+ * @see org.eclipse.emf.parsley.examples.mail.Account
+ * @generated
+ */
+ EClass getAccount();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.mail.Account#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.parsley.examples.mail.Account#getName()
+ * @see #getAccount()
+ * @generated
+ */
+ EAttribute getAccount_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.mail.Account#getEmail <em>Email</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Email</em>'.
+ * @see org.eclipse.emf.parsley.examples.mail.Account#getEmail()
+ * @see #getAccount()
+ * @generated
+ */
+ EAttribute getAccount_Email();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.examples.mail.Account#getFolders <em>Folders</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Folders</em>'.
+ * @see org.eclipse.emf.parsley.examples.mail.Account#getFolders()
+ * @see #getAccount()
+ * @generated
+ */
+ EReference getAccount_Folders();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.mail.Folder <em>Folder</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Folder</em>'.
+ * @see org.eclipse.emf.parsley.examples.mail.Folder
+ * @generated
+ */
+ EClass getFolder();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.examples.mail.Folder#getSubfolders <em>Subfolders</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Subfolders</em>'.
+ * @see org.eclipse.emf.parsley.examples.mail.Folder#getSubfolders()
+ * @see #getFolder()
+ * @generated
+ */
+ EReference getFolder_Subfolders();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.mail.Folder#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.parsley.examples.mail.Folder#getName()
+ * @see #getFolder()
+ * @generated
+ */
+ EAttribute getFolder_Name();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.examples.mail.Folder#getMails <em>Mails</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Mails</em>'.
+ * @see org.eclipse.emf.parsley.examples.mail.Folder#getMails()
+ * @see #getFolder()
+ * @generated
+ */
+ EReference getFolder_Mails();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.mail.FolderContent <em>Folder Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Folder Content</em>'.
+ * @see org.eclipse.emf.parsley.examples.mail.FolderContent
+ * @generated
+ */
+ EClass getFolderContent();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.mail.MailContent <em>Content</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Content</em>'.
+ * @see org.eclipse.emf.parsley.examples.mail.MailContent
+ * @generated
+ */
+ EClass getMailContent();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.mail.Mail <em>Mail</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Mail</em>'.
+ * @see org.eclipse.emf.parsley.examples.mail.Mail
+ * @generated
+ */
+ EClass getMail();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.mail.Mail#getFrom <em>From</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>From</em>'.
+ * @see org.eclipse.emf.parsley.examples.mail.Mail#getFrom()
+ * @see #getMail()
+ * @generated
+ */
+ EAttribute getMail_From();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.emf.parsley.examples.mail.Mail#getRecipients <em>Recipients</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Recipients</em>'.
+ * @see org.eclipse.emf.parsley.examples.mail.Mail#getRecipients()
+ * @see #getMail()
+ * @generated
+ */
+ EAttribute getMail_Recipients();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.mail.Mail#getMessage <em>Message</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Message</em>'.
+ * @see org.eclipse.emf.parsley.examples.mail.Mail#getMessage()
+ * @see #getMail()
+ * @generated
+ */
+ EAttribute getMail_Message();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.mail.Mail#getSubject <em>Subject</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Subject</em>'.
+ * @see org.eclipse.emf.parsley.examples.mail.Mail#getSubject()
+ * @see #getMail()
+ * @generated
+ */
+ EAttribute getMail_Subject();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ MailFactory getMailFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.mail.impl.AccountImpl <em>Account</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.mail.impl.AccountImpl
+ * @see org.eclipse.emf.parsley.examples.mail.impl.MailPackageImpl#getAccount()
+ * @generated
+ */
+ EClass ACCOUNT = eINSTANCE.getAccount();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ACCOUNT__NAME = eINSTANCE.getAccount_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Email</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ACCOUNT__EMAIL = eINSTANCE.getAccount_Email();
+
+ /**
+ * The meta object literal for the '<em><b>Folders</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ACCOUNT__FOLDERS = eINSTANCE.getAccount_Folders();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.mail.impl.FolderImpl <em>Folder</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.mail.impl.FolderImpl
+ * @see org.eclipse.emf.parsley.examples.mail.impl.MailPackageImpl#getFolder()
+ * @generated
+ */
+ EClass FOLDER = eINSTANCE.getFolder();
+
+ /**
+ * The meta object literal for the '<em><b>Subfolders</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FOLDER__SUBFOLDERS = eINSTANCE.getFolder_Subfolders();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FOLDER__NAME = eINSTANCE.getFolder_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Mails</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FOLDER__MAILS = eINSTANCE.getFolder_Mails();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.mail.impl.FolderContentImpl <em>Folder Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.mail.impl.FolderContentImpl
+ * @see org.eclipse.emf.parsley.examples.mail.impl.MailPackageImpl#getFolderContent()
+ * @generated
+ */
+ EClass FOLDER_CONTENT = eINSTANCE.getFolderContent();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.mail.impl.MailContentImpl <em>Content</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.mail.impl.MailContentImpl
+ * @see org.eclipse.emf.parsley.examples.mail.impl.MailPackageImpl#getMailContent()
+ * @generated
+ */
+ EClass MAIL_CONTENT = eINSTANCE.getMailContent();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.mail.impl.MailImpl <em>Mail</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.mail.impl.MailImpl
+ * @see org.eclipse.emf.parsley.examples.mail.impl.MailPackageImpl#getMail()
+ * @generated
+ */
+ EClass MAIL = eINSTANCE.getMail();
+
+ /**
+ * The meta object literal for the '<em><b>From</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MAIL__FROM = eINSTANCE.getMail_From();
+
+ /**
+ * The meta object literal for the '<em><b>Recipients</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MAIL__RECIPIENTS = eINSTANCE.getMail_Recipients();
+
+ /**
+ * The meta object literal for the '<em><b>Message</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MAIL__MESSAGE = eINSTANCE.getMail_Message();
+
+ /**
+ * The meta object literal for the '<em><b>Subject</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MAIL__SUBJECT = eINSTANCE.getMail_Subject();
+
+ }
+
+} //MailPackage
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/AccountImpl.java b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/AccountImpl.java
new file mode 100644
index 000000000..1f3699882
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/AccountImpl.java
@@ -0,0 +1,276 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.mail.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.parsley.examples.mail.Account;
+import org.eclipse.emf.parsley.examples.mail.Folder;
+import org.eclipse.emf.parsley.examples.mail.MailPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Account</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.impl.AccountImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.impl.AccountImpl#getEmail <em>Email</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.impl.AccountImpl#getFolders <em>Folders</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AccountImpl extends EObjectImpl implements Account {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getEmail() <em>Email</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEmail()
+ * @generated
+ * @ordered
+ */
+ protected static final String EMAIL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getEmail() <em>Email</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEmail()
+ * @generated
+ * @ordered
+ */
+ protected String email = EMAIL_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getFolders() <em>Folders</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFolders()
+ * @generated
+ * @ordered
+ */
+ protected EList<Folder> folders;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AccountImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return MailPackage.Literals.ACCOUNT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, MailPackage.ACCOUNT__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getEmail() {
+ return email;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEmail(String newEmail) {
+ String oldEmail = email;
+ email = newEmail;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, MailPackage.ACCOUNT__EMAIL, oldEmail, email));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Folder> getFolders() {
+ if (folders == null) {
+ folders = new EObjectContainmentEList<Folder>(Folder.class, this, MailPackage.ACCOUNT__FOLDERS);
+ }
+ return folders;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case MailPackage.ACCOUNT__FOLDERS:
+ return ((InternalEList<?>)getFolders()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case MailPackage.ACCOUNT__NAME:
+ return getName();
+ case MailPackage.ACCOUNT__EMAIL:
+ return getEmail();
+ case MailPackage.ACCOUNT__FOLDERS:
+ return getFolders();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case MailPackage.ACCOUNT__NAME:
+ setName((String)newValue);
+ return;
+ case MailPackage.ACCOUNT__EMAIL:
+ setEmail((String)newValue);
+ return;
+ case MailPackage.ACCOUNT__FOLDERS:
+ getFolders().clear();
+ getFolders().addAll((Collection<? extends Folder>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case MailPackage.ACCOUNT__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case MailPackage.ACCOUNT__EMAIL:
+ setEmail(EMAIL_EDEFAULT);
+ return;
+ case MailPackage.ACCOUNT__FOLDERS:
+ getFolders().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case MailPackage.ACCOUNT__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case MailPackage.ACCOUNT__EMAIL:
+ return EMAIL_EDEFAULT == null ? email != null : !EMAIL_EDEFAULT.equals(email);
+ case MailPackage.ACCOUNT__FOLDERS:
+ return folders != null && !folders.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", email: ");
+ result.append(email);
+ result.append(')');
+ return result.toString();
+ }
+
+} //AccountImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/FolderContentImpl.java b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/FolderContentImpl.java
new file mode 100644
index 000000000..d01bac11b
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/FolderContentImpl.java
@@ -0,0 +1,41 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.mail.impl;
+
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.parsley.examples.mail.FolderContent;
+import org.eclipse.emf.parsley.examples.mail.MailPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Folder Content</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class FolderContentImpl extends EObjectImpl implements FolderContent {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FolderContentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return MailPackage.Literals.FOLDER_CONTENT;
+ }
+
+} //FolderContentImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/FolderImpl.java b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/FolderImpl.java
new file mode 100644
index 000000000..552e900e4
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/FolderImpl.java
@@ -0,0 +1,257 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.mail.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.parsley.examples.mail.Folder;
+import org.eclipse.emf.parsley.examples.mail.Mail;
+import org.eclipse.emf.parsley.examples.mail.MailPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Folder</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.impl.FolderImpl#getSubfolders <em>Subfolders</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.impl.FolderImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.impl.FolderImpl#getMails <em>Mails</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FolderImpl extends FolderContentImpl implements Folder {
+ /**
+ * The cached value of the '{@link #getSubfolders() <em>Subfolders</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubfolders()
+ * @generated
+ * @ordered
+ */
+ protected EList<Folder> subfolders;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getMails() <em>Mails</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMails()
+ * @generated
+ * @ordered
+ */
+ protected EList<Mail> mails;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FolderImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return MailPackage.Literals.FOLDER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Folder> getSubfolders() {
+ if (subfolders == null) {
+ subfolders = new EObjectContainmentEList<Folder>(Folder.class, this, MailPackage.FOLDER__SUBFOLDERS);
+ }
+ return subfolders;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, MailPackage.FOLDER__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Mail> getMails() {
+ if (mails == null) {
+ mails = new EObjectContainmentEList<Mail>(Mail.class, this, MailPackage.FOLDER__MAILS);
+ }
+ return mails;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case MailPackage.FOLDER__SUBFOLDERS:
+ return ((InternalEList<?>)getSubfolders()).basicRemove(otherEnd, msgs);
+ case MailPackage.FOLDER__MAILS:
+ return ((InternalEList<?>)getMails()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case MailPackage.FOLDER__SUBFOLDERS:
+ return getSubfolders();
+ case MailPackage.FOLDER__NAME:
+ return getName();
+ case MailPackage.FOLDER__MAILS:
+ return getMails();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case MailPackage.FOLDER__SUBFOLDERS:
+ getSubfolders().clear();
+ getSubfolders().addAll((Collection<? extends Folder>)newValue);
+ return;
+ case MailPackage.FOLDER__NAME:
+ setName((String)newValue);
+ return;
+ case MailPackage.FOLDER__MAILS:
+ getMails().clear();
+ getMails().addAll((Collection<? extends Mail>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case MailPackage.FOLDER__SUBFOLDERS:
+ getSubfolders().clear();
+ return;
+ case MailPackage.FOLDER__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case MailPackage.FOLDER__MAILS:
+ getMails().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case MailPackage.FOLDER__SUBFOLDERS:
+ return subfolders != null && !subfolders.isEmpty();
+ case MailPackage.FOLDER__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case MailPackage.FOLDER__MAILS:
+ return mails != null && !mails.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //FolderImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/MailContentImpl.java b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/MailContentImpl.java
new file mode 100644
index 000000000..156b856aa
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/MailContentImpl.java
@@ -0,0 +1,39 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.mail.impl;
+
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.parsley.examples.mail.MailContent;
+import org.eclipse.emf.parsley.examples.mail.MailPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Content</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class MailContentImpl extends FolderContentImpl implements MailContent {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MailContentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return MailPackage.Literals.MAIL_CONTENT;
+ }
+
+} //MailContentImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/MailFactoryImpl.java b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/MailFactoryImpl.java
new file mode 100644
index 000000000..b2b752a79
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/MailFactoryImpl.java
@@ -0,0 +1,128 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.mail.impl;
+
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.parsley.examples.mail.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class MailFactoryImpl extends EFactoryImpl implements MailFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MailFactory init() {
+ try {
+ MailFactory theMailFactory = (MailFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/emf/parsley/examples/mail/mail.ecore/0.1.0");
+ if (theMailFactory != null) {
+ return theMailFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new MailFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MailFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case MailPackage.ACCOUNT: return createAccount();
+ case MailPackage.FOLDER: return createFolder();
+ case MailPackage.MAIL_CONTENT: return createMailContent();
+ case MailPackage.MAIL: return createMail();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Account createAccount() {
+ AccountImpl account = new AccountImpl();
+ return account;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Folder createFolder() {
+ FolderImpl folder = new FolderImpl();
+ return folder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MailContent createMailContent() {
+ MailContentImpl mailContent = new MailContentImpl();
+ return mailContent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Mail createMail() {
+ MailImpl mail = new MailImpl();
+ return mail;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MailPackage getMailPackage() {
+ return (MailPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static MailPackage getPackage() {
+ return MailPackage.eINSTANCE;
+ }
+
+} //MailFactoryImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/MailImpl.java b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/MailImpl.java
new file mode 100644
index 000000000..9f8a4f545
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/MailImpl.java
@@ -0,0 +1,314 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.mail.impl;
+
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.parsley.examples.mail.Mail;
+import org.eclipse.emf.parsley.examples.mail.MailPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Mail</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.impl.MailImpl#getFrom <em>From</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.impl.MailImpl#getRecipients <em>Recipients</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.impl.MailImpl#getMessage <em>Message</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.mail.impl.MailImpl#getSubject <em>Subject</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MailImpl extends EObjectImpl implements Mail {
+ /**
+ * The default value of the '{@link #getFrom() <em>From</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFrom()
+ * @generated
+ * @ordered
+ */
+ protected static final String FROM_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFrom() <em>From</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFrom()
+ * @generated
+ * @ordered
+ */
+ protected String from = FROM_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getRecipients() <em>Recipients</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRecipients()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> recipients;
+
+ /**
+ * The default value of the '{@link #getMessage() <em>Message</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMessage()
+ * @generated
+ * @ordered
+ */
+ protected static final String MESSAGE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getMessage() <em>Message</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMessage()
+ * @generated
+ * @ordered
+ */
+ protected String message = MESSAGE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSubject() <em>Subject</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubject()
+ * @generated
+ * @ordered
+ */
+ protected static final String SUBJECT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSubject() <em>Subject</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubject()
+ * @generated
+ * @ordered
+ */
+ protected String subject = SUBJECT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MailImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return MailPackage.Literals.MAIL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFrom() {
+ return from;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFrom(String newFrom) {
+ String oldFrom = from;
+ from = newFrom;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, MailPackage.MAIL__FROM, oldFrom, from));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<String> getRecipients() {
+ if (recipients == null) {
+ recipients = new EDataTypeUniqueEList<String>(String.class, this, MailPackage.MAIL__RECIPIENTS);
+ }
+ return recipients;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getMessage() {
+ return message;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMessage(String newMessage) {
+ String oldMessage = message;
+ message = newMessage;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, MailPackage.MAIL__MESSAGE, oldMessage, message));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSubject() {
+ return subject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSubject(String newSubject) {
+ String oldSubject = subject;
+ subject = newSubject;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, MailPackage.MAIL__SUBJECT, oldSubject, subject));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case MailPackage.MAIL__FROM:
+ return getFrom();
+ case MailPackage.MAIL__RECIPIENTS:
+ return getRecipients();
+ case MailPackage.MAIL__MESSAGE:
+ return getMessage();
+ case MailPackage.MAIL__SUBJECT:
+ return getSubject();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case MailPackage.MAIL__FROM:
+ setFrom((String)newValue);
+ return;
+ case MailPackage.MAIL__RECIPIENTS:
+ getRecipients().clear();
+ getRecipients().addAll((Collection<? extends String>)newValue);
+ return;
+ case MailPackage.MAIL__MESSAGE:
+ setMessage((String)newValue);
+ return;
+ case MailPackage.MAIL__SUBJECT:
+ setSubject((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case MailPackage.MAIL__FROM:
+ setFrom(FROM_EDEFAULT);
+ return;
+ case MailPackage.MAIL__RECIPIENTS:
+ getRecipients().clear();
+ return;
+ case MailPackage.MAIL__MESSAGE:
+ setMessage(MESSAGE_EDEFAULT);
+ return;
+ case MailPackage.MAIL__SUBJECT:
+ setSubject(SUBJECT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case MailPackage.MAIL__FROM:
+ return FROM_EDEFAULT == null ? from != null : !FROM_EDEFAULT.equals(from);
+ case MailPackage.MAIL__RECIPIENTS:
+ return recipients != null && !recipients.isEmpty();
+ case MailPackage.MAIL__MESSAGE:
+ return MESSAGE_EDEFAULT == null ? message != null : !MESSAGE_EDEFAULT.equals(message);
+ case MailPackage.MAIL__SUBJECT:
+ return SUBJECT_EDEFAULT == null ? subject != null : !SUBJECT_EDEFAULT.equals(subject);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (from: ");
+ result.append(from);
+ result.append(", recipients: ");
+ result.append(recipients);
+ result.append(", message: ");
+ result.append(message);
+ result.append(", subject: ");
+ result.append(subject);
+ result.append(')');
+ return result.toString();
+ }
+
+} //MailImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/MailPackageImpl.java b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/MailPackageImpl.java
new file mode 100644
index 000000000..0983ed075
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/impl/MailPackageImpl.java
@@ -0,0 +1,363 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.mail.impl;
+
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.parsley.examples.mail.Account;
+import org.eclipse.emf.parsley.examples.mail.Folder;
+import org.eclipse.emf.parsley.examples.mail.FolderContent;
+import org.eclipse.emf.parsley.examples.mail.Mail;
+import org.eclipse.emf.parsley.examples.mail.MailContent;
+import org.eclipse.emf.parsley.examples.mail.MailFactory;
+import org.eclipse.emf.parsley.examples.mail.MailPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class MailPackageImpl extends EPackageImpl implements MailPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass accountEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass folderEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass folderContentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass mailContentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass mailEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private MailPackageImpl() {
+ super(eNS_URI, MailFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link MailPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static MailPackage init() {
+ if (isInited) return (MailPackage)EPackage.Registry.INSTANCE.getEPackage(MailPackage.eNS_URI);
+
+ // Obtain or create and register package
+ MailPackageImpl theMailPackage = (MailPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof MailPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new MailPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theMailPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theMailPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theMailPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(MailPackage.eNS_URI, theMailPackage);
+ return theMailPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAccount() {
+ return accountEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAccount_Name() {
+ return (EAttribute)accountEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAccount_Email() {
+ return (EAttribute)accountEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAccount_Folders() {
+ return (EReference)accountEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFolder() {
+ return folderEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFolder_Subfolders() {
+ return (EReference)folderEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFolder_Name() {
+ return (EAttribute)folderEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFolder_Mails() {
+ return (EReference)folderEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFolderContent() {
+ return folderContentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMailContent() {
+ return mailContentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMail() {
+ return mailEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMail_From() {
+ return (EAttribute)mailEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMail_Recipients() {
+ return (EAttribute)mailEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMail_Message() {
+ return (EAttribute)mailEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMail_Subject() {
+ return (EAttribute)mailEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MailFactory getMailFactory() {
+ return (MailFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ accountEClass = createEClass(ACCOUNT);
+ createEAttribute(accountEClass, ACCOUNT__NAME);
+ createEAttribute(accountEClass, ACCOUNT__EMAIL);
+ createEReference(accountEClass, ACCOUNT__FOLDERS);
+
+ folderEClass = createEClass(FOLDER);
+ createEReference(folderEClass, FOLDER__SUBFOLDERS);
+ createEAttribute(folderEClass, FOLDER__NAME);
+ createEReference(folderEClass, FOLDER__MAILS);
+
+ folderContentEClass = createEClass(FOLDER_CONTENT);
+
+ mailContentEClass = createEClass(MAIL_CONTENT);
+
+ mailEClass = createEClass(MAIL);
+ createEAttribute(mailEClass, MAIL__FROM);
+ createEAttribute(mailEClass, MAIL__RECIPIENTS);
+ createEAttribute(mailEClass, MAIL__MESSAGE);
+ createEAttribute(mailEClass, MAIL__SUBJECT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ folderEClass.getESuperTypes().add(this.getFolderContent());
+ mailContentEClass.getESuperTypes().add(this.getFolderContent());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(accountEClass, Account.class, "Account", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getAccount_Name(), ecorePackage.getEString(), "name", null, 0, 1, Account.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAccount_Email(), ecorePackage.getEString(), "email", null, 0, 1, Account.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAccount_Folders(), this.getFolder(), null, "folders", null, 0, -1, Account.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(folderEClass, Folder.class, "Folder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getFolder_Subfolders(), this.getFolder(), null, "subfolders", null, 0, -1, Folder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getFolder_Name(), ecorePackage.getEString(), "name", null, 0, 1, Folder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getFolder_Mails(), this.getMail(), null, "mails", null, 0, -1, Folder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(folderContentEClass, FolderContent.class, "FolderContent", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(mailContentEClass, MailContent.class, "MailContent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(mailEClass, Mail.class, "Mail", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getMail_From(), ecorePackage.getEString(), "from", null, 0, 1, Mail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMail_Recipients(), ecorePackage.getEString(), "recipients", null, 0, -1, Mail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMail_Message(), ecorePackage.getEString(), "message", null, 0, 1, Mail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMail_Subject(), ecorePackage.getEString(), "subject", null, 0, 1, Mail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //MailPackageImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/util/MailAdapterFactory.java b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/util/MailAdapterFactory.java
new file mode 100644
index 000000000..78126fe03
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/util/MailAdapterFactory.java
@@ -0,0 +1,192 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.mail.util;
+
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.parsley.examples.mail.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage
+ * @generated
+ */
+public class MailAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static MailPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MailAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = MailPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MailSwitch<Adapter> modelSwitch =
+ new MailSwitch<Adapter>() {
+ @Override
+ public Adapter caseAccount(Account object) {
+ return createAccountAdapter();
+ }
+ @Override
+ public Adapter caseFolder(Folder object) {
+ return createFolderAdapter();
+ }
+ @Override
+ public Adapter caseFolderContent(FolderContent object) {
+ return createFolderContentAdapter();
+ }
+ @Override
+ public Adapter caseMailContent(MailContent object) {
+ return createMailContentAdapter();
+ }
+ @Override
+ public Adapter caseMail(Mail object) {
+ return createMailAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.mail.Account <em>Account</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.mail.Account
+ * @generated
+ */
+ public Adapter createAccountAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.mail.Folder <em>Folder</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.mail.Folder
+ * @generated
+ */
+ public Adapter createFolderAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.mail.FolderContent <em>Folder Content</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.mail.FolderContent
+ * @generated
+ */
+ public Adapter createFolderContentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.mail.MailContent <em>Content</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.mail.MailContent
+ * @generated
+ */
+ public Adapter createMailContentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.mail.Mail <em>Mail</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.mail.Mail
+ * @generated
+ */
+ public Adapter createMailAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //MailAdapterFactory
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/util/MailSwitch.java b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/util/MailSwitch.java
new file mode 100644
index 000000000..01935785f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.model/src/org/eclipse/emf/parsley/examples/mail/util/MailSwitch.java
@@ -0,0 +1,196 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.mail.util;
+
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.emf.parsley.examples.mail.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.mail.MailPackage
+ * @generated
+ */
+public class MailSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static MailPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MailSwitch() {
+ if (modelPackage == null) {
+ modelPackage = MailPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case MailPackage.ACCOUNT: {
+ Account account = (Account)theEObject;
+ T result = caseAccount(account);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case MailPackage.FOLDER: {
+ Folder folder = (Folder)theEObject;
+ T result = caseFolder(folder);
+ if (result == null) result = caseFolderContent(folder);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case MailPackage.FOLDER_CONTENT: {
+ FolderContent folderContent = (FolderContent)theEObject;
+ T result = caseFolderContent(folderContent);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case MailPackage.MAIL_CONTENT: {
+ MailContent mailContent = (MailContent)theEObject;
+ T result = caseMailContent(mailContent);
+ if (result == null) result = caseFolderContent(mailContent);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case MailPackage.MAIL: {
+ Mail mail = (Mail)theEObject;
+ T result = caseMail(mail);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Account</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Account</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAccount(Account object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Folder</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Folder</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFolder(Folder object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Folder Content</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Folder Content</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFolderContent(FolderContent object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Content</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Content</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMailContent(MailContent object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Mail</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Mail</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMail(Mail object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //MailSwitch
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/.classpath b/examples/org.eclipse.emf.parsley.examples.mail.rcp/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/.project b/examples/org.eclipse.emf.parsley.examples.mail.rcp/.project
new file mode 100644
index 000000000..43664d214
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.mail.rcp</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.parsley.examples.mail.rcp/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.parsley.examples.mail.rcp/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/EmfComponentsMail.launch b/examples/org.eclipse.emf.parsley.examples.mail.rcp/EmfComponentsMail.launch
new file mode 100644
index 000000000..50c14f846
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/EmfComponentsMail.launch
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
+<setAttribute key="additional_plugins"/>
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/EmfComponentsMail"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="featureDefaultLocation" value="workspace"/>
+<stringAttribute key="featurePluginResolution" value="workspace"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../runtime-EmfComponentsMail"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx512m"/>
+<booleanAttribute key="pde.generated.config" value="false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.emf.parsley.examples.mail.rcp.product"/>
+<setAttribute key="selected_features">
+<setEntry value="org.eclipse.emf.parsley.examples.mail.product.feature:default"/>
+</setAttribute>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.servlet@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.parsley.examples.mail.rcp@default:default"/>
+<booleanAttribute key="show_selected_only" value="true"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="true"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<booleanAttribute key="useProduct" value="true"/>
+<booleanAttribute key="usefeatures" value="false"/>
+</launchConfiguration>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.parsley.examples.mail.rcp/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..a037cb2f8
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Emf Components Mail Example Rcp
+Bundle-SymbolicName: org.eclipse.emf.parsley.examples.mail.rcp;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.eclipse.emf.parsley.examples.mail.rcp.Activator
+Bundle-Vendor: Rcp-Vision
+Require-Bundle: org.eclipse.ui;bundle-version="3.5.0",
+ org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.emf.parsley.examples.mail.accountsview;bundle-version="1.0.0",
+ org.eclipse.emf.parsley.examples.mail.model;bundle-version="0.1.0"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/build.properties b/examples/org.eclipse.emf.parsley.examples.mail.rcp/build.properties
new file mode 100644
index 000000000..4b6aaf25b
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+ META-INF/,\
+ .,\
+ icons/,\
+ product_lg.gif,\
+ splash.bmp
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/mail.ico b/examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/mail.ico
new file mode 100644
index 000000000..b00006113
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/mail.ico
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/sample.gif b/examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/sample.gif
new file mode 100644
index 000000000..34fb3c9d8
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/sample.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/sample.icns b/examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/sample.icns
new file mode 100644
index 000000000..1e92ccce1
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/sample.icns
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/sample2.gif b/examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/sample2.gif
new file mode 100644
index 000000000..252d7ebcb
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/sample2.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/sample3.gif b/examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/sample3.gif
new file mode 100644
index 000000000..b949ac948
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/icons/sample3.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/old/NavigationView.java b/examples/org.eclipse.emf.parsley.examples.mail.rcp/old/NavigationView.java
new file mode 100644
index 000000000..8f349381c
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/old/NavigationView.java
@@ -0,0 +1,151 @@
+package org.eclipse.emf.parsley.examples.mail.rcp;
+
+import java.util.ArrayList;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.ViewPart;
+
+public class NavigationView extends ViewPart {
+ public static final String ID = "org.eclipse.emf.parsley.examples.mail.rcp.navigationView";
+ private TreeViewer viewer;
+
+ class TreeObject {
+ private String name;
+ private TreeParent parent;
+
+ public TreeObject(String name) {
+ this.name = name;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setParent(TreeParent parent) {
+ this.parent = parent;
+ }
+ public TreeParent getParent() {
+ return parent;
+ }
+ public String toString() {
+ return getName();
+ }
+ }
+
+ class TreeParent extends TreeObject {
+ private ArrayList children;
+ public TreeParent(String name) {
+ super(name);
+ children = new ArrayList();
+ }
+ public void addChild(TreeObject child) {
+ children.add(child);
+ child.setParent(this);
+ }
+ public void removeChild(TreeObject child) {
+ children.remove(child);
+ child.setParent(null);
+ }
+ public TreeObject[] getChildren() {
+ return (TreeObject[]) children.toArray(new TreeObject[children.size()]);
+ }
+ public boolean hasChildren() {
+ return children.size()>0;
+ }
+ }
+
+ class ViewContentProvider implements IStructuredContentProvider,
+ ITreeContentProvider {
+
+ public void inputChanged(Viewer v, Object oldInput, Object newInput) {
+ }
+
+ public void dispose() {
+ }
+
+ public Object[] getElements(Object parent) {
+ return getChildren(parent);
+ }
+
+ public Object getParent(Object child) {
+ if (child instanceof TreeObject) {
+ return ((TreeObject)child).getParent();
+ }
+ return null;
+ }
+
+ public Object[] getChildren(Object parent) {
+ if (parent instanceof TreeParent) {
+ return ((TreeParent)parent).getChildren();
+ }
+ return new Object[0];
+ }
+
+ public boolean hasChildren(Object parent) {
+ if (parent instanceof TreeParent)
+ return ((TreeParent)parent).hasChildren();
+ return false;
+ }
+ }
+
+ class ViewLabelProvider extends LabelProvider {
+
+ public String getText(Object obj) {
+ return obj.toString();
+ }
+ public Image getImage(Object obj) {
+ String imageKey = ISharedImages.IMG_OBJ_ELEMENT;
+ if (obj instanceof TreeParent)
+ imageKey = ISharedImages.IMG_OBJ_FOLDER;
+ return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey);
+ }
+ }
+
+ /**
+ * We will set up a dummy model to initialize tree heararchy. In real
+ * code, you will connect to a real model and expose its hierarchy.
+ */
+ private TreeObject createDummyModel() {
+ TreeObject to1 = new TreeObject("Inbox");
+ TreeObject to2 = new TreeObject("Drafts");
+ TreeObject to3 = new TreeObject("Sent");
+ TreeParent p1 = new TreeParent("me@this.com");
+ p1.addChild(to1);
+ p1.addChild(to2);
+ p1.addChild(to3);
+
+ TreeObject to4 = new TreeObject("Inbox");
+ TreeParent p2 = new TreeParent("other@aol.com");
+ p2.addChild(to4);
+
+ TreeParent root = new TreeParent("");
+ root.addChild(p1);
+ root.addChild(p2);
+ return root;
+ }
+
+ /**
+ * This is a callback that will allow us to create the viewer and initialize
+ * it.
+ */
+ public void createPartControl(Composite parent) {
+ viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
+ viewer.setContentProvider(new ViewContentProvider());
+ viewer.setLabelProvider(new ViewLabelProvider());
+ viewer.setInput(createDummyModel());
+ }
+
+ /**
+ * Passing the focus request to the viewer's control.
+ */
+ public void setFocus() {
+ viewer.getControl().setFocus();
+ }
+} \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/old/plugin.xml b/examples/org.eclipse.emf.parsley.examples.mail.rcp/old/plugin.xml
new file mode 100644
index 000000000..8d7f1cf17
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/old/plugin.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+ <extension
+ id="application"
+ point="org.eclipse.core.runtime.applications">
+ <application>
+ <run
+ class="org.eclipse.emf.parsley.examples.mail.rcp.MailApplication">
+ </run>
+ </application>
+ </extension>
+ <extension
+ point="org.eclipse.ui.perspectives">
+ <perspective
+ name="Emf Parsley Mail RCP Perspective"
+ class="org.eclipse.emf.parsley.examples.mail.rcp.Perspective"
+ id="org.eclipse.emf.parsley.examples.mail.rcp.perspective">
+ </perspective>
+ </extension>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ name="Message"
+ allowMultiple="true"
+ icon="icons/sample2.gif"
+ class="org.eclipse.emf.parsley.examples.mail.rcp.View"
+ id="org.eclipse.emf.parsley.examples.mail.rcp.view">
+ </view>
+ <view
+ name="Mailboxes"
+ allowMultiple="true"
+ icon="icons/sample3.gif"
+ class="org.eclipse.emf.parsley.examples.mail.rcp.NavigationView"
+ id="org.eclipse.emf.parsley.examples.mail.rcp.navigationView">
+ </view>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <category
+ name="Mail"
+ id="org.eclipse.emf.parsley.examples.mail.rcp.category">
+ </category>
+ <command
+ name="Open Mailbox"
+ description="Opens a mailbox"
+ categoryId="org.eclipse.emf.parsley.examples.mail.rcp.category"
+ id="org.eclipse.emf.parsley.examples.mail.rcp.open">
+ </command>
+ <command
+ name="Open Message Dialog"
+ description="Open a message dialog"
+ categoryId="org.eclipse.emf.parsley.examples.mail.rcp.category"
+ id="org.eclipse.emf.parsley.examples.mail.rcp.openMessage">
+ </command>
+ </extension>
+ <extension
+ point="org.eclipse.ui.bindings">
+ <key
+ commandId="org.eclipse.emf.parsley.examples.mail.rcp.open"
+ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
+ sequence="CTRL+2">
+ </key>
+ <key
+ commandId="org.eclipse.emf.parsley.examples.mail.rcp.openMessage"
+ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
+ sequence="CTRL+3">
+ </key>
+ <key
+ commandId="org.eclipse.ui.file.exit"
+ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
+ sequence="CTRL+X">
+ </key>
+ </extension>
+ <extension
+ id="product"
+ point="org.eclipse.core.runtime.products">
+ <product
+ application="org.eclipse.emf.parsley.examples.mail.rcp.application"
+ name="Emf Parsley Mail RCP Product">
+ <property
+ name="aboutText"
+ value="RCP Mail created with Emf Parsley">
+ </property>
+ <property
+ name="windowImages"
+ value="icons/sample2.gif">
+ </property>
+ <property
+ name="aboutImage"
+ value="product_lg.gif">
+ </property>
+ <property
+ name="appName"
+ value="Emf Parsley Mail RCP Product">
+ </property>
+ </product>
+ </extension>
+
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/plugin.xml b/examples/org.eclipse.emf.parsley.examples.mail.rcp/plugin.xml
new file mode 100644
index 000000000..241da260d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/plugin.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+ <extension
+ id="application"
+ point="org.eclipse.core.runtime.applications">
+ <application>
+ <run
+ class="org.eclipse.emf.parsley.examples.mail.rcp.MailApplication">
+ </run>
+ </application>
+ </extension>
+ <extension
+ point="org.eclipse.ui.perspectives">
+ <perspective
+ name="Emf Parsley Mail RCP Perspective"
+ class="org.eclipse.emf.parsley.examples.mail.rcp.Perspective"
+ id="org.eclipse.emf.parsley.examples.mail.rcp.perspective">
+ </perspective>
+ </extension>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ name="Message"
+ allowMultiple="true"
+ icon="icons/sample2.gif"
+ class="org.eclipse.emf.parsley.examples.mail.rcp.View"
+ id="org.eclipse.emf.parsley.examples.mail.rcp.view">
+ </view>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <category
+ name="Mail"
+ id="org.eclipse.emf.parsley.examples.mail.rcp.category">
+ </category>
+ <command
+ name="Open Mailbox"
+ description="Opens a mailbox"
+ categoryId="org.eclipse.emf.parsley.examples.mail.rcp.category"
+ id="org.eclipse.emf.parsley.examples.mail.rcp.open">
+ </command>
+ <command
+ name="Open Message Dialog"
+ description="Open a message dialog"
+ categoryId="org.eclipse.emf.parsley.examples.mail.rcp.category"
+ id="org.eclipse.emf.parsley.examples.mail.rcp.openMessage">
+ </command>
+ </extension>
+ <extension
+ point="org.eclipse.ui.bindings">
+ <key
+ commandId="org.eclipse.emf.parsley.examples.mail.rcp.open"
+ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
+ sequence="CTRL+2">
+ </key>
+ <key
+ commandId="org.eclipse.emf.parsley.examples.mail.rcp.openMessage"
+ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
+ sequence="CTRL+3">
+ </key>
+ </extension>
+ <extension
+ id="product"
+ point="org.eclipse.core.runtime.products">
+ <product
+ application="org.eclipse.emf.parsley.examples.mail.rcp.application"
+ name="Emf Components Mail RCP Product">
+ <property
+ name="aboutText"
+ value="RCP Mail template created by PDE">
+ </property>
+ <property
+ name="windowImages"
+ value="icons/sample2.gif">
+ </property>
+ <property
+ name="aboutImage"
+ value="product_lg.gif">
+ </property>
+ <property
+ name="appName"
+ value="Emf Components Mail RCP Product">
+ </property>
+ </product>
+ </extension>
+
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/product_lg.gif b/examples/org.eclipse.emf.parsley.examples.mail.rcp/product_lg.gif
new file mode 100644
index 000000000..bd95e283f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/product_lg.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/splash.bmp b/examples/org.eclipse.emf.parsley.examples.mail.rcp/splash.bmp
new file mode 100644
index 000000000..d7d2e3032
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/splash.bmp
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/Activator.java b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/Activator.java
new file mode 100644
index 000000000..a0c040a3f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/Activator.java
@@ -0,0 +1,61 @@
+package org.eclipse.emf.parsley.examples.mail.rcp;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.parsley.examples.mail.rcp"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+ /**
+ * Returns an image descriptor for the image file at the given
+ * plug-in relative path
+ *
+ * @param path the path
+ * @return the image descriptor
+ */
+ public static ImageDescriptor getImageDescriptor(String path) {
+ return imageDescriptorFromPlugin(PLUGIN_ID, path);
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/ApplicationActionBarAdvisor.java b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/ApplicationActionBarAdvisor.java
new file mode 100644
index 000000000..4d15285ab
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/ApplicationActionBarAdvisor.java
@@ -0,0 +1,91 @@
+package org.eclipse.emf.parsley.examples.mail.rcp;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.GroupMarker;
+import org.eclipse.jface.action.ICoolBarManager;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.ToolBarContributionItem;
+import org.eclipse.jface.action.ToolBarManager;
+import org.eclipse.swt.SWT;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.eclipse.ui.application.ActionBarAdvisor;
+import org.eclipse.ui.application.IActionBarConfigurer;
+
+/**
+ * An action bar advisor is responsible for creating, adding, and disposing of the
+ * actions added to a workbench window. Each window will be populated with
+ * new actions.
+ */
+public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
+
+ // Actions - important to allocate these only in makeActions, and then use them
+ // in the fill methods. This ensures that the actions aren't recreated
+ // when fillActionBars is called with FILL_PROXY.
+ private IWorkbenchAction exitAction;
+ private IWorkbenchAction aboutAction;
+ private IWorkbenchAction newWindowAction;
+ private OpenViewAction openViewAction;
+ private Action messagePopupAction;
+
+
+ public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
+ super(configurer);
+ }
+
+ protected void makeActions(final IWorkbenchWindow window) {
+ // Creates the actions and registers them.
+ // Registering is needed to ensure that key bindings work.
+ // The corresponding commands keybindings are defined in the plugin.xml file.
+ // Registering also provides automatic disposal of the actions when
+ // the window is closed.
+
+ exitAction = ActionFactory.QUIT.create(window);
+ register(exitAction);
+
+ aboutAction = ActionFactory.ABOUT.create(window);
+ register(aboutAction);
+
+ newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window);
+ register(newWindowAction);
+
+ openViewAction = new OpenViewAction(window, "Open Another Message View", View.ID);
+ register(openViewAction);
+
+ messagePopupAction = new MessagePopupAction("Open Message", window);
+ register(messagePopupAction);
+ }
+
+ protected void fillMenuBar(IMenuManager menuBar) {
+ MenuManager fileMenu = new MenuManager("&File", IWorkbenchActionConstants.M_FILE);
+ MenuManager helpMenu = new MenuManager("&Help", IWorkbenchActionConstants.M_HELP);
+
+ menuBar.add(fileMenu);
+ // Add a group marker indicating where action set menus will appear.
+ menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
+ menuBar.add(helpMenu);
+
+ // File
+ fileMenu.add(newWindowAction);
+ fileMenu.add(new Separator());
+ fileMenu.add(messagePopupAction);
+ fileMenu.add(openViewAction);
+ fileMenu.add(new Separator());
+ fileMenu.add(exitAction);
+
+ // Help
+ helpMenu.add(aboutAction);
+ }
+
+ protected void fillCoolBar(ICoolBarManager coolBar) {
+ IToolBarManager toolbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
+ coolBar.add(new ToolBarContributionItem(toolbar, "main"));
+ toolbar.add(openViewAction);
+ toolbar.add(messagePopupAction);
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/ApplicationWorkbenchAdvisor.java b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/ApplicationWorkbenchAdvisor.java
new file mode 100644
index 000000000..c5ebdce6b
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/ApplicationWorkbenchAdvisor.java
@@ -0,0 +1,21 @@
+package org.eclipse.emf.parsley.examples.mail.rcp;
+
+import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
+import org.eclipse.ui.application.WorkbenchAdvisor;
+import org.eclipse.ui.application.WorkbenchWindowAdvisor;
+
+/**
+ * This workbench advisor creates the window advisor, and specifies
+ * the perspective id for the initial window.
+ */
+public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
+
+ public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
+ return new ApplicationWorkbenchWindowAdvisor(configurer);
+ }
+
+ public String getInitialWindowPerspectiveId() {
+ return Perspective.ID;
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/ApplicationWorkbenchWindowAdvisor.java b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/ApplicationWorkbenchWindowAdvisor.java
new file mode 100644
index 000000000..b6e2b8c9a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/ApplicationWorkbenchWindowAdvisor.java
@@ -0,0 +1,26 @@
+package org.eclipse.emf.parsley.examples.mail.rcp;
+
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.ui.application.ActionBarAdvisor;
+import org.eclipse.ui.application.IActionBarConfigurer;
+import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
+import org.eclipse.ui.application.WorkbenchWindowAdvisor;
+
+public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
+
+ public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
+ super(configurer);
+ }
+
+ public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
+ return new ApplicationActionBarAdvisor(configurer);
+ }
+
+ public void preWindowOpen() {
+ IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
+ configurer.setInitialSize(new Point(600, 400));
+ configurer.setShowCoolBar(true);
+ configurer.setShowStatusLine(false);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/ICommandIds.java b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/ICommandIds.java
new file mode 100644
index 000000000..955d470d4
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/ICommandIds.java
@@ -0,0 +1,15 @@
+package org.eclipse.emf.parsley.examples.mail.rcp;
+
+/**
+ * Interface defining the application's command IDs.
+ * Key bindings can be defined for specific commands.
+ * To associate an action with a command, use IAction.setActionDefinitionId(commandId).
+ *
+ * @see org.eclipse.jface.action.IAction#setActionDefinitionId(String)
+ */
+public interface ICommandIds {
+
+ public static final String CMD_OPEN = "org.eclipse.emf.parsley.examples.mail.rcp.open";
+ public static final String CMD_OPEN_MESSAGE = "org.eclipse.emf.parsley.examples.mail.rcp.openMessage";
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/MailApplication.java b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/MailApplication.java
new file mode 100644
index 000000000..506b20d68
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/MailApplication.java
@@ -0,0 +1,45 @@
+package org.eclipse.emf.parsley.examples.mail.rcp;
+
+import org.eclipse.equinox.app.IApplication;
+import org.eclipse.equinox.app.IApplicationContext;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * This class controls all aspects of the application's execution
+ */
+public class MailApplication implements IApplication {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
+ */
+ public Object start(IApplicationContext context) {
+ Display display = PlatformUI.createDisplay();
+ try {
+ int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
+ if (returnCode == PlatformUI.RETURN_RESTART) {
+ return IApplication.EXIT_RESTART;
+ }
+ return IApplication.EXIT_OK;
+ } finally {
+ display.dispose();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.equinox.app.IApplication#stop()
+ */
+ public void stop() {
+ if (!PlatformUI.isWorkbenchRunning())
+ return;
+ final IWorkbench workbench = PlatformUI.getWorkbench();
+ final Display display = workbench.getDisplay();
+ display.syncExec(new Runnable() {
+ public void run() {
+ if (!display.isDisposed())
+ workbench.close();
+ }
+ });
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/MessagePopupAction.java b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/MessagePopupAction.java
new file mode 100644
index 000000000..e9bab5687
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/MessagePopupAction.java
@@ -0,0 +1,25 @@
+package org.eclipse.emf.parsley.examples.mail.rcp;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.ui.IWorkbenchWindow;
+
+
+public class MessagePopupAction extends Action {
+
+ private final IWorkbenchWindow window;
+
+ MessagePopupAction(String text, IWorkbenchWindow window) {
+ super(text);
+ this.window = window;
+ // The id is used to refer to the action in a menu or toolbar
+ setId(ICommandIds.CMD_OPEN_MESSAGE);
+ // Associate the action with a pre-defined command, to allow key bindings.
+ setActionDefinitionId(ICommandIds.CMD_OPEN_MESSAGE);
+ setImageDescriptor(org.eclipse.emf.parsley.examples.mail.rcp.Activator.getImageDescriptor("/icons/sample3.gif"));
+ }
+
+ public void run() {
+ MessageDialog.openInformation(window.getShell(), "Open", "Open Message Dialog!");
+ }
+} \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/OpenViewAction.java b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/OpenViewAction.java
new file mode 100644
index 000000000..ece4f686c
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/OpenViewAction.java
@@ -0,0 +1,35 @@
+package org.eclipse.emf.parsley.examples.mail.rcp;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.ui.IWorkbenchWindow;
+
+
+public class OpenViewAction extends Action {
+
+ private final IWorkbenchWindow window;
+ protected int instanceNum = 0;
+ protected final String viewId;
+
+ public OpenViewAction(IWorkbenchWindow window, String label, String viewId) {
+ this.window = window;
+ this.viewId = viewId;
+ setText(label);
+ // The id is used to refer to the action in a menu or toolbar
+ setId(ICommandIds.CMD_OPEN);
+ // Associate the action with a pre-defined command, to allow key bindings.
+ setActionDefinitionId(ICommandIds.CMD_OPEN);
+ setImageDescriptor(org.eclipse.emf.parsley.examples.mail.rcp.Activator.getImageDescriptor("/icons/sample2.gif"));
+ }
+
+ public void run() {
+ MessageDialog.openInformation(window.getShell(), "Open", "New Message Dialog!");
+// if(window != null) {
+// try {
+// window.getActivePage().showView(viewId, Integer.toString(instanceNum++), IWorkbenchPage.VIEW_ACTIVATE);
+// } catch (PartInitException e) {
+// MessageDialog.openError(window.getShell(), "Error", "Error opening view:" + e.getMessage());
+// }
+// }
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/Perspective.java b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/Perspective.java
new file mode 100644
index 000000000..8e2ea7db9
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/Perspective.java
@@ -0,0 +1,35 @@
+package org.eclipse.emf.parsley.examples.mail.rcp;
+
+
+import org.eclipse.emf.parsley.examples.mail.accountsview.views.AccountsView;
+import org.eclipse.ui.IPageLayout;
+import org.eclipse.ui.IPerspectiveFactory;
+
+public class Perspective implements IPerspectiveFactory {
+
+ /**
+ * The ID of the perspective as specified in the extension.
+ */
+ public static final String ID = "org.eclipse.emf.parsley.examples.mail.rcp.perspective";
+
+ public void createInitialLayout(IPageLayout layout) {
+ String editorArea = layout.getEditorArea();
+ layout.setEditorAreaVisible(false);
+
+ //layout.addStandaloneView(NavigationView.ID, false, IPageLayout.LEFT, 0.25f, editorArea);
+ // don't show the view tabs
+// layout.addStandaloneView(AccountsView.ID, true, IPageLayout.LEFT, 0.25f, editorArea);
+// layout.addStandaloneView(MailsView.ID, true, IPageLayout.TOP, 0.25f, editorArea);
+// layout.addStandaloneView(MessageView.ID, true, IPageLayout.BOTTOM, 0.25f, editorArea);
+
+ // if you want to show the view tabs
+ layout.addView(AccountsView.ID, IPageLayout.LEFT, 0.25f, editorArea);
+
+// IFolderLayout folder = layout.createFolder("messages", IPageLayout.TOP, 0.5f, editorArea);
+// folder.addPlaceholder(View.ID + ":*");
+// folder.addView(View.ID);
+
+ //layout.getViewLayout(NavigationView.ID).setCloseable(false);
+ layout.getViewLayout(AccountsView.ID).setCloseable(false);
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/View.java b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/View.java
new file mode 100644
index 000000000..67bd2c82b
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.mail.rcp/src/org/eclipse/emf/parsley/examples/mail/rcp/View.java
@@ -0,0 +1,90 @@
+package org.eclipse.emf.parsley.examples.mail.rcp;
+
+
+import org.eclipse.emf.parsley.examples.mail.Mail;
+import org.eclipse.emf.parsley.examples.mail.MailFactory;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Link;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.part.ViewPart;
+
+public class View extends ViewPart {
+
+ public static final String ID = "org.eclipse.emf.parsley.examples.mail.rcp.view";
+
+ /**
+ * The text control that's displaying the content of the email message.
+ */
+ private Text messageText;
+
+ public void createPartControl(Composite parent) {
+ Composite top = new Composite(parent, SWT.NONE);
+ GridLayout layout = new GridLayout();
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
+ top.setLayout(layout);
+ // top banner
+ Composite banner = new Composite(top, SWT.NONE);
+ banner.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL, GridData.VERTICAL_ALIGN_BEGINNING, true, false));
+ layout = new GridLayout();
+ layout.marginHeight = 5;
+ layout.marginWidth = 10;
+ layout.numColumns = 2;
+ banner.setLayout(layout);
+
+ // setup bold font
+ Font boldFont = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT);
+
+ Label l = new Label(banner, SWT.WRAP);
+ l.setText("Subject:");
+ l.setFont(boldFont);
+ l = new Label(banner, SWT.WRAP);
+ l.setText("This is a message about the cool Eclipse RCP!");
+
+ l = new Label(banner, SWT.WRAP);
+ l.setText("From:");
+ l.setFont(boldFont);
+
+ final Link link = new Link(banner, SWT.NONE);
+ link.setText("<a>nicole@mail.org</a>");
+ link.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ MessageDialog.openInformation(getSite().getShell(), "Not Implemented", "Imagine the address book or a new message being created now.");
+ }
+ });
+
+ l = new Label(banner, SWT.WRAP);
+ l.setText("Date:");
+ l.setFont(boldFont);
+ l = new Label(banner, SWT.WRAP);
+ l.setText("10:34 am");
+ // message contents
+ Mail mail = MailFactory.eINSTANCE.createMail();
+ mail.setMessage("Test Mail Message");
+
+ messageText = new Text(top, SWT.MULTI | SWT.WRAP);
+ messageText.setText("This RCP Application was generated from the PDE Plug-in Project wizard. This sample shows how to:\n"+
+ "- add a top-level menu and toolbar with actions\n"+
+ "- add keybindings to actions\n" +
+ "- create views that can't be closed and\n"+
+ " multiple instances of the same view\n"+
+ "- perspectives with placeholders for new views\n"+
+ "- use the default about dialog\n"+
+ "- create a product definition\n\n" +
+ mail.getMessage());
+ messageText.setLayoutData(new GridData(GridData.FILL_BOTH));
+ }
+
+ public void setFocus() {
+ messageText.setFocus();
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/.classpath b/examples/org.eclipse.emf.parsley.examples.rap.model/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/.project b/examples/org.eclipse.emf.parsley.examples.rap.model/.project
new file mode 100644
index 000000000..b0f2a1565
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.rap.model</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/.settings/org.eclipse.core.resources.prefs b/examples/org.eclipse.emf.parsley.examples.rap.model/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 000000000..62aaa22ac
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding//model/Model.ecorediag=UTF-8
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.parsley.examples.rap.model/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.parsley.examples.rap.model/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.parsley.examples.rap.model/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..e2307f5e0
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.parsley.examples.rap.model;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.parsley.examples.rap.model,
+ org.eclipse.emf.parsley.examples.rap.model.impl,
+ org.eclipse.emf.parsley.examples.rap.model.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/build.properties b/examples/org.eclipse.emf.parsley.examples.rap.model/build.properties
new file mode 100644
index 000000000..4465407fc
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/model/Model.ecore b/examples/org.eclipse.emf.parsley.examples.rap.model/model/Model.ecore
new file mode 100644
index 000000000..7ecc2d806
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/model/Model.ecore
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model" nsURI="http://model/1.0" nsPrefix="model">
+ <eClassifiers xsi:type="ecore:EClass" name="Model">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
+ eType="#//Element" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="items" upperBound="-1"
+ eType="#//Item" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Element">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral=""/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="age" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="items" upperBound="-1"
+ eType="#//Item"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Item">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/model/Model.ecorediag b/examples/org.eclipse.emf.parsley.examples.rap.model/model/Model.ecorediag
new file mode 100644
index 000000000..4587d22de
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/model/Model.ecorediag
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_Gt7XkNoxEeGld_pcW3jZqQ" type="EcoreTools" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_GvrrENoxEeGld_pcW3jZqQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_GxNVENoxEeGld_pcW3jZqQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_GxPxUNoxEeGld_pcW3jZqQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_GxRmgNoxEeGld_pcW3jZqQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Model.ecore#//Model/name"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GxRmgdoxEeGld_pcW3jZqQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_GxPxUdoxEeGld_pcW3jZqQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GxPxUtoxEeGld_pcW3jZqQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GxPxU9oxEeGld_pcW3jZqQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_GxQYYNoxEeGld_pcW3jZqQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_GxQYYdoxEeGld_pcW3jZqQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GxQYYtoxEeGld_pcW3jZqQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GxQYY9oxEeGld_pcW3jZqQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_GvrrEdoxEeGld_pcW3jZqQ" fontColor="4210752" fontName="Ubuntu" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Model.ecore#//Model"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GvrrEtoxEeGld_pcW3jZqQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ib0cwNoxEeGld_pcW3jZqQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_Ib1D0NoxEeGld_pcW3jZqQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_Ib1D0doxEeGld_pcW3jZqQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_KHrhoNoxEeGld_pcW3jZqQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Model.ecore#//Element/name"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KHrhodoxEeGld_pcW3jZqQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ldp2ENoxEeGld_pcW3jZqQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Model.ecore#//Element/age"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ldp2EdoxEeGld_pcW3jZqQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Ib1D0toxEeGld_pcW3jZqQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Ib1D09oxEeGld_pcW3jZqQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Ib1D1NoxEeGld_pcW3jZqQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Ib1q4NoxEeGld_pcW3jZqQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Ib1q4doxEeGld_pcW3jZqQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Ib1q4toxEeGld_pcW3jZqQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Ib1q49oxEeGld_pcW3jZqQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_Ib0cwdoxEeGld_pcW3jZqQ" fontColor="4210752" fontName="Ubuntu" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Model.ecore#//Element"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ib0cwtoxEeGld_pcW3jZqQ" x="156" y="120"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_gWHioNpFEeGld_pcW3jZqQ" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_gWIJsNpFEeGld_pcW3jZqQ" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_gWIJsdpFEeGld_pcW3jZqQ" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_hUblANpFEeGld_pcW3jZqQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="Model.ecore#//Item/name"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hUblAdpFEeGld_pcW3jZqQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_gWIJstpFEeGld_pcW3jZqQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gWIJs9pFEeGld_pcW3jZqQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gWIJtNpFEeGld_pcW3jZqQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_gWIwwNpFEeGld_pcW3jZqQ" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_gWIwwdpFEeGld_pcW3jZqQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gWIwwtpFEeGld_pcW3jZqQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gWIww9pFEeGld_pcW3jZqQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_gWHiodpFEeGld_pcW3jZqQ" fontColor="4210752" fontName="Ubuntu" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="Model.ecore#//Item"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gWHiotpFEeGld_pcW3jZqQ" x="327" y="46"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Gt7XkdoxEeGld_pcW3jZqQ"/>
+ <element xmi:type="ecore:EPackage" href="Model.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_NzRCkNoxEeGld_pcW3jZqQ" type="3002" source="_GvrrENoxEeGld_pcW3jZqQ" target="_Ib0cwNoxEeGld_pcW3jZqQ">
+ <children xmi:type="notation:Node" xmi:id="_NzSQsNoxEeGld_pcW3jZqQ" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NzSQsdoxEeGld_pcW3jZqQ" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NzS3wNoxEeGld_pcW3jZqQ" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NzS3wdoxEeGld_pcW3jZqQ" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_NzRCkdoxEeGld_pcW3jZqQ" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_NzRCktoxEeGld_pcW3jZqQ" fontColor="4210752" fontName="Ubuntu" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="Model.ecore#//Model/elements"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NzRCk9oxEeGld_pcW3jZqQ" points="[2, 10, 2, 10]$[2, 10, 2, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nzj9gNoxEeGld_pcW3jZqQ" id="(0.8189655172413793,0.7959183673469388)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nzj9gdoxEeGld_pcW3jZqQ" id="(0.2647058823529412,0.13846153846153847)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_l7jhINpFEeGld_pcW3jZqQ" type="3002" source="_Ib0cwNoxEeGld_pcW3jZqQ" target="_gWHioNpFEeGld_pcW3jZqQ">
+ <children xmi:type="notation:Node" xmi:id="_l7kvQNpFEeGld_pcW3jZqQ" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_l7kvQdpFEeGld_pcW3jZqQ" x="-32" y="-2"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_l7kvQtpFEeGld_pcW3jZqQ" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_l7kvQ9pFEeGld_pcW3jZqQ" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_l7jhIdpFEeGld_pcW3jZqQ" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_l7jhItpFEeGld_pcW3jZqQ" fontColor="4210752" fontName="Ubuntu" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="Model.ecore#//Element/items"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_l7jhI9pFEeGld_pcW3jZqQ" points="[6, -4, -86, 56]$[93, -54, 1, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l7oZoNpFEeGld_pcW3jZqQ" id="(0.9482758620689655,0.4307692307692308)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l7oZodpFEeGld_pcW3jZqQ" id="(0.25862068965517243,0.8775510204081632)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_wWkHcNpFEeGld_pcW3jZqQ" type="3002" source="_GvrrENoxEeGld_pcW3jZqQ" target="_gWHioNpFEeGld_pcW3jZqQ">
+ <children xmi:type="notation:Node" xmi:id="_wWkug9pFEeGld_pcW3jZqQ" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wWkuhNpFEeGld_pcW3jZqQ" x="-76" y="-5"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_wWlVkNpFEeGld_pcW3jZqQ" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wWlVkdpFEeGld_pcW3jZqQ" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_wWkugNpFEeGld_pcW3jZqQ" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wWkugdpFEeGld_pcW3jZqQ" fontColor="4210752" fontName="Ubuntu" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="Model.ecore#//Model/items"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wWkugtpFEeGld_pcW3jZqQ" points="[8, 1, -217, -39]$[226, 28, 1, -12]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wWmjsNpFEeGld_pcW3jZqQ" id="(0.9310344827586207,0.3877551020408163)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wWmjsdpFEeGld_pcW3jZqQ" id="(0.04310344827586207,0.2653061224489796)"/>
+ </edges>
+</notation:Diagram>
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/model/Model.genmodel b/examples/org.eclipse.emf.parsley.examples.rap.model/model/Model.genmodel
new file mode 100644
index 000000000..6ed3f300d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/model/Model.genmodel
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.parsley.examples.rap.model/src"
+ modelPluginID="org.eclipse.emf.parsley.examples.rap.model" modelName="Model"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0" copyrightFields="false"
+ runtimePlatform="RAP">
+ <foreignModel>../../it.rcpvision.emfrap/model/Model.ecore</foreignModel>
+ <genPackages prefix="Model" basePackage="org.eclipse.emf.parsley.examples.rap"
+ disposableProviderFactory="true" ecorePackage="Model.ecore#/">
+ <genClasses ecoreClass="Model.ecore#//Model">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Model.ecore#//Model/name"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/plugin.properties b/examples/org.eclipse.emf.parsley.examples.rap.model/plugin.properties
new file mode 100644
index 000000000..24680b935
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/plugin.properties
@@ -0,0 +1,4 @@
+#
+
+pluginName = Model Model
+providerName = www.example.org
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/plugin.xml b/examples/org.eclipse.emf.parsley.examples.rap.model/plugin.xml
new file mode 100644
index 000000000..bd4acb3dd
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/plugin.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://model/1.0"
+ class="org.eclipse.emf.parsley.examples.rap.model.ModelPackage"
+ genModel="model/Model.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/Element.java b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/Element.java
new file mode 100644
index 000000000..f6993ab09
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/Element.java
@@ -0,0 +1,96 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.rap.model;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.rap.model.Element#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.rap.model.Element#getAge <em>Age</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.rap.model.Element#getItems <em>Items</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.rap.model.ModelPackage#getElement()
+ * @model
+ * @generated
+ */
+public interface Element extends EObject {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * The default value is <code>""</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.parsley.examples.rap.model.ModelPackage#getElement_Name()
+ * @model default=""
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.rap.model.Element#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Age</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Age</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Age</em>' attribute.
+ * @see #setAge(int)
+ * @see org.eclipse.emf.parsley.examples.rap.model.ModelPackage#getElement_Age()
+ * @model
+ * @generated
+ */
+ int getAge();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.rap.model.Element#getAge <em>Age</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Age</em>' attribute.
+ * @see #getAge()
+ * @generated
+ */
+ void setAge(int value);
+
+ /**
+ * Returns the value of the '<em><b>Items</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.rap.model.Item}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Items</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Items</em>' reference list.
+ * @see org.eclipse.emf.parsley.examples.rap.model.ModelPackage#getElement_Items()
+ * @model
+ * @generated
+ */
+ EList<Item> getItems();
+
+} // Element
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/Item.java b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/Item.java
new file mode 100644
index 000000000..e42b165d3
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/Item.java
@@ -0,0 +1,50 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.rap.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.rap.model.Item#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.rap.model.ModelPackage#getItem()
+ * @model
+ * @generated
+ */
+public interface Item extends EObject {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.parsley.examples.rap.model.ModelPackage#getItem_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.rap.model.Item#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // Item
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/Model.java b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/Model.java
new file mode 100644
index 000000000..c360fed6c
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/Model.java
@@ -0,0 +1,85 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.rap.model;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.rap.model.Model#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.rap.model.Model#getElements <em>Elements</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.rap.model.Model#getItems <em>Items</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.parsley.examples.rap.model.ModelPackage#getModel()
+ * @model
+ * @generated
+ */
+public interface Model extends EObject {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.parsley.examples.rap.model.ModelPackage#getModel_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.parsley.examples.rap.model.Model#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Elements</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.rap.model.Element}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Elements</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Elements</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.examples.rap.model.ModelPackage#getModel_Elements()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Element> getElements();
+
+ /**
+ * Returns the value of the '<em><b>Items</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.parsley.examples.rap.model.Item}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Items</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Items</em>' containment reference list.
+ * @see org.eclipse.emf.parsley.examples.rap.model.ModelPackage#getModel_Items()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Item> getItems();
+
+} // Model
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/ModelFactory.java b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/ModelFactory.java
new file mode 100644
index 000000000..c78ab5c83
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/ModelFactory.java
@@ -0,0 +1,60 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.rap.model;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.rap.model.ModelPackage
+ * @generated
+ */
+public interface ModelFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ModelFactory eINSTANCE = org.eclipse.emf.parsley.examples.rap.model.impl.ModelFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Model</em>'.
+ * @generated
+ */
+ Model createModel();
+
+ /**
+ * Returns a new object of class '<em>Element</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Element</em>'.
+ * @generated
+ */
+ Element createElement();
+
+ /**
+ * Returns a new object of class '<em>Item</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Item</em>'.
+ * @generated
+ */
+ Item createItem();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ ModelPackage getModelPackage();
+
+} //ModelFactory
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/ModelPackage.java b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/ModelPackage.java
new file mode 100644
index 000000000..3ef4ddd10
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/ModelPackage.java
@@ -0,0 +1,398 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.rap.model;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.rap.model.ModelFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ModelPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "model";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://model/1.0";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "model";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ModelPackage eINSTANCE = org.eclipse.emf.parsley.examples.rap.model.impl.ModelPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.rap.model.impl.ModelImpl <em>Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.rap.model.impl.ModelImpl
+ * @see org.eclipse.emf.parsley.examples.rap.model.impl.ModelPackageImpl#getModel()
+ * @generated
+ */
+ int MODEL = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__ELEMENTS = 1;
+
+ /**
+ * The feature id for the '<em><b>Items</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__ITEMS = 2;
+
+ /**
+ * The number of structural features of the '<em>Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_FEATURE_COUNT = 3;
+
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.rap.model.impl.ElementImpl <em>Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.rap.model.impl.ElementImpl
+ * @see org.eclipse.emf.parsley.examples.rap.model.impl.ModelPackageImpl#getElement()
+ * @generated
+ */
+ int ELEMENT = 1;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELEMENT__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Age</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELEMENT__AGE = 1;
+
+ /**
+ * The feature id for the '<em><b>Items</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELEMENT__ITEMS = 2;
+
+ /**
+ * The number of structural features of the '<em>Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_FEATURE_COUNT = 3;
+
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.parsley.examples.rap.model.impl.ItemImpl <em>Item</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.rap.model.impl.ItemImpl
+ * @see org.eclipse.emf.parsley.examples.rap.model.impl.ModelPackageImpl#getItem()
+ * @generated
+ */
+ int ITEM = 2;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ITEM__NAME = 0;
+
+ /**
+ * The number of structural features of the '<em>Item</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ITEM_FEATURE_COUNT = 1;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.rap.model.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Model</em>'.
+ * @see org.eclipse.emf.parsley.examples.rap.model.Model
+ * @generated
+ */
+ EClass getModel();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.rap.model.Model#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.parsley.examples.rap.model.Model#getName()
+ * @see #getModel()
+ * @generated
+ */
+ EAttribute getModel_Name();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.examples.rap.model.Model#getElements <em>Elements</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Elements</em>'.
+ * @see org.eclipse.emf.parsley.examples.rap.model.Model#getElements()
+ * @see #getModel()
+ * @generated
+ */
+ EReference getModel_Elements();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.parsley.examples.rap.model.Model#getItems <em>Items</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Items</em>'.
+ * @see org.eclipse.emf.parsley.examples.rap.model.Model#getItems()
+ * @see #getModel()
+ * @generated
+ */
+ EReference getModel_Items();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.rap.model.Element <em>Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Element</em>'.
+ * @see org.eclipse.emf.parsley.examples.rap.model.Element
+ * @generated
+ */
+ EClass getElement();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.rap.model.Element#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.parsley.examples.rap.model.Element#getName()
+ * @see #getElement()
+ * @generated
+ */
+ EAttribute getElement_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.rap.model.Element#getAge <em>Age</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Age</em>'.
+ * @see org.eclipse.emf.parsley.examples.rap.model.Element#getAge()
+ * @see #getElement()
+ * @generated
+ */
+ EAttribute getElement_Age();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.parsley.examples.rap.model.Element#getItems <em>Items</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Items</em>'.
+ * @see org.eclipse.emf.parsley.examples.rap.model.Element#getItems()
+ * @see #getElement()
+ * @generated
+ */
+ EReference getElement_Items();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.parsley.examples.rap.model.Item <em>Item</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Item</em>'.
+ * @see org.eclipse.emf.parsley.examples.rap.model.Item
+ * @generated
+ */
+ EClass getItem();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.parsley.examples.rap.model.Item#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.parsley.examples.rap.model.Item#getName()
+ * @see #getItem()
+ * @generated
+ */
+ EAttribute getItem_Name();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ ModelFactory getModelFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.rap.model.impl.ModelImpl <em>Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.rap.model.impl.ModelImpl
+ * @see org.eclipse.emf.parsley.examples.rap.model.impl.ModelPackageImpl#getModel()
+ * @generated
+ */
+ EClass MODEL = eINSTANCE.getModel();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MODEL__NAME = eINSTANCE.getModel_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Elements</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL__ELEMENTS = eINSTANCE.getModel_Elements();
+
+ /**
+ * The meta object literal for the '<em><b>Items</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL__ITEMS = eINSTANCE.getModel_Items();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.rap.model.impl.ElementImpl <em>Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.rap.model.impl.ElementImpl
+ * @see org.eclipse.emf.parsley.examples.rap.model.impl.ModelPackageImpl#getElement()
+ * @generated
+ */
+ EClass ELEMENT = eINSTANCE.getElement();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ELEMENT__NAME = eINSTANCE.getElement_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Age</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ELEMENT__AGE = eINSTANCE.getElement_Age();
+
+ /**
+ * The meta object literal for the '<em><b>Items</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ELEMENT__ITEMS = eINSTANCE.getElement_Items();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.parsley.examples.rap.model.impl.ItemImpl <em>Item</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.rap.model.impl.ItemImpl
+ * @see org.eclipse.emf.parsley.examples.rap.model.impl.ModelPackageImpl#getItem()
+ * @generated
+ */
+ EClass ITEM = eINSTANCE.getItem();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ITEM__NAME = eINSTANCE.getItem_Name();
+
+ }
+
+} //ModelPackage
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ElementImpl.java b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ElementImpl.java
new file mode 100644
index 000000000..39ee25665
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ElementImpl.java
@@ -0,0 +1,256 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.rap.model.impl;
+
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.parsley.examples.rap.model.Element;
+import org.eclipse.emf.parsley.examples.rap.model.Item;
+import org.eclipse.emf.parsley.examples.rap.model.ModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.rap.model.impl.ElementImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.rap.model.impl.ElementImpl#getAge <em>Age</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.rap.model.impl.ElementImpl#getItems <em>Items</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ElementImpl extends EObjectImpl implements Element {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = "";
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getAge() <em>Age</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAge()
+ * @generated
+ * @ordered
+ */
+ protected static final int AGE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getAge() <em>Age</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAge()
+ * @generated
+ * @ordered
+ */
+ protected int age = AGE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getItems() <em>Items</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getItems()
+ * @generated
+ * @ordered
+ */
+ protected EList<Item> items;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ModelPackage.Literals.ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.ELEMENT__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getAge() {
+ return age;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAge(int newAge) {
+ int oldAge = age;
+ age = newAge;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.ELEMENT__AGE, oldAge, age));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Item> getItems() {
+ if (items == null) {
+ items = new EObjectResolvingEList<Item>(Item.class, this, ModelPackage.ELEMENT__ITEMS);
+ }
+ return items;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ModelPackage.ELEMENT__NAME:
+ return getName();
+ case ModelPackage.ELEMENT__AGE:
+ return getAge();
+ case ModelPackage.ELEMENT__ITEMS:
+ return getItems();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ModelPackage.ELEMENT__NAME:
+ setName((String)newValue);
+ return;
+ case ModelPackage.ELEMENT__AGE:
+ setAge((Integer)newValue);
+ return;
+ case ModelPackage.ELEMENT__ITEMS:
+ getItems().clear();
+ getItems().addAll((Collection<? extends Item>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ModelPackage.ELEMENT__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ModelPackage.ELEMENT__AGE:
+ setAge(AGE_EDEFAULT);
+ return;
+ case ModelPackage.ELEMENT__ITEMS:
+ getItems().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ModelPackage.ELEMENT__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ModelPackage.ELEMENT__AGE:
+ return age != AGE_EDEFAULT;
+ case ModelPackage.ELEMENT__ITEMS:
+ return items != null && !items.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", age: ");
+ result.append(age);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ElementImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ItemImpl.java b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ItemImpl.java
new file mode 100644
index 000000000..88e79be6b
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ItemImpl.java
@@ -0,0 +1,163 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.rap.model.impl;
+
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.parsley.examples.rap.model.Item;
+import org.eclipse.emf.parsley.examples.rap.model.ModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.rap.model.impl.ItemImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ItemImpl extends EObjectImpl implements Item {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ItemImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ModelPackage.Literals.ITEM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.ITEM__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ModelPackage.ITEM__NAME:
+ return getName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ModelPackage.ITEM__NAME:
+ setName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ModelPackage.ITEM__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ModelPackage.ITEM__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ItemImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ModelFactoryImpl.java b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ModelFactoryImpl.java
new file mode 100644
index 000000000..5c605d370
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ModelFactoryImpl.java
@@ -0,0 +1,117 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.rap.model.impl;
+
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.parsley.examples.rap.model.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ModelFactoryImpl extends EFactoryImpl implements ModelFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ModelFactory init() {
+ try {
+ ModelFactory theModelFactory = (ModelFactory)EPackage.Registry.INSTANCE.getEFactory("http://model/1.0");
+ if (theModelFactory != null) {
+ return theModelFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new ModelFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case ModelPackage.MODEL: return createModel();
+ case ModelPackage.ELEMENT: return createElement();
+ case ModelPackage.ITEM: return createItem();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Model createModel() {
+ ModelImpl model = new ModelImpl();
+ return model;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element createElement() {
+ ElementImpl element = new ElementImpl();
+ return element;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Item createItem() {
+ ItemImpl item = new ItemImpl();
+ return item;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelPackage getModelPackage() {
+ return (ModelPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static ModelPackage getPackage() {
+ return ModelPackage.eINSTANCE;
+ }
+
+} //ModelFactoryImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ModelImpl.java b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ModelImpl.java
new file mode 100644
index 000000000..d376cc58b
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ModelImpl.java
@@ -0,0 +1,256 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.rap.model.impl;
+
+
+import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.parsley.examples.rap.model.Element;
+import org.eclipse.emf.parsley.examples.rap.model.Item;
+import org.eclipse.emf.parsley.examples.rap.model.Model;
+import org.eclipse.emf.parsley.examples.rap.model.ModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.parsley.examples.rap.model.impl.ModelImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.rap.model.impl.ModelImpl#getElements <em>Elements</em>}</li>
+ * <li>{@link org.eclipse.emf.parsley.examples.rap.model.impl.ModelImpl#getItems <em>Items</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ModelImpl extends EObjectImpl implements Model {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getElements() <em>Elements</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getElements()
+ * @generated
+ * @ordered
+ */
+ protected EList<Element> elements;
+
+ /**
+ * The cached value of the '{@link #getItems() <em>Items</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getItems()
+ * @generated
+ * @ordered
+ */
+ protected EList<Item> items;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ModelPackage.Literals.MODEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MODEL__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Element> getElements() {
+ if (elements == null) {
+ elements = new EObjectContainmentEList<Element>(Element.class, this, ModelPackage.MODEL__ELEMENTS);
+ }
+ return elements;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Item> getItems() {
+ if (items == null) {
+ items = new EObjectContainmentEList<Item>(Item.class, this, ModelPackage.MODEL__ITEMS);
+ }
+ return items;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ModelPackage.MODEL__ELEMENTS:
+ return ((InternalEList<?>)getElements()).basicRemove(otherEnd, msgs);
+ case ModelPackage.MODEL__ITEMS:
+ return ((InternalEList<?>)getItems()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ModelPackage.MODEL__NAME:
+ return getName();
+ case ModelPackage.MODEL__ELEMENTS:
+ return getElements();
+ case ModelPackage.MODEL__ITEMS:
+ return getItems();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ModelPackage.MODEL__NAME:
+ setName((String)newValue);
+ return;
+ case ModelPackage.MODEL__ELEMENTS:
+ getElements().clear();
+ getElements().addAll((Collection<? extends Element>)newValue);
+ return;
+ case ModelPackage.MODEL__ITEMS:
+ getItems().clear();
+ getItems().addAll((Collection<? extends Item>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ModelPackage.MODEL__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ModelPackage.MODEL__ELEMENTS:
+ getElements().clear();
+ return;
+ case ModelPackage.MODEL__ITEMS:
+ getItems().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ModelPackage.MODEL__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ModelPackage.MODEL__ELEMENTS:
+ return elements != null && !elements.isEmpty();
+ case ModelPackage.MODEL__ITEMS:
+ return items != null && !items.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ModelImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ModelPackageImpl.java b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ModelPackageImpl.java
new file mode 100644
index 000000000..c849253b6
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/impl/ModelPackageImpl.java
@@ -0,0 +1,286 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.rap.model.impl;
+
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.parsley.examples.rap.model.Element;
+import org.eclipse.emf.parsley.examples.rap.model.Item;
+import org.eclipse.emf.parsley.examples.rap.model.Model;
+import org.eclipse.emf.parsley.examples.rap.model.ModelFactory;
+import org.eclipse.emf.parsley.examples.rap.model.ModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ModelPackageImpl extends EPackageImpl implements ModelPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass modelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass elementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass itemEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.emf.parsley.examples.rap.model.ModelPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ModelPackageImpl() {
+ super(eNS_URI, ModelFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link ModelPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static ModelPackage init() {
+ if (isInited) return (ModelPackage)EPackage.Registry.INSTANCE.getEPackage(ModelPackage.eNS_URI);
+
+ // Obtain or create and register package
+ ModelPackageImpl theModelPackage = (ModelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ModelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ModelPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theModelPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theModelPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theModelPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(ModelPackage.eNS_URI, theModelPackage);
+ return theModelPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getModel() {
+ return modelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getModel_Name() {
+ return (EAttribute)modelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModel_Elements() {
+ return (EReference)modelEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModel_Items() {
+ return (EReference)modelEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getElement() {
+ return elementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getElement_Name() {
+ return (EAttribute)elementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getElement_Age() {
+ return (EAttribute)elementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getElement_Items() {
+ return (EReference)elementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getItem() {
+ return itemEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getItem_Name() {
+ return (EAttribute)itemEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelFactory getModelFactory() {
+ return (ModelFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ modelEClass = createEClass(MODEL);
+ createEAttribute(modelEClass, MODEL__NAME);
+ createEReference(modelEClass, MODEL__ELEMENTS);
+ createEReference(modelEClass, MODEL__ITEMS);
+
+ elementEClass = createEClass(ELEMENT);
+ createEAttribute(elementEClass, ELEMENT__NAME);
+ createEAttribute(elementEClass, ELEMENT__AGE);
+ createEReference(elementEClass, ELEMENT__ITEMS);
+
+ itemEClass = createEClass(ITEM);
+ createEAttribute(itemEClass, ITEM__NAME);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(modelEClass, Model.class, "Model", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getModel_Name(), ecorePackage.getEString(), "name", null, 0, 1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModel_Elements(), this.getElement(), null, "elements", null, 0, -1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModel_Items(), this.getItem(), null, "items", null, 0, -1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(elementEClass, Element.class, "Element", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getElement_Name(), ecorePackage.getEString(), "name", "", 0, 1, Element.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getElement_Age(), ecorePackage.getEInt(), "age", null, 0, 1, Element.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getElement_Items(), this.getItem(), null, "items", null, 0, -1, Element.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(itemEClass, Item.class, "Item", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getItem_Name(), ecorePackage.getEString(), "name", null, 0, 1, Item.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //ModelPackageImpl
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/util/ModelAdapterFactory.java b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/util/ModelAdapterFactory.java
new file mode 100644
index 000000000..7a4ca7236
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/util/ModelAdapterFactory.java
@@ -0,0 +1,156 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.rap.model.util;
+
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.parsley.examples.rap.model.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.rap.model.ModelPackage
+ * @generated
+ */
+public class ModelAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ModelPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = ModelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelSwitch<Adapter> modelSwitch =
+ new ModelSwitch<Adapter>() {
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter caseElement(Element object) {
+ return createElementAdapter();
+ }
+ @Override
+ public Adapter caseItem(Item object) {
+ return createItemAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.rap.model.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.rap.model.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.rap.model.Element <em>Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.rap.model.Element
+ * @generated
+ */
+ public Adapter createElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.parsley.examples.rap.model.Item <em>Item</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.parsley.examples.rap.model.Item
+ * @generated
+ */
+ public Adapter createItemAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //ModelAdapterFactory
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/util/ModelSwitch.java b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/util/ModelSwitch.java
new file mode 100644
index 000000000..25c0b2ea4
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.model/src/org/eclipse/emf/parsley/examples/rap/model/util/ModelSwitch.java
@@ -0,0 +1,152 @@
+/**
+ */
+package org.eclipse.emf.parsley.examples.rap.model.util;
+
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.emf.parsley.examples.rap.model.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.parsley.examples.rap.model.ModelPackage
+ * @generated
+ */
+public class ModelSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ModelPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelSwitch() {
+ if (modelPackage == null) {
+ modelPackage = ModelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case ModelPackage.MODEL: {
+ Model model = (Model)theEObject;
+ T result = caseModel(model);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.ELEMENT: {
+ Element element = (Element)theEObject;
+ T result = caseElement(element);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ModelPackage.ITEM: {
+ Item item = (Item)theEObject;
+ T result = caseItem(item);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseElement(Element object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Item</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Item</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseItem(Item object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //ModelSwitch
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/.classpath b/examples/org.eclipse.emf.parsley.examples.rap.ui/.classpath
new file mode 100644
index 000000000..ad32c83a7
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/.project b/examples/org.eclipse.emf.parsley.examples.rap.ui/.project
new file mode 100644
index 000000000..166d2219d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.rap.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.parsley.examples.rap.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..c537b6306
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/Emf_Components_RAP_Launch.launch b/examples/org.eclipse.emf.parsley.examples.rap.ui/Emf_Components_RAP_Launch.launch
new file mode 100644
index 000000000..683f6db64
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/Emf_Components_RAP_Launch.launch
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.rap.ui.launch.RAPLauncher">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="false"/>
+<booleanAttribute key="clearws" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/Emf_Components_RAP_Launch"/>
+<booleanAttribute key="default" value="true"/>
+<booleanAttribute key="default_auto_start" value="true"/>
+<intAttribute key="default_start_level" value="4"/>
+<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.emf.examples.library,org.eclipse.emf.examples.library.edit,org.eclipse.emf.examples.library.editor"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true&#10;-Dorg.eclipse.equinox.http.jetty.log.stderr.threshold=info"/>
+<stringAttribute key="org.eclipse.rap.launch.browserMode" value="INTERNAL"/>
+<stringAttribute key="org.eclipse.rap.launch.contextpath" value=""/>
+<stringAttribute key="org.eclipse.rap.launch.dataLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.rap.ui.launch/Emf_Components_RAP_Launch"/>
+<stringAttribute key="org.eclipse.rap.launch.entryPoint" value="org.eclipse.emf.parsley.examples.rap.ui.viewapp"/>
+<stringAttribute key="org.eclipse.rap.launch.libraryVariant" value="STANDARD"/>
+<booleanAttribute key="org.eclipse.rap.launch.openBrowser" value="true"/>
+<intAttribute key="org.eclipse.rap.launch.port" value="10080"/>
+<stringAttribute key="org.eclipse.rap.launch.servletName" value="view"/>
+<intAttribute key="org.eclipse.rap.launch.sessionTimeout" value="0"/>
+<booleanAttribute key="org.eclipse.rap.launch.terminatePrevious" value="true"/>
+<booleanAttribute key="org.eclipse.rap.launch.useDefaultDataLocation" value="true"/>
+<booleanAttribute key="org.eclipse.rap.launch.useManualContextPath" value="false"/>
+<booleanAttribute key="org.eclipse.rap.launch.useManualPort" value="false"/>
+<booleanAttribute key="org.eclipse.rap.launch.useSessionTimeout" value="false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="target_bundles" value="com.google.guava@default:default,com.google.inject@default:default,com.ibm.icu.base@default:default,javax.inject@default:default,javax.servlet@default:default,org.antlr.runtime@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.log4j@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change.edit@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.rap.common.ui@default:default,org.eclipse.emf.rap.edit.ui@default:default,org.eclipse.emf.rap@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.http.servletbridge@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.servletbridge.extensionbundle@default:false,org.eclipse.equinox.servletbridge@default:default,org.eclipse.equinox.util@default:default,org.eclipse.help@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.rap.demo.databinding@default:default,org.eclipse.rap.demo@default:default,org.eclipse.rap.design.example@default:default,org.eclipse.rap.jface.databinding@default:default,org.eclipse.rap.jface@default:default,org.eclipse.rap.junit.runtime@default:default,org.eclipse.rap.junit@default:default,org.eclipse.rap.rwt.osgi@default:default,org.eclipse.rap.rwt@default:default,org.eclipse.rap.ui.cheatsheets@default:default,org.eclipse.rap.ui.forms@default:default,org.eclipse.rap.ui.views@default:default,org.eclipse.rap.ui.workbench@default:default,org.eclipse.rap.ui@default:default,org.junit@default:default"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<stringAttribute key="workspace_bundles" value="org.eclipse.emf.parsley.examples.rap.model@default:default,org.eclipse.emf.parsley.examples.rap.ui@default:default,org.eclipse.emf.parsley.views@default:default,org.eclipse.emf.parsley.xtext@default:default,org.eclipse.emf.parsley@default:default"/>
+</launchConfiguration>
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.parsley.examples.rap.ui/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..524903bc0
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Emf Components RAP Example Ui
+Bundle-SymbolicName: org.eclipse.emf.parsley.examples.rap.ui;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.eclipse.emf.parsley.examples.rap.ui.Activator
+Bundle-Vendor: RCP-VISION
+Require-Bundle: org.eclipse.emf.parsley.examples.rap.model;bundle-version="1.0.0",
+ org.eclipse.emf.parsley.rap.views;bundle-version="0.1.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Import-Package: javax.servlet;version="2.4.0",
+ javax.servlet.http;version="2.4.0"
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/build.properties b/examples/org.eclipse.emf.parsley.examples.rap.ui/build.properties
new file mode 100644
index 000000000..0d3d3a745
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+ META-INF/,\
+ .,\
+ icons/
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/icons/component.jpg b/examples/org.eclipse.emf.parsley.examples.rap.ui/icons/component.jpg
new file mode 100644
index 000000000..d0ebf00f0
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/icons/component.jpg
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/icons/detail.jpg b/examples/org.eclipse.emf.parsley.examples.rap.ui/icons/detail.jpg
new file mode 100644
index 000000000..9919103cd
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/icons/detail.jpg
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/icons/table.jpg b/examples/org.eclipse.emf.parsley.examples.rap.ui/icons/table.jpg
new file mode 100644
index 000000000..81716971d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/icons/table.jpg
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/icons/view.jpg b/examples/org.eclipse.emf.parsley.examples.rap.ui/icons/view.jpg
new file mode 100644
index 000000000..81716971d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/icons/view.jpg
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/old/it.rcpvision.emf.components.examples.rap.ui.RAP.launch b/examples/org.eclipse.emf.parsley.examples.rap.ui/old/it.rcpvision.emf.components.examples.rap.ui.RAP.launch
new file mode 100644
index 000000000..2deb1301d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/old/it.rcpvision.emf.components.examples.rap.ui.RAP.launch
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.rap.ui.launch.RAPLauncher">
+<setAttribute key="additional_plugins"/>
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="false"/>
+<booleanAttribute key="clearws" value="true"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/org.eclipse.emf.parsley.examples.rap.ui.RAP"/>
+<booleanAttribute key="default" value="false"/>
+<booleanAttribute key="default_auto_start" value="true"/>
+<intAttribute key="default_start_level" value="4"/>
+<stringAttribute key="featureDefaultLocation" value="workspace"/>
+<stringAttribute key="featurePluginResolution" value="workspace"/>
+<booleanAttribute key="includeOptional" value="false"/>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -console -consolelog"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dorg.eclipse.equinox.http.jetty.log.stderr.threshold=info"/>
+<stringAttribute key="org.eclipse.rap.launch.browserMode" value="INTERNAL"/>
+<stringAttribute key="org.eclipse.rap.launch.contextpath" value=""/>
+<stringAttribute key="org.eclipse.rap.launch.dataLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.rap.ui.launch/org.eclipse.emf.parsley.examples.rap.ui.RAP"/>
+<stringAttribute key="org.eclipse.rap.launch.entryPoint" value="org.eclipse.emf.parsley.examples.rap.ui.viewapp"/>
+<stringAttribute key="org.eclipse.rap.launch.libraryVariant" value="STANDARD"/>
+<stringAttribute key="org.eclipse.rap.launch.logLevel" value="OFF"/>
+<booleanAttribute key="org.eclipse.rap.launch.openBrowser" value="true"/>
+<intAttribute key="org.eclipse.rap.launch.port" value="10080"/>
+<stringAttribute key="org.eclipse.rap.launch.servletName" value="view"/>
+<intAttribute key="org.eclipse.rap.launch.sessionTimeout" value="0"/>
+<booleanAttribute key="org.eclipse.rap.launch.terminatePrevious" value="true"/>
+<booleanAttribute key="org.eclipse.rap.launch.useDefaultDataLocation" value="true"/>
+<booleanAttribute key="org.eclipse.rap.launch.useManualContextPath" value="false"/>
+<booleanAttribute key="org.eclipse.rap.launch.useManualPort" value="false"/>
+<booleanAttribute key="org.eclipse.rap.launch.useSessionTimeout" value="false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<setAttribute key="selected_features">
+<setEntry value="org.eclipse.emf.parsley.examples.rap.feature:default"/>
+</setAttribute>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+</launchConfiguration>
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/old/it.rcpvision.emf.components.examples.rap.ui.launch b/examples/org.eclipse.emf.parsley.examples.rap.ui/old/it.rcpvision.emf.components.examples.rap.ui.launch
new file mode 100644
index 000000000..9dcc148c5
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/old/it.rcpvision.emf.components.examples.rap.ui.launch
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.rap.ui.launch.RAPLauncher">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="false"/>
+<booleanAttribute key="clearws" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/org.eclipse.emf.parsley.examples.rap.ui"/>
+<booleanAttribute key="default" value="true"/>
+<booleanAttribute key="default_auto_start" value="true"/>
+<intAttribute key="default_start_level" value="4"/>
+<booleanAttribute key="includeOptional" value="false"/>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -console -consolelog"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dorg.eclipse.equinox.http.jetty.log.stderr.threshold=info"/>
+<stringAttribute key="org.eclipse.rap.launch.browserMode" value="INTERNAL"/>
+<stringAttribute key="org.eclipse.rap.launch.contextpath" value=""/>
+<stringAttribute key="org.eclipse.rap.launch.dataLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.rap.ui.launch/org.eclipse.emf.parsley.examples.rap.ui"/>
+<stringAttribute key="org.eclipse.rap.launch.entryPoint" value="org.eclipse.emf.parsley.examples.rap.ui.viewapp"/>
+<stringAttribute key="org.eclipse.rap.launch.libraryVariant" value="STANDARD"/>
+<stringAttribute key="org.eclipse.rap.launch.logLevel" value="OFF"/>
+<booleanAttribute key="org.eclipse.rap.launch.openBrowser" value="true"/>
+<intAttribute key="org.eclipse.rap.launch.port" value="10080"/>
+<stringAttribute key="org.eclipse.rap.launch.servletName" value="view"/>
+<intAttribute key="org.eclipse.rap.launch.sessionTimeout" value="0"/>
+<booleanAttribute key="org.eclipse.rap.launch.terminatePrevious" value="true"/>
+<booleanAttribute key="org.eclipse.rap.launch.useDefaultDataLocation" value="true"/>
+<booleanAttribute key="org.eclipse.rap.launch.useManualContextPath" value="false"/>
+<booleanAttribute key="org.eclipse.rap.launch.useManualPort" value="false"/>
+<booleanAttribute key="org.eclipse.rap.launch.useSessionTimeout" value="false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="target_bundles" value="com.google.guava@default:default,com.google.inject@default:default,com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,org.apache.batik.css@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.log4j@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.rap.common.ui@default:default,org.eclipse.emf.rap.edit.ui@default:default,org.eclipse.emf.rap@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.help@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.rap.design.example@default:default,org.eclipse.rap.jface.databinding@default:default,org.eclipse.rap.jface@default:default,org.eclipse.rap.rwt.osgi@default:default,org.eclipse.rap.rwt@default:default,org.eclipse.rap.ui.forms@default:default,org.eclipse.rap.ui.views@default:default,org.eclipse.rap.ui.workbench@default:default,org.eclipse.rap.ui@default:default,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.xtext.logging@default:false,org.w3c.css.sac@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<stringAttribute key="workspace_bundles" value="org.eclipse.emf.parsley.examples.rap.model@default:default,org.eclipse.emf.parsley.examples.rap.ui@default:default,org.eclipse.emf.parsley.views@default:default,org.eclipse.emf.parsley.xtext@default:default,org.eclipse.emf.parsley@default:default"/>
+</launchConfiguration>
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/plugin.xml b/examples/org.eclipse.emf.parsley.examples.rap.ui/plugin.xml
new file mode 100644
index 000000000..66f533a7c
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/plugin.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+ <extension
+ id="viewapp"
+ point="org.eclipse.core.runtime.applications">
+ <application
+ thread="main"
+ cardinality="singleton-global"
+ visible="true">
+ <run
+ class="org.eclipse.emf.parsley.examples.rap.ui.Application">
+ </run>
+ </application>
+ </extension>
+ <extension
+ point="org.eclipse.ui.perspectives">
+ <perspective
+ name="RAP Perspective"
+ class="org.eclipse.emf.parsley.examples.rap.ui.Perspective"
+ id="org.eclipse.emf.parsley.examples.rap.ui.perspective">
+ </perspective>
+ </extension>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ name="View"
+ class="org.eclipse.emf.parsley.examples.rap.ui.ExecutableExtensionFactory:org.eclipse.emf.parsley.examples.rap.ui.View"
+ id="org.eclipse.emf.parsley.examples.rap.ui.view">
+ </view>
+ <view
+ class="org.eclipse.emf.parsley.examples.rap.ui.ExecutableExtensionFactory:org.eclipse.emf.parsley.examples.rap.ui.SaveableView"
+ id="org.eclipse.emf.parsley.examples.rap.ui.saveableview"
+ name="Saveable View">
+ </view>
+ </extension>
+ <extension
+ point="org.eclipse.rap.ui.branding">
+ <branding
+ servletName="view"
+ themeId="org.eclipse.rap.design.example.fancy.theme"
+ defaultEntrypointId="org.eclipse.emf.parsley.examples.rap.ui.viewapp"
+ title="RAP Single View"
+ id="org.eclipse.emf.parsley.examples.rap.ui.branding">
+ </branding>
+ </extension>
+
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/Activator.java b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/Activator.java
new file mode 100644
index 000000000..d83c1a2d2
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/Activator.java
@@ -0,0 +1,61 @@
+package org.eclipse.emf.parsley.examples.rap.ui;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.parsley.examples.rap.ui"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+ /**
+ * Returns an image descriptor for the image file at the given
+ * plug-in relative path
+ *
+ * @param path the path
+ * @return the image descriptor
+ */
+ public static ImageDescriptor getImageDescriptor(String path) {
+ return imageDescriptorFromPlugin(PLUGIN_ID, path);
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/Application.java b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/Application.java
new file mode 100644
index 000000000..6fc42b316
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/Application.java
@@ -0,0 +1,24 @@
+package org.eclipse.emf.parsley.examples.rap.ui;
+
+import org.eclipse.equinox.app.IApplication;
+import org.eclipse.equinox.app.IApplicationContext;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.application.WorkbenchAdvisor;
+
+/**
+ * This class controls all aspects of the application's execution
+ * and is contributed through the plugin.xml.
+ */
+public class Application implements IApplication {
+
+ public Object start(IApplicationContext context) throws Exception {
+ Display display = PlatformUI.createDisplay();
+ WorkbenchAdvisor advisor = new ApplicationWorkbenchAdvisor();
+ return PlatformUI.createAndRunWorkbench(display, advisor);
+ }
+
+ public void stop() {
+ // Do nothing
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/ApplicationActionBarAdvisor.java b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/ApplicationActionBarAdvisor.java
new file mode 100644
index 000000000..c7c595bf6
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/ApplicationActionBarAdvisor.java
@@ -0,0 +1,46 @@
+package org.eclipse.emf.parsley.examples.rap.ui;
+
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.eclipse.ui.application.ActionBarAdvisor;
+import org.eclipse.ui.application.IActionBarConfigurer;
+
+/**
+ * Creates, adds and disposes actions for the menus and action bars of each
+ * workbench window.
+ */
+public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
+
+ public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
+ super(configurer);
+ }
+
+ // Actions - important to allocate these only in makeActions, and then use
+ // them in the fill methods. This ensures that the actions aren't recreated
+ // in the fill methods.
+ private IWorkbenchAction exitAction;
+
+ private IWorkbenchAction saveAction;
+
+ protected void makeActions(IWorkbenchWindow window) {
+ // Creates the actions and registers them. Registering also
+ // provides automatic disposal of the actions when the window is closed.
+ exitAction = ActionFactory.QUIT.create(window);
+ register(exitAction);
+ saveAction = ActionFactory.SAVE.create(window);
+ register(saveAction);
+ }
+
+ protected void fillMenuBar(IMenuManager menuBar) {
+ MenuManager fileMenu = new MenuManager("&File",
+ IWorkbenchActionConstants.M_FILE);
+ menuBar.add(fileMenu);
+ fileMenu.add(exitAction);
+ fileMenu.add(saveAction);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/ApplicationWorkbenchAdvisor.java b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/ApplicationWorkbenchAdvisor.java
new file mode 100644
index 000000000..466d94abc
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/ApplicationWorkbenchAdvisor.java
@@ -0,0 +1,22 @@
+package org.eclipse.emf.parsley.examples.rap.ui;
+
+import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
+import org.eclipse.ui.application.WorkbenchAdvisor;
+import org.eclipse.ui.application.WorkbenchWindowAdvisor;
+
+/**
+ * This workbench advisor creates the window advisor, and specifies
+ * the perspective id for the initial window.
+ */
+public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
+
+ private static final String PERSPECTIVE_ID = "org.eclipse.emf.parsley.examples.rap.ui.perspective";
+
+ public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
+ return new ApplicationWorkbenchWindowAdvisor(configurer);
+ }
+
+ public String getInitialWindowPerspectiveId() {
+ return PERSPECTIVE_ID;
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/ApplicationWorkbenchWindowAdvisor.java b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/ApplicationWorkbenchWindowAdvisor.java
new file mode 100644
index 000000000..44c232aa9
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/ApplicationWorkbenchWindowAdvisor.java
@@ -0,0 +1,31 @@
+package org.eclipse.emf.parsley.examples.rap.ui;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.ui.application.ActionBarAdvisor;
+import org.eclipse.ui.application.IActionBarConfigurer;
+import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
+import org.eclipse.ui.application.WorkbenchWindowAdvisor;
+
+/**
+ * Configures the initial size and appearance of a workbench window.
+ */
+public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
+
+ public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
+ super(configurer);
+ }
+
+ public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
+ return new ApplicationActionBarAdvisor(configurer);
+ }
+
+ public void preWindowOpen() {
+ IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
+ configurer.setInitialSize(new Point(700, 500));
+ configurer.setShowCoolBar(false);
+ configurer.setShowStatusLine(false);
+ configurer.setTitle("RAP with a View");
+ configurer.setShellStyle(SWT.TITLE | SWT.RESIZE);
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/ExecutableExtensionFactory.java b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/ExecutableExtensionFactory.java
new file mode 100644
index 000000000..e1786396f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/ExecutableExtensionFactory.java
@@ -0,0 +1,21 @@
+package org.eclipse.emf.parsley.examples.rap.ui;
+
+
+import org.eclipse.emf.parsley.EmfComponentsExtensionFactory;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.osgi.framework.Bundle;
+
+public class ExecutableExtensionFactory extends
+ EmfComponentsExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return Activator.getDefault().getBundle();
+ }
+
+ @Override
+ protected EmfComponentsGuiceModule getModule() {
+ return new GuiceModule(Activator.getDefault());
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/GuiceModule.java b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/GuiceModule.java
new file mode 100644
index 000000000..f8b22664a
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/GuiceModule.java
@@ -0,0 +1,101 @@
+package org.eclipse.emf.parsley.examples.rap.ui;
+
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.examples.rap.model.Element;
+import org.eclipse.emf.parsley.examples.rap.model.Item;
+import org.eclipse.emf.parsley.examples.rap.model.Model;
+import org.eclipse.emf.parsley.examples.rap.model.ModelFactory;
+import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+import org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+import com.google.inject.Inject;
+
+public class GuiceModule extends EmfComponentsGuiceModule {
+
+ public static class CustomEmptyResourceInitializer extends
+ EmptyResourceInitializer {
+ public void initialize(org.eclipse.emf.ecore.resource.Resource resource) {
+ Model model = ModelFactory.eINSTANCE.createModel();
+ model.setName("My Model");
+
+ Element firstElement = addElement(model, "First Element", 1);
+ Element secondElement = addElement(model, "Second Element", 2);
+ addElement(model, "Third Element", 3);
+
+ Item firstItem = addItem(model, "First Item");
+ Item secondItem = addItem(model, "Second Item");
+ addItem(model, "Third Item");
+ addItem(model, "Fourth Item");
+
+ firstElement.getItems().add(firstItem);
+ firstElement.getItems().add(secondItem);
+
+ secondElement.getItems().add(firstItem);
+
+ resource.getContents().add(model);
+ }
+
+ private Element addElement(Model model, String name, int age) {
+ Element element = ModelFactory.eINSTANCE.createElement();
+ element.setName(name);
+ element.setAge(age);
+ model.getElements().add(element);
+ return element;
+ }
+
+ private Item addItem(Model model, String name) {
+ Item item = ModelFactory.eINSTANCE.createItem();
+ item.setName(name);
+ model.getItems().add(item);
+ return item;
+ }
+ }
+
+ public static class CustomLabelProvider extends ViewerLabelProvider {
+
+ @Inject
+ public CustomLabelProvider(AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+
+ public String text(Model o) {
+ return "Model: " + (o.getName() != null ? o.getName() : "NO NAME");
+ }
+
+ public Object image(Model o) {
+ return "component.jpg";
+ }
+
+ public String text(Element o) {
+ return "Element: "
+ + (o.getName() != null ? o.getName() : "NO NAME")
+ + " (" + o.getAge() + ")";
+ }
+
+ public Object image(Element o) {
+ return "detail.jpg";
+ }
+
+ public Object image(Item o) {
+ return "table.jpg";
+ }
+ }
+
+ public GuiceModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends ILabelProvider> bindILabelProvider() {
+ return CustomLabelProvider.class;
+ }
+
+ @Override
+ public Class<? extends EmptyResourceInitializer> bindEmptyResourceInitializer() {
+ return CustomEmptyResourceInitializer.class;
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/Perspective.java b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/Perspective.java
new file mode 100644
index 000000000..45156ef32
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/Perspective.java
@@ -0,0 +1,26 @@
+package org.eclipse.emf.parsley.examples.rap.ui;
+
+import org.eclipse.ui.IPageLayout;
+import org.eclipse.ui.IPerspectiveFactory;
+
+/**
+ * Configures the perspective layout. This class is contributed through the
+ * plugin.xml.
+ */
+public class Perspective implements IPerspectiveFactory {
+
+ public void createInitialLayout(IPageLayout layout) {
+ String editorArea = layout.getEditorArea();
+ layout.setEditorAreaVisible(false);
+ layout.setFixed(true);
+
+ layout.addStandaloneView(View.ID, true, IPageLayout.LEFT, .5f,
+ editorArea);
+ layout.addStandaloneView(SaveableView.ID, true, IPageLayout.LEFT, .5f,
+ editorArea);
+
+// IFolderLayout left =
+// layout.createFolder("bottom", IPageLayout.BOTTOM, (float) 0.26, editorArea);
+// left.addView(IPageLayout.ID_PROP_SHEET);
+ }
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/SaveableView.java b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/SaveableView.java
new file mode 100644
index 000000000..fe2f5879f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/SaveableView.java
@@ -0,0 +1,15 @@
+package org.eclipse.emf.parsley.examples.rap.ui;
+
+import org.eclipse.emf.parsley.views.AbstractSaveableTreeFormView;
+
+import org.eclipse.emf.common.util.URI;
+
+public class SaveableView extends AbstractSaveableTreeFormView {
+ public static final String ID = "org.eclipse.emf.parsley.examples.rap.ui.saveableview";
+
+ @Override
+ protected URI createResourceURI() {
+ return URI.createFileURI(System.getProperty("java.io.tmpdir")
+ + "/My.model");
+ }
+} \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/View.java b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/View.java
new file mode 100644
index 000000000..54f94d448
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.rap.ui/src/org/eclipse/emf/parsley/examples/rap/ui/View.java
@@ -0,0 +1,44 @@
+package org.eclipse.emf.parsley.examples.rap.ui;
+
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceImpl;
+import org.eclipse.emf.parsley.factories.TreeFormFactory;
+import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+import org.eclipse.emf.parsley.widgets.TreeFormComposite;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.part.ViewPart;
+
+import com.google.inject.Inject;
+
+public class View extends ViewPart {
+ public static final String ID = "org.eclipse.emf.parsley.examples.rap.ui.view";
+
+ @Inject private EmptyResourceInitializer emptyResourceInitializer;
+
+ @Inject private TreeFormFactory treeFormFactory;
+
+ protected TreeFormComposite treeFormComposite;
+
+ /**
+ * This is a callback that will allow us to create the viewer and initialize
+ * it.
+ */
+ public void createPartControl(Composite parent) {
+ treeFormComposite = treeFormFactory.createTreeFormMasterDetailComposite(parent,
+ SWT.BORDER);
+
+ Resource resource = new ResourceImpl();
+ emptyResourceInitializer.initialize(resource);
+
+ treeFormComposite.update(resource);
+ }
+
+ /**
+ * Passing the focus request to the viewer's control.
+ */
+ public void setFocus() {
+ treeFormComposite.setFocus();
+ }
+} \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.examples.views/.classpath b/examples/org.eclipse.emf.parsley.examples.views/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.views/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/org.eclipse.emf.parsley.examples.views/.project b/examples/org.eclipse.emf.parsley.examples.views/.project
new file mode 100644
index 000000000..954aeec81
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.views/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.views</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/org.eclipse.emf.parsley.examples.views/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.parsley.examples.views/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.views/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/org.eclipse.emf.parsley.examples.views/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.parsley.examples.views/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.views/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.parsley.examples.views/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.parsley.examples.views/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..61187e6bb
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.views/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Emf Components Examples
+Bundle-SymbolicName: org.eclipse.emf.parsley.examples.views;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-Activator: org.eclipse.emf.parsley.examples.Activator
+Require-Bundle: org.eclipse.ui;bundle-version="3.5.0",
+ org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.emf.parsley;bundle-version="0.1.0",
+ org.eclipse.emf.parsley.views;bundle-version="0.1.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/examples/org.eclipse.emf.parsley.examples.views/build.properties b/examples/org.eclipse.emf.parsley.examples.views/build.properties
new file mode 100644
index 000000000..6c480f39f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.views/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/
diff --git a/examples/org.eclipse.emf.parsley.examples.views/icons/component.jpg b/examples/org.eclipse.emf.parsley.examples.views/icons/component.jpg
new file mode 100644
index 000000000..d0ebf00f0
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.views/icons/component.jpg
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.views/icons/detail.jpg b/examples/org.eclipse.emf.parsley.examples.views/icons/detail.jpg
new file mode 100644
index 000000000..9919103cd
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.views/icons/detail.jpg
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.views/icons/table.jpg b/examples/org.eclipse.emf.parsley.examples.views/icons/table.jpg
new file mode 100644
index 000000000..81716971d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.views/icons/table.jpg
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.views/icons/view.jpg b/examples/org.eclipse.emf.parsley.examples.views/icons/view.jpg
new file mode 100644
index 000000000..81716971d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.views/icons/view.jpg
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.examples.views/old/models/My.extlibrary b/examples/org.eclipse.emf.parsley.examples.views/old/models/My.extlibrary
new file mode 100644
index 000000000..11d3d544f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.views/old/models/My.extlibrary
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<extlib:Library xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:extlib="http:///org/eclipse/emf/parsley/examples/library/extlibrary.ecore/0.1.0" address="Library's address" name="My Library">
+ <stock xsi:type="extlib:Book" title="Lorenzo's Book" author="//@writers.0"/>
+ <stock xsi:type="extlib:Book" title="Another Book" author="//@writers.0"/>
+ <stock xsi:type="extlib:VideoCassette" copies="1" title="My Video" cast="//@writers.0"/>
+ <writers address="writer's address" firstName="Lorenzo" lastName="Bettini" books="//@stock.0 //@stock.1"/>
+ <borrowers address="foo bar's address" firstName="Foo" lastName="Bar"/>
+</extlib:Library>
diff --git a/examples/org.eclipse.emf.parsley.examples.views/old/views/ResourceTreeFormView.java b/examples/org.eclipse.emf.parsley.examples.views/old/views/ResourceTreeFormView.java
new file mode 100644
index 000000000..456c04d0d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.views/old/views/ResourceTreeFormView.java
@@ -0,0 +1,40 @@
+package org.eclipse.emf.parsley.examples.views;
+
+import org.eclipse.emf.parsley.factories.TreeFormFactory;
+import org.eclipse.emf.parsley.widgets.TreeFormComposite;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.part.ViewPart;
+
+import com.google.inject.Inject;
+
+public class ResourceTreeFormView extends ViewPart {
+
+ @Inject
+ protected TreeFormFactory treeFormFactory;
+
+ protected TreeFormComposite treeFormComposite;
+
+ @Override
+ public void createPartControl(Composite parent) {
+ treeFormComposite = treeFormFactory.createTreeFormMasterDetailComposite(parent,
+ SWT.BORDER);
+
+ URI uri = URI.createPlatformResourceURI("/library/Library.xmi", true);
+ ResourceSet resourceSet = new ResourceSetImpl();
+ Resource resource = resourceSet.getResource(uri, true);
+
+ treeFormComposite.update(resource);
+ }
+
+ @Override
+ public void setFocus() {
+ treeFormComposite.setFocus();
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.views/old/views/SaveableResourceTableView.java b/examples/org.eclipse.emf.parsley.examples.views/old/views/SaveableResourceTableView.java
new file mode 100644
index 000000000..6a511a43f
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.views/old/views/SaveableResourceTableView.java
@@ -0,0 +1,30 @@
+package org.eclipse.emf.parsley.examples.views;
+
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.views.AbstractSaveableTableView;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.resource.Resource;
+
+public class SaveableResourceTableView extends
+ AbstractSaveableTableView {
+
+ @Override
+ protected Object getContents(Resource resource) {
+ Library library=(Library) resource.getContents().get(0);
+ return library.getBooks();
+ }
+
+ @Override
+ protected EClass getEClass() {
+ return EXTLibraryPackage.Literals.BOOK;
+ }
+
+ @Override
+ protected URI createResourceURI() {
+ return URI.createPlatformResourceURI("/library/Library.xmi", true);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.views/old/views/SaveableResourceTreeFormView.java b/examples/org.eclipse.emf.parsley.examples.views/old/views/SaveableResourceTreeFormView.java
new file mode 100644
index 000000000..586b46755
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.views/old/views/SaveableResourceTreeFormView.java
@@ -0,0 +1,14 @@
+package org.eclipse.emf.parsley.examples.views;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.parsley.views.AbstractSaveableTreeFormView;
+
+public class SaveableResourceTreeFormView extends AbstractSaveableTreeFormView{
+
+ @Override
+ protected URI createResourceURI() {
+ return URI.createPlatformResourceURI("/library/Library.xmi", true);
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.views/plugin.xml b/examples/org.eclipse.emf.parsley.examples.views/plugin.xml
new file mode 100644
index 000000000..77c6929d9
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.views/plugin.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ category="org.eclipse.emf.parsley"
+ class="org.eclipse.emf.parsley.examples.EmfComponentsExamplesExecutableExtensionFactory:org.eclipse.emf.parsley.views.OnSelectionTreeView"
+ icon="icons/view.jpg"
+ id="org.eclipse.emf.parsley.emftreeview"
+ name="Emf Tree View"
+ restorable="true">
+ </view>
+ <view
+ category="org.eclipse.emf.parsley"
+ class="org.eclipse.emf.parsley.examples.EmfComponentsExamplesExecutableExtensionFactory:org.eclipse.emf.parsley.views.OnSelectionListView"
+ icon="icons/view.jpg"
+ id="org.eclipse.emf.parsley.emflistview"
+ name="Emf List View"
+ restorable="true">
+ </view>
+ <view
+ category="org.eclipse.emf.parsley"
+ class="org.eclipse.emf.parsley.examples.EmfComponentsExamplesExecutableExtensionFactory:org.eclipse.emf.parsley.views.OnSelectionShowAllTableView"
+ icon="icons/view.jpg"
+ id="org.eclipse.emf.parsley.showalltableview"
+ name="Emf Show All Table View"
+ restorable="true">
+ </view>
+ <view
+ category="org.eclipse.emf.parsley"
+ class="org.eclipse.emf.parsley.examples.EmfComponentsExamplesExecutableExtensionFactory:org.eclipse.emf.parsley.views.OnSelectionFormView"
+ icon="icons/view.jpg"
+ id="org.eclipse.emf.parsley.formview"
+ name="Emf Form View"
+ restorable="true">
+ </view>
+ <view
+ category="org.eclipse.emf.parsley"
+ class="org.eclipse.emf.parsley.examples.EmfComponentsExamplesExecutableExtensionFactory:org.eclipse.emf.parsley.views.OnSelectionTreeFormView"
+ icon="icons/view.jpg"
+ id="org.eclipse.emf.parsley.treeformview"
+ name="Emf Tree Form View"
+ restorable="true">
+ </view>
+ <view
+ category="org.eclipse.emf.parsley"
+ class="org.eclipse.emf.parsley.examples.EmfComponentsExamplesExecutableExtensionFactory:org.eclipse.emf.parsley.views.OnSelectionTableFormView"
+ icon="icons/view.jpg"
+ id="org.eclipse.emf.parsley.tableformview"
+ name="Emf Table Form View"
+ restorable="true">
+ </view>
+ <category
+ id="org.eclipse.emf.parsley"
+ name="Emf Parsley">
+ </category>
+ </extension>
+
+</plugin>
diff --git a/examples/org.eclipse.emf.parsley.examples.views/src/org/eclipse/emf/parsley/examples/Activator.java b/examples/org.eclipse.emf.parsley.examples.views/src/org/eclipse/emf/parsley/examples/Activator.java
new file mode 100644
index 000000000..5ec2896ce
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.views/src/org/eclipse/emf/parsley/examples/Activator.java
@@ -0,0 +1,50 @@
+package org.eclipse.emf.parsley.examples;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.parsley.examples"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.views/src/org/eclipse/emf/parsley/examples/EmfComponentsExamplesExecutableExtensionFactory.java b/examples/org.eclipse.emf.parsley.examples.views/src/org/eclipse/emf/parsley/examples/EmfComponentsExamplesExecutableExtensionFactory.java
new file mode 100644
index 000000000..646ed96b0
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.views/src/org/eclipse/emf/parsley/examples/EmfComponentsExamplesExecutableExtensionFactory.java
@@ -0,0 +1,21 @@
+package org.eclipse.emf.parsley.examples;
+
+
+import org.eclipse.emf.parsley.EmfComponentsExtensionFactory;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.osgi.framework.Bundle;
+
+public class EmfComponentsExamplesExecutableExtensionFactory extends
+ EmfComponentsExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return Activator.getDefault().getBundle();
+ }
+
+ @Override
+ protected EmfComponentsGuiceModule getModule() {
+ return new EmfComponentsExamplesModule(Activator.getDefault());
+ }
+
+}
diff --git a/examples/org.eclipse.emf.parsley.examples.views/src/org/eclipse/emf/parsley/examples/EmfComponentsExamplesModule.java b/examples/org.eclipse.emf.parsley.examples.views/src/org/eclipse/emf/parsley/examples/EmfComponentsExamplesModule.java
new file mode 100644
index 000000000..3e631c0c3
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.examples.views/src/org/eclipse/emf/parsley/examples/EmfComponentsExamplesModule.java
@@ -0,0 +1,21 @@
+package org.eclipse.emf.parsley.examples;
+
+
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.builders.TableViewerColumnBuilder;
+import org.eclipse.emf.parsley.builders.TableViewerEditableColumnBuilder;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+public class EmfComponentsExamplesModule extends EmfComponentsGuiceModule {
+
+ public EmfComponentsExamplesModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends TableViewerColumnBuilder> bindTableViewerColumnBuilder() {
+ return TableViewerEditableColumnBuilder.class;
+ }
+
+
+}
diff --git a/examples/org.eclipse.emf.parsley.ui.examples/.classpath b/examples/org.eclipse.emf.parsley.ui.examples/.classpath
new file mode 100644
index 000000000..c83506765
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.ui.examples/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/examples/org.eclipse.emf.parsley.ui.examples/.externalToolBuilders/Build Zips.launch b/examples/org.eclipse.emf.parsley.ui.examples/.externalToolBuilders/Build Zips.launch
new file mode 100644
index 000000000..da9950d29
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.ui.examples/.externalToolBuilders/Build Zips.launch
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/>
+<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="it.xsemantics.xsemantics.ui.examples"/>
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED" value="false"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/it.xsemantics.xsemantics.ui.examples/build.xml}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,clean"/>
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${workspace_loc:/it.xsemantics.xsemantics.ui.examples}"/>
+</launchConfiguration>
diff --git a/examples/org.eclipse.emf.parsley.ui.examples/.project b/examples/org.eclipse.emf.parsley.ui.examples/.project
new file mode 100644
index 000000000..1560eaba6
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.ui.examples/.project
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.ui.examples</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.buckminster.ant.AntBuilder</name>
+ <arguments>
+ <dictionary>
+ <key>given.name</key>
+ <value>Ant tasks compile</value>
+ </dictionary>
+ <dictionary>
+ <key>script.file</key>
+ <value>build.xml</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/examples/org.eclipse.emf.parsley.ui.examples/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.emf.parsley.ui.examples/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.ui.examples/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/examples/org.eclipse.emf.parsley.ui.examples/.settings/org.eclipse.jdt.launching.prefs b/examples/org.eclipse.emf.parsley.ui.examples/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.ui.examples/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/examples/org.eclipse.emf.parsley.ui.examples/META-INF/MANIFEST.MF b/examples/org.eclipse.emf.parsley.ui.examples/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..9f9aca133
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.ui.examples/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMF Components Examples
+Bundle-SymbolicName: org.eclipse.emf.parsley.ui.examples;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-Vendor: RCP Vision
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: org.eclipse.ui;bundle-version="3.5.0",
+ org.eclipse.emf.common.ui;bundle-version="2.7.0",
+ org.eclipse.ui.ide;bundle-version="3.5.0",
+ org.eclipse.xtext.junit4;bundle-version="[2.4.2,2.5.0)",
+ org.eclipse.xtext.ui.junit;bundle-version="[2.4.2,2.5.0)"
diff --git a/examples/org.eclipse.emf.parsley.ui.examples/build.properties b/examples/org.eclipse.emf.parsley.ui.examples/build.properties
new file mode 100644
index 000000000..d9c640767
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.ui.examples/build.properties
@@ -0,0 +1,5 @@
+bin.includes = META-INF/,\
+ .,\
+ contents/,\
+ plugin.xml,\
+ icons/
diff --git a/examples/org.eclipse.emf.parsley.ui.examples/build.xml b/examples/org.eclipse.emf.parsley.ui.examples/build.xml
new file mode 100644
index 000000000..a51da21ea
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.ui.examples/build.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ======================================================================
+ May 25, 2010 10:34:57 AM
+
+ This ant script creates a zip file for each of Emf Parsley's example projects.
+
+ This is based on the Xtext's corresponding one.
+
+ If the examples would not be zipped the resulting file namens would be too long to be
+ handled my MS Windows. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=301858
+
+ Moritz Eysholdt
+ ====================================================================== -->
+<project name="project" default="zip_all_examples">
+
+ <property name="source" location="../" />
+ <property name="target_xtext" location="contents" />
+
+ <macrodef name="zip_example">
+ <attribute name="name" default="default" />
+ <attribute name="source" default="${source}" />
+ <attribute name="target" default="${target_xtext}" />
+ <sequential>
+ <delete file="@{target}/@{name}.zip" />
+ <zip destfile="@{target}/@{name}.zip" basedir="@{source}/@{name}" excludes="bin,bin/**,**/*._trace,**/*.smap,.antlr-generator*.jar,target,target/**,nodist,nodist/**,old,old/**" />
+ </sequential>
+ </macrodef>
+
+ <target name="zip_all_examples">
+ <zip_example name="org.eclipse.emf.parsley.examples.mail.rcp" />
+ <zip_example name="org.eclipse.emf.parsley.examples.mail.model" />
+ <zip_example name="org.eclipse.emf.parsley.examples.mail.accountsview" />
+ <zip_example name="org.eclipse.emf.parsley.examples.mail.mailsview" />
+ <zip_example name="org.eclipse.emf.parsley.examples.mail.messageview" />
+ <zip_example name="org.eclipse.emf.parsley.examples.mail.product.feature" source="../../features/" />
+ <zip_example name="org.eclipse.emf.parsley.examples.mail.product.site" source="../../releng/" />
+ <zip_example name="org.eclipse.emf.parsley.examples.firstexample" />
+ <zip_example name="org.eclipse.emf.examples.library" />
+ <zip_example name="org.eclipse.emf.examples.library.edit" />
+ <zip_example name="org.eclipse.emf.parsley.examples.views" />
+ </target>
+
+ <target name="clean">
+ <delete>
+ <fileset dir="${target_xtext}" includes="**/*.zip" />
+ </delete>
+ </target>
+
+</project>
diff --git a/examples/org.eclipse.emf.parsley.ui.examples/contents/.gitignore b/examples/org.eclipse.emf.parsley.ui.examples/contents/.gitignore
new file mode 100644
index 000000000..c96a04f00
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.ui.examples/contents/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore \ No newline at end of file
diff --git a/examples/org.eclipse.emf.parsley.ui.examples/icons/genproject.gif b/examples/org.eclipse.emf.parsley.ui.examples/icons/genproject.gif
new file mode 100644
index 000000000..3e8e1c20b
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.ui.examples/icons/genproject.gif
Binary files differ
diff --git a/examples/org.eclipse.emf.parsley.ui.examples/plugin.xml b/examples/org.eclipse.emf.parsley.ui.examples/plugin.xml
new file mode 100644
index 000000000..feac8ae05
--- /dev/null
+++ b/examples/org.eclipse.emf.parsley.ui.examples/plugin.xml
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension point="org.eclipse.ui.newWizards">
+ <category id="org.eclipse.emf.parsley.ui.Examples"
+ name="Emf Parsley Examples"
+ parentCategory="org.eclipse.ui.Examples" />
+ </extension>
+ <extension point="org.eclipse.ui.newWizards">
+ <category id="org.eclipse.emf.parsley.project.Examples"
+ name="Examples"
+ parentCategory="org.eclipse.emf.parsley.wizards" />
+ </extension>
+ <extension point="org.eclipse.ui.newWizards">
+ <wizard id="org.eclipse.emf.parsley.examples.MailExampleWizard"
+ name="Emf Parsley Mail RCP Example"
+ class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
+ category="org.eclipse.ui.Examples/org.eclipse.emf.parsley.ui.Examples"
+ icon="icons/genproject.gif"
+ project="true">
+ <description>Mail RCP implemented with Emf Parsley</description>
+ </wizard>
+ </extension>
+ <extension point="org.eclipse.ui.newWizards">
+ <wizard id="org.eclipse.emf.parsley.examples.MailExampleWizard"
+ name="Emf Parsley Mail RCP Example"
+ class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
+ category="org.eclipse.emf.parsley.wizards/org.eclipse.emf.parsley.project.Examples"
+ icon="icons/genproject.gif"
+ project="true">
+ <description>Mail RCP implemented with Emf Parsley</description>
+ </wizard>
+ </extension>
+ <extension point="org.eclipse.ui.newWizards">
+ <wizard id="org.eclipse.emf.parsley.examples.FirstExampleWizard"
+ name="Emf Parsley First Example"
+ class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
+ category="org.eclipse.ui.Examples/org.eclipse.emf.parsley.ui.Examples"
+ icon="icons/genproject.gif"
+ project="true">
+ <description>Emf Parsley First Example</description>
+ </wizard>
+ </extension>
+ <extension point="org.eclipse.ui.newWizards">
+ <wizard id="org.eclipse.emf.parsley.examples.FirstExampleWizard"
+ name="Emf Parsley First Example"
+ class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
+ category="org.eclipse.emf.parsley.wizards/org.eclipse.emf.parsley.project.Examples"
+ icon="icons/genproject.gif"
+ project="true">
+ <description>Emf Parsley First Example</description>
+ </wizard>
+ </extension>
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <wizard
+ category="org.eclipse.emf.parsley.wizards/org.eclipse.emf.parsley.project.Examples"
+ class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
+ icon="icons/genproject.gif"
+ id="org.eclipse.emf.parsley.examples.ViewsExamples"
+ name="Emf Parsley Views Examples"
+ project="true">
+ <description>
+ Emf Parsley First Example
+ </description>
+ </wizard>
+ </extension>
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <wizard
+ category="org.eclipse.ui.Examples/org.eclipse.emf.parsley.ui.Examples"
+ class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
+ icon="icons/genproject.gif"
+ id="org.eclipse.emf.parsley.examples.ViewsExamples"
+ name="Emf Parsley Views Examples"
+ project="true">
+ <description>
+ Emf Parsley First Example
+ </description>
+ </wizard>
+ </extension>
+ <extension
+ point="org.eclipse.emf.common.ui.examples">
+ <example
+ pageImage="icons/genproject.gif"
+ wizardID="org.eclipse.emf.parsley.examples.MailExampleWizard">
+ <projectDescriptor
+ contentURI="contents/org.eclipse.emf.parsley.examples.mail.model.zip"
+ description="Mail Model"
+ name="org.eclipse.emf.parsley.examples.mail.model">
+ </projectDescriptor>
+ <projectDescriptor
+ contentURI="contents/org.eclipse.emf.parsley.examples.mail.rcp.zip"
+ description="Mail RCP"
+ name="org.eclipse.emf.parsley.examples.mail.rcp">
+ </projectDescriptor>
+ <projectDescriptor
+ contentURI="contents/org.eclipse.emf.parsley.examples.mail.accountsview.zip"
+ description="Mail Accounts View"
+ name="org.eclipse.emf.parsley.examples.mail.accountsview">
+ </projectDescriptor>
+ <projectDescriptor
+ contentURI="contents/org.eclipse.emf.parsley.examples.mail.mailsview.zip"
+ description="Mail Emails View"
+ name="org.eclipse.emf.parsley.examples.mail.mailsview">
+ </projectDescriptor>
+ <projectDescriptor
+ contentURI="contents/org.eclipse.emf.parsley.examples.mail.messageview.zip"
+ description="Mail Message View"
+ name="org.eclipse.emf.parsley.examples.mail.messageview">
+ </projectDescriptor>
+ <projectDescriptor
+ contentURI="contents/org.eclipse.emf.parsley.examples.mail.product.feature.zip"
+ description="Mail Product Feature"
+ name="org.eclipse.emf.parsley.examples.mail.product.feature">
+ </projectDescriptor>
+ <projectDescriptor
+ contentURI="contents/org.eclipse.emf.parsley.examples.mail.product.site.zip"
+ description="Mail Product Site Feature"
+ name="org.eclipse.emf.parsley.examples.mail.product.site">
+ </projectDescriptor>
+ </example>
+ </extension>
+ <extension
+ point="org.eclipse.emf.common.ui.examples">
+ <example
+ pageImage="icons/genproject.gif"
+ wizardID="org.eclipse.emf.parsley.examples.FirstExampleWizard">
+ <projectDescriptor
+ contentURI="contents/org.eclipse.emf.examples.library.zip"
+ description="Library Model"
+ name="org.eclipse.emf.examples.library">
+ </projectDescriptor>
+ <projectDescriptor
+ contentURI="contents/org.eclipse.emf.examples.library.edit.zip"
+ description="Library Edit Plugin"
+ name="org.eclipse.emf.examples.library.edit">
+ </projectDescriptor>
+ <projectDescriptor
+ contentURI="contents/org.eclipse.emf.parsley.examples.firstexample.zip"
+ description="Emf Parsley First Example"
+ name="org.eclipse.emf.parsley.examples.firstexample">
+ </projectDescriptor>
+ </example>
+ </extension>
+ <extension
+ point="org.eclipse.emf.common.ui.examples">
+ <example
+ pageImage="icons/genproject.gif"
+ wizardID="org.eclipse.emf.parsley.examples.ViewsExamples">
+ <projectDescriptor
+ contentURI="contents/org.eclipse.emf.parsley.examples.views.zip"
+ description="Emf Parsley Views Examples"
+ name="org.eclipse.emf.parsley.examples.views">
+ </projectDescriptor>
+ </example>
+ </extension>
+
+</plugin>
diff --git a/features/org.eclipse.emf.parsley.cdo.feature/.project b/features/org.eclipse.emf.parsley.cdo.feature/.project
new file mode 100644
index 000000000..01b3e4d99
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.cdo.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.cdo.feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/features/org.eclipse.emf.parsley.cdo.feature/build.properties b/features/org.eclipse.emf.parsley.cdo.feature/build.properties
new file mode 100644
index 000000000..64f93a9f0
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.cdo.feature/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/features/org.eclipse.emf.parsley.cdo.feature/feature.xml b/features/org.eclipse.emf.parsley.cdo.feature/feature.xml
new file mode 100644
index 000000000..e1de09bee
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.cdo.feature/feature.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.emf.parsley.cdo.feature"
+ label="Emf Parsley CDO"
+ version="0.1.0.qualifier"
+ provider-name="RCP Vision">
+
+ <description url="http://www.eclipse.org/emfparsley">
+ Working with EMF a developer realizes that all the information are available for building basic UI.
+
+A lightweight framework that allows easy and quick development of EMF-based Applications. Can be configured to use all kind of EMF persistence implementations (XMI, Teneo, CDO).
+
+It aims at providing a set of Components like Trees, Tables and Detail Forms that manage the model with the introspective EMF capabilities. Using these components you can easily build forms, viewer or editors. The framework provides basic UI implementations which are customizable with Injection mechanism (based on Google Guice).
+ </description>
+
+ <copyright url="http://www.example.com/copyright">
+ [Enter Copyright Description here.]
+ </copyright>
+
+ <license url="http://www.eclipse.org/legal/epl-v10.html">
+ Made available under Eclipse Public License v 1.0
+ </license>
+
+ <includes
+ id="org.eclipse.emf.parsley.feature"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.cdo"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/features/org.eclipse.emf.parsley.dsl.feature/.project b/features/org.eclipse.emf.parsley.dsl.feature/.project
new file mode 100644
index 000000000..5ef9aaf86
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.dsl.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.dsl.feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/features/org.eclipse.emf.parsley.dsl.feature/build.properties b/features/org.eclipse.emf.parsley.dsl.feature/build.properties
new file mode 100644
index 000000000..64f93a9f0
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.dsl.feature/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/features/org.eclipse.emf.parsley.dsl.feature/feature.xml b/features/org.eclipse.emf.parsley.dsl.feature/feature.xml
new file mode 100644
index 000000000..e693fe6c2
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.dsl.feature/feature.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.emf.parsley.dsl.feature"
+ label="Emf Parsley DSL"
+ version="0.1.0.qualifier"
+ provider-name="RCP Vision">
+
+ <description url="http://www.eclipse.org/emfparsley">
+ Working with EMF a developer realizes that all the information are available for building basic UI.
+
+A lightweight framework that allows easy and quick development of EMF-based Applications. Can be configured to use all kind of EMF persistence implementations (XMI, Teneo, CDO).
+
+It aims at providing a set of Components like Trees, Tables and Detail Forms that manage the model with the introspective EMF capabilities. Using these components you can easily build forms, viewer or editors. The framework provides basic UI implementations which are customizable with Injection mechanism (based on Google Guice).
+ </description>
+
+ <copyright url="http://www.example.com/copyright">
+ [Enter Copyright Description here.]
+ </copyright>
+
+ <license url="http://www.eclipse.org/legal/epl-v10.html">
+ Made available under Eclipse Public License v 1.0
+ </license>
+
+ <plugin
+ id="org.eclipse.emf.parsley.dsl"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.dsl.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/features/org.eclipse.emf.parsley.examples.feature/.project b/features/org.eclipse.emf.parsley.examples.feature/.project
new file mode 100644
index 000000000..5a2d7b3b5
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.examples.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/features/org.eclipse.emf.parsley.examples.feature/build.properties b/features/org.eclipse.emf.parsley.examples.feature/build.properties
new file mode 100644
index 000000000..64f93a9f0
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.examples.feature/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/features/org.eclipse.emf.parsley.examples.feature/feature.xml b/features/org.eclipse.emf.parsley.examples.feature/feature.xml
new file mode 100644
index 000000000..44f1f2a30
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.examples.feature/feature.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.emf.parsley.examples.feature"
+ label="Emf Parsley Examples"
+ version="0.1.0.qualifier"
+ provider-name="RCP Vision">
+
+ <description url="http://www.eclipse.org/emfparsley">
+ Working with EMF a developer realizes that all the information are available for building basic UI.
+
+A lightweight framework that allows easy and quick development of EMF-based Applications. Can be configured to use all kind of EMF persistence implementations (XMI, Teneo, CDO).
+
+It aims at providing a set of Components like Trees, Tables and Detail Forms that manage the model with the introspective EMF capabilities. Using these components you can easily build forms, viewer or editors. The framework provides basic UI implementations which are customizable with Injection mechanism (based on Google Guice).
+ </description>
+
+ <copyright url="http://www.example.com/copyright">
+ [Enter Copyright Description here.]
+ </copyright>
+
+ <license url="http://www.eclipse.org/legal/epl-v10.html">
+ Made available under Eclipse Public License v 1.0
+ </license>
+
+ <includes
+ id="org.eclipse.emf.parsley.feature"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.ui.examples"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/features/org.eclipse.emf.parsley.examples.mail.product.feature/.project b/features/org.eclipse.emf.parsley.examples.mail.product.feature/.project
new file mode 100644
index 000000000..8159e5f39
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.examples.mail.product.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.mail.product.feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/features/org.eclipse.emf.parsley.examples.mail.product.feature/EmfParsleyMail.product b/features/org.eclipse.emf.parsley.examples.mail.product.feature/EmfParsleyMail.product
new file mode 100644
index 000000000..373b20b85
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.examples.mail.product.feature/EmfParsleyMail.product
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="Emf Components Mail RCP Product" uid="org.eclipse.emf.parsley.examples.mail.rcp.product" id="org.eclipse.emf.parsley.examples.mail.rcp.product" application="org.eclipse.emf.parsley.examples.mail.rcp.application" version="1.0.0.qualifier" useFeatures="true" includeLaunchers="true">
+
+ <aboutInfo>
+ <image path="product_lg.gif"/>
+ <text>
+ RCP Mail template created by PDE
+ </text>
+ </aboutInfo>
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <vmArgs>-Xms40m -Xmx512m -XX:MaxPermSize=256m</vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <windowImages i16="icons/sample2.gif"/>
+
+ <splash
+ location="org.eclipse.emf.parsley.examples.mail.rcp" />
+ <launcher name="emfparlsey_mail">
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+ <vm>
+ </vm>
+
+ <plugins>
+ </plugins>
+
+ <features>
+ <feature id="org.eclipse.emf.parsley.examples.mail.product.feature" version="1.0.0.qualifier"/>
+ </features>
+
+
+</product>
diff --git a/features/org.eclipse.emf.parsley.examples.mail.product.feature/build.properties b/features/org.eclipse.emf.parsley.examples.mail.product.feature/build.properties
new file mode 100644
index 000000000..64f93a9f0
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.examples.mail.product.feature/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/features/org.eclipse.emf.parsley.examples.mail.product.feature/feature.xml b/features/org.eclipse.emf.parsley.examples.mail.product.feature/feature.xml
new file mode 100644
index 000000000..9bf61afef
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.examples.mail.product.feature/feature.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.emf.parsley.examples.mail.product.feature"
+ label="Emf Parsley Mail Product Feature"
+ version="1.0.0.qualifier"
+ provider-name="Rcp-Vision">
+
+ <description url="http://www.example.com/description">
+ [Enter Feature Description here.]
+ </description>
+
+ <copyright url="http://www.example.com/copyright">
+ [Enter Copyright Description here.]
+ </copyright>
+
+ <license url="http://www.example.com/license">
+ [Enter License Description here.]
+ </license>
+
+ <includes
+ id="org.eclipse.rcp"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.examples.mail.rcp"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.codegen"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ui.forms"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.codegen.ecore.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.examples.mail.mailsview"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.examples.mail.messageview"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.examples.mail.accountsview"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.examples.mail.model"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/features/org.eclipse.emf.parsley.examples.rap.feature/.project b/features/org.eclipse.emf.parsley.examples.rap.feature/.project
new file mode 100644
index 000000000..a97fae52b
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.examples.rap.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.rap.feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/features/org.eclipse.emf.parsley.examples.rap.feature/build.properties b/features/org.eclipse.emf.parsley.examples.rap.feature/build.properties
new file mode 100644
index 000000000..64f93a9f0
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.examples.rap.feature/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/features/org.eclipse.emf.parsley.examples.rap.feature/feature.xml b/features/org.eclipse.emf.parsley.examples.rap.feature/feature.xml
new file mode 100644
index 000000000..5e4fd304f
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.examples.rap.feature/feature.xml
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.emf.parsley.examples.rap.feature"
+ label="Emf Parsley RAP Example Feature"
+ version="1.0.0.qualifier">
+
+ <description url="http://www.example.com/description">
+ [Enter Feature Description here.]
+ </description>
+
+ <copyright url="http://www.example.com/copyright">
+ [Enter Copyright Description here.]
+ </copyright>
+
+ <license url="http://www.example.com/license">
+ [Enter License Description here.]
+ </license>
+
+ <plugin
+ id="org.eclipse.equinox.http.registry"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.equinox.http.servlet"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.rap.common.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.rap.edit.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.equinox.console"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.apache.felix.gogo.shell"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.equinox.http.jetty"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.rap.design.example"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.rap.jface"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.rap.jface.databinding"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.rap.rwt"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.rap.rwt.osgi"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.rap.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.rap.ui.cheatsheets"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.rap.ui.forms"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.rap.ui.views"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.rap.ui.workbench"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.rap"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.examples.rap.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.examples.rap.model"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.rap"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.rap.runtime"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.rap.views"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/features/org.eclipse.emf.parsley.feature/.project b/features/org.eclipse.emf.parsley.feature/.project
new file mode 100644
index 000000000..c57e3df46
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/features/org.eclipse.emf.parsley.feature/build.properties b/features/org.eclipse.emf.parsley.feature/build.properties
new file mode 100644
index 000000000..64f93a9f0
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.feature/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/features/org.eclipse.emf.parsley.feature/feature.xml b/features/org.eclipse.emf.parsley.feature/feature.xml
new file mode 100644
index 000000000..d62531120
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.feature/feature.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.emf.parsley.feature"
+ label="Emf Parsley"
+ version="0.1.0.qualifier"
+ provider-name="RCP Vision">
+
+ <description url="http://www.eclipse.org/emfparsley">
+ Working with EMF a developer realizes that all the information are available for building basic UI.
+
+A lightweight framework that allows easy and quick development of EMF-based Applications. Can be configured to use all kind of EMF persistence implementations (XMI, Teneo, CDO).
+
+It aims at providing a set of Components like Trees, Tables and Detail Forms that manage the model with the introspective EMF capabilities. Using these components you can easily build forms, viewer or editors. The framework provides basic UI implementations which are customizable with Injection mechanism (based on Google Guice).
+ </description>
+
+ <copyright url="http://www.example.com/copyright">
+ [Enter Copyright Description here.]
+ </copyright>
+
+ <license url="http://www.eclipse.org/legal/epl-v10.html">
+ Made available under Eclipse Public License v 1.0
+ </license>
+
+ <plugin
+ id="org.eclipse.emf.parsley"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.doc"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.wizards"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.views"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.editors"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.runtime"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.generator.common"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.common"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.runtime.common"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.views.common"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/features/org.eclipse.emf.parsley.rap.sdk/.project b/features/org.eclipse.emf.parsley.rap.sdk/.project
new file mode 100644
index 000000000..db25e56ff
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.rap.sdk/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.rap.sdk</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/features/org.eclipse.emf.parsley.rap.sdk/build.properties b/features/org.eclipse.emf.parsley.rap.sdk/build.properties
new file mode 100644
index 000000000..64f93a9f0
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.rap.sdk/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/features/org.eclipse.emf.parsley.rap.sdk/feature.xml b/features/org.eclipse.emf.parsley.rap.sdk/feature.xml
new file mode 100644
index 000000000..146dd8ce2
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.rap.sdk/feature.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.emf.parsley.rap.sdk"
+ label="Emf Components RAP SDK"
+ version="0.1.0.qualifier">
+
+ <description url="http://code.google.com/a/eclipselabs.org/p/emf-components/">
+ Working with EMF a developer realizes that all the information are available for building basic UI.
+
+A lightweight framework that allows easy and quick development of EMF-based Applications. Can be configured to use all kind of EMF persistence implementations (XMI, Teneo, CDO).
+
+It aims at providing a set of Components like Trees, Tables and Detail Forms that manage the model with the introspective EMF capabilities. Using these components you can easily build forms, viewer or editors. The framework provides basic UI implementations which are customizable with Injection mechanism (based on Google Guice).
+ </description>
+
+ <copyright url="http://www.example.com/copyright">
+ [Enter Copyright Description here.]
+ </copyright>
+
+ <license url="http://www.eclipse.org/legal/epl-v10.html">
+ Made available under Eclipse Public License v 1.0
+ </license>
+
+ <plugin
+ id="org.eclipse.emf.parsley.runtime.common"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.views.common"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.rap.runtime"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.common"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.rap"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.rap.views"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/features/org.eclipse.emf.parsley.tests.swtbot.feature/.project b/features/org.eclipse.emf.parsley.tests.swtbot.feature/.project
new file mode 100644
index 000000000..50c12f54e
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.tests.swtbot.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.tests.swtbot.feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/features/org.eclipse.emf.parsley.tests.swtbot.feature/build.properties b/features/org.eclipse.emf.parsley.tests.swtbot.feature/build.properties
new file mode 100644
index 000000000..64f93a9f0
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.tests.swtbot.feature/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/features/org.eclipse.emf.parsley.tests.swtbot.feature/feature.xml b/features/org.eclipse.emf.parsley.tests.swtbot.feature/feature.xml
new file mode 100644
index 000000000..0c5c49bc5
--- /dev/null
+++ b/features/org.eclipse.emf.parsley.tests.swtbot.feature/feature.xml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.emf.parsley.tests.swtbot.feature"
+ label="Emf Parsley SWTBOT Tests Feature"
+ version="0.1.0.qualifier">
+
+ <description url="http://www.example.com/description">
+ [Enter Feature Description here.]
+ </description>
+
+ <copyright url="http://www.example.com/copyright">
+ [Enter Copyright Description here.]
+ </copyright>
+
+ <license url="http://www.example.com/license">
+ [Enter License Description here.]
+ </license>
+
+ <includes
+ id="org.eclipse.emf.parsley.examples.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.platform"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.sdk"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.parsley.dsl.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.xtext.sdk"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.xtend.sdk"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.swtbot.ide"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.swtbot.forms"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.swtbot.eclipse"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.tests.swtbot"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.ui.examples"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.examples.fowlerdsl"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.examples.fowlerdsl.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.examples.library"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.examples.library.edit"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.examples.library.editor"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.examples.views"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"/>
+
+</feature>
diff --git a/plugins/org.eclipse.emf.parsley.cdo/.classpath b/plugins/org.eclipse.emf.parsley.cdo/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.cdo/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.parsley.cdo/.project b/plugins/org.eclipse.emf.parsley.cdo/.project
new file mode 100644
index 000000000..ff321e3a2
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.cdo/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.cdo</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.parsley.cdo/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.parsley.cdo/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.cdo/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.emf.parsley.cdo/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.emf.parsley.cdo/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.cdo/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.emf.parsley.cdo/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.parsley.cdo/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..eeb0ae0e9
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.cdo/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Cdo
+Bundle-SymbolicName: org.eclipse.emf.parsley.cdo;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-Activator: org.eclipse.emf.parsley.cdo.Activator
+Require-Bundle: org.eclipse.ui;bundle-version="3.5.0",
+ org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.emf.parsley;bundle-version="0.1.0";visibility:=reexport,
+ org.eclipse.emf.common.ui;bundle-version="2.6.0",
+ org.eclipse.emf.cdo.net4j;bundle-version="3.0.1",
+ org.eclipse.net4j.tcp;bundle-version="3.0.1",
+ org.eclipse.net4j.util.ui;bundle-version="3.0.0",
+ org.eclipse.emf.query;bundle-version="1.2.100",
+ org.eclipse.emf.ecore.change;bundle-version="2.5.1",
+ org.eclipse.emf.edit;bundle-version="2.6.0",
+ org.eclipse.core.databinding.property;bundle-version="1.4.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.parsley.cdo,
+ org.eclipse.emf.parsley.cdo.util
diff --git a/plugins/org.eclipse.emf.parsley.cdo/build.properties b/plugins/org.eclipse.emf.parsley.cdo/build.properties
new file mode 100644
index 000000000..34d2e4d2d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.cdo/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/Activator.java b/plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/Activator.java
new file mode 100644
index 000000000..d7af5bdd8
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/Activator.java
@@ -0,0 +1,50 @@
+package org.eclipse.emf.parsley.cdo;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.parsley.cdo"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/CDOEmfComponentsExtensionFactory.java b/plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/CDOEmfComponentsExtensionFactory.java
new file mode 100644
index 000000000..d9cf0909b
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/CDOEmfComponentsExtensionFactory.java
@@ -0,0 +1,24 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.cdo;
+
+import org.eclipse.emf.parsley.EmfComponentsExtensionFactory;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+
+/**
+ * @author bettini
+ *
+ */
+public class CDOEmfComponentsExtensionFactory extends
+ EmfComponentsExtensionFactory {
+
+ @Override
+ protected EmfComponentsGuiceModule getModule() {
+ return new CDOEmfComponentsModule(Activator.getDefault());
+ }
+
+
+
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/CDOEmfComponentsModule.java b/plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/CDOEmfComponentsModule.java
new file mode 100644
index 000000000..c079065a9
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/CDOEmfComponentsModule.java
@@ -0,0 +1,30 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.cdo;
+
+
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.resource.ResourceLoader;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * @author bettini
+ *
+ */
+public class CDOEmfComponentsModule extends EmfComponentsGuiceModule {
+
+ public CDOEmfComponentsModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends ResourceLoader> bindResourceLoader() {
+ return CDOResourceLoader.class;
+ }
+
+ public Class<? extends CDOSessionManager> bindCDOSessionManager(){
+ return CDOSessionManager.class;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/CDOResourceLoader.java b/plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/CDOResourceLoader.java
new file mode 100644
index 000000000..077e0ef1d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/CDOResourceLoader.java
@@ -0,0 +1,85 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.cdo;
+
+
+import org.eclipse.emf.cdo.eresource.CDOResource;
+import org.eclipse.emf.cdo.net4j.CDONet4jUtil;
+import org.eclipse.emf.cdo.net4j.CDOSession;
+import org.eclipse.emf.cdo.net4j.CDOSessionConfiguration;
+import org.eclipse.emf.cdo.transaction.CDOTransaction;
+import org.eclipse.emf.cdo.util.CDOURIUtil;
+import org.eclipse.emf.cdo.view.CDOAdapterPolicy;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.parsley.cdo.util.CDOURIData;
+import org.eclipse.emf.parsley.resource.ResourceLoader;
+import org.eclipse.net4j.Net4jUtil;
+import org.eclipse.net4j.connector.IConnector;
+import org.eclipse.net4j.tcp.TCPUtil;
+import org.eclipse.net4j.util.container.IPluginContainer;
+import org.eclipse.net4j.util.lifecycle.ILifecycle;
+import org.eclipse.net4j.util.lifecycle.LifecycleEventAdapter;
+
+/**
+ * @author bettini
+ *
+ */
+public class CDOResourceLoader extends ResourceLoader {
+
+ @Override
+ public Resource getResource(ResourceSet resourceSet, URI resourceURI) {
+ Net4jUtil.prepareContainer(IPluginContainer.INSTANCE);
+ TCPUtil.prepareContainer(IPluginContainer.INSTANCE);
+
+ CDOURIData data = CDOURIData.parse(resourceURI);
+
+ String host = data.host;
+ String repoName = data.sessionName;
+ String resourceName = data.resourceName;
+
+ CDOSession cdoSession = openSession(repoName, host);
+ URI uri = CDOURIUtil.createResourceURI(cdoSession, "/" + resourceName);
+
+ System.out.println("URI: " + uri);
+
+ CDOTransaction t = cdoSession.openTransaction();
+ t.options().addChangeSubscriptionPolicy(CDOAdapterPolicy.ALL);
+ CDOResource resource = getResourceFromTransaction(resourceName, t);
+
+ resourceSet.getResources().add(resource);
+
+ return resource;
+ }
+
+ protected CDOResource getResourceFromTransaction(String resourceName,
+ CDOTransaction t) {
+ return t.getResource(resourceName);
+ }
+
+ private static CDOSession openSession(String repoName, String host) {
+ final IConnector connector = (IConnector) IPluginContainer.INSTANCE
+ .getElement( //
+ "org.eclipse.net4j.connectors", // Product group
+ "tcp", // Type
+ host); // Description
+
+ CDOSessionConfiguration config = CDONet4jUtil
+ .createSessionConfiguration();
+ config.setConnector(connector);
+ config.setRepositoryName(repoName);
+
+ CDOSession session = config.openSession();
+
+ session.addListener(new LifecycleEventAdapter() {
+ @Override
+ protected void onDeactivated(ILifecycle lifecycle) {
+ connector.close();
+ }
+ });
+
+ return session;
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/CDOSessionManager.java b/plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/CDOSessionManager.java
new file mode 100644
index 000000000..d92bac7e8
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/CDOSessionManager.java
@@ -0,0 +1,14 @@
+package org.eclipse.emf.parsley.cdo;
+
+import org.eclipse.emf.cdo.eresource.CDOResource;
+import org.eclipse.emf.cdo.session.CDOSession;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+public abstract class CDOSessionManager {
+
+ public abstract CDOSession getSession(EObject obj);
+
+ public abstract CDOResource getTransactionalResourceFor(EClass eReferenceType);
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/util/CDOURIData.java b/plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/util/CDOURIData.java
new file mode 100644
index 000000000..b9bb6782c
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.cdo/src/org/eclipse/emf/parsley/cdo/util/CDOURIData.java
@@ -0,0 +1,38 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.cdo.util;
+
+import org.eclipse.emf.common.util.URI;
+
+/**
+ * @author bettini
+ *
+ */
+public class CDOURIData {
+
+ public String host;
+
+ public String sessionName;
+
+ public String resourceName;
+
+ public CDOURIData(String host, String sessionName, String resourceName) {
+ super();
+ this.host = host;
+ this.sessionName = sessionName;
+ this.resourceName = resourceName;
+ }
+
+ public static CDOURIData parse(URI uri) {
+ String host = uri.authority();
+ if (host == null)
+ throw new IllegalArgumentException("missing host in URI: " + uri);
+ String scheme = uri.scheme();
+ if (scheme == null || !scheme.equals("cdo"))
+ throw new IllegalArgumentException("not a cdo scheme: " + uri);
+ String sessionName = uri.segment(0);
+ String resourceName = uri.segment(1);
+ return new CDOURIData(host, sessionName, resourceName);
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/.classpath b/plugins/org.eclipse.emf.parsley.common/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.parsley.common/.project b/plugins/org.eclipse.emf.parsley.common/.project
new file mode 100644
index 000000000..a98a5828f
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.common</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.parsley.common/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.parsley.common/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.emf.parsley.common/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.emf.parsley.common/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.emf.parsley.common/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.parsley.common/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..40c56c287
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/META-INF/MANIFEST.MF
@@ -0,0 +1,78 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Emf Components Common
+Bundle-SymbolicName: org.eclipse.emf.parsley.common;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-Activator: org.eclipse.emf.parsley.EmfComponentsCommonActivator
+Bundle-Vendor: RCP-VISION
+Require-Bundle: org.eclipse.emf.databinding.edit;bundle-version="1.2.0";visibility:=reexport,
+ org.eclipse.core.databinding.property;bundle-version="1.4.0",
+ org.eclipse.emf.ecore.edit;bundle-version="2.7.0";visibility:=reexport,
+ org.eclipse.core.runtime;bundle-version="3.5.0";visibility:=reexport,
+ org.eclipse.core.commands;bundle-version="3.5.0";visibility:=reexport,
+ org.eclipse.emf.parsley.runtime.common;bundle-version="0.1.0";visibility:=reexport
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emf.parsley,
+ org.eclipse.emf.parsley.binding,
+ org.eclipse.emf.parsley.builders,
+ org.eclipse.emf.parsley.ecore,
+ org.eclipse.emf.parsley.edit,
+ org.eclipse.emf.parsley.edit.action,
+ org.eclipse.emf.parsley.edit.actionbar,
+ org.eclipse.emf.parsley.edit.domain,
+ org.eclipse.emf.parsley.edit.provider,
+ org.eclipse.emf.parsley.edit.ui.provider,
+ org.eclipse.emf.parsley.factories,
+ org.eclipse.emf.parsley.handlers,
+ org.eclipse.emf.parsley.listeners,
+ org.eclipse.emf.parsley.menus,
+ org.eclipse.emf.parsley.resource,
+ org.eclipse.emf.parsley.ui,
+ org.eclipse.emf.parsley.ui.provider,
+ org.eclipse.emf.parsley.util,
+ org.eclipse.emf.parsley.viewers,
+ org.eclipse.emf.parsley.widgets
+Import-Package: org.apache.log4j;version="1.2.13",
+ org.eclipse.emf.common.ui,
+ org.eclipse.emf.common.ui.action,
+ org.eclipse.emf.common.ui.dialogs,
+ org.eclipse.emf.common.ui.editor,
+ org.eclipse.emf.common.ui.viewer,
+ org.eclipse.emf.edit.ui,
+ org.eclipse.emf.edit.ui.action,
+ org.eclipse.emf.edit.ui.celleditor,
+ org.eclipse.emf.edit.ui.dnd,
+ org.eclipse.emf.edit.ui.provider,
+ org.eclipse.emf.edit.ui.util,
+ org.eclipse.emf.edit.ui.view,
+ org.eclipse.jface.action,
+ org.eclipse.jface.bindings,
+ org.eclipse.jface.bindings.keys,
+ org.eclipse.jface.databinding.swt,
+ org.eclipse.jface.databinding.viewers,
+ org.eclipse.jface.dialogs,
+ org.eclipse.jface.fieldassist,
+ org.eclipse.jface.operation,
+ org.eclipse.jface.resource,
+ org.eclipse.jface.viewers,
+ org.eclipse.jface.window,
+ org.eclipse.jface.wizard,
+ org.eclipse.swt,
+ org.eclipse.swt.custom,
+ org.eclipse.swt.dnd,
+ org.eclipse.swt.events,
+ org.eclipse.swt.graphics,
+ org.eclipse.swt.layout,
+ org.eclipse.swt.widgets,
+ org.eclipse.ui;ui.workbench=split,
+ org.eclipse.ui.actions;ui.workbench=split,
+ org.eclipse.ui.application,
+ org.eclipse.ui.forms,
+ org.eclipse.ui.forms.widgets,
+ org.eclipse.ui.part;ui.workbench=split,
+ org.eclipse.ui.internal;ui.workbench=split,
+ org.eclipse.ui.plugin,
+ org.eclipse.ui.views,
+ org.eclipse.ui.views.contentoutline,
+ org.eclipse.ui.views.properties;ui.views=split
diff --git a/plugins/org.eclipse.emf.parsley.common/build.properties b/plugins/org.eclipse.emf.parsley.common/build.properties
new file mode 100644
index 000000000..34d2e4d2d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/EmfComponentsCommonActivator.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/EmfComponentsCommonActivator.java
new file mode 100644
index 000000000..3a5b94587
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/EmfComponentsCommonActivator.java
@@ -0,0 +1,73 @@
+package org.eclipse.emf.parsley;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class EmfComponentsCommonActivator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.parsley"; //$NON-NLS-1$
+
+ // The shared instance
+ private static EmfComponentsCommonActivator plugin;
+
+ /**
+ * The constructor
+ */
+ public EmfComponentsCommonActivator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
+ * )
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
+ * )
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static EmfComponentsCommonActivator getDefault() {
+ return plugin;
+ }
+
+ public static void log(Status status) {
+ getDefault().getLog().log(status);
+ }
+
+ public static void logError(String errorMessage) {
+ log(new Status(IStatus.ERROR, EmfComponentsCommonActivator.PLUGIN_ID,
+ errorMessage));
+ }
+
+ public static void log(Throwable exception) {
+ log(new Status(IStatus.ERROR, EmfComponentsCommonActivator.PLUGIN_ID,
+ exception.getMessage(),
+ exception));
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/EmfComponentsExtensionFactory.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/EmfComponentsExtensionFactory.java
new file mode 100644
index 000000000..de4d38835
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/EmfComponentsExtensionFactory.java
@@ -0,0 +1,50 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley;
+
+import static com.google.inject.Guice.createInjector;
+import org.eclipse.emf.parsley.runtime.ui.AbstractGuiceAwareExecutableExtensionFactory;
+
+import org.osgi.framework.Bundle;
+
+import com.google.inject.Injector;
+
+/**
+ * @author bettini
+ *
+ */
+public class EmfComponentsExtensionFactory extends
+ AbstractGuiceAwareExecutableExtensionFactory {
+
+ /**
+ * Remember to override this method in your plugin, if you plan to create an
+ * instance of a class of your plugin (otherwise the classloader will not
+ * find it); if in your plugin you use guice only to inject your specific
+ * implementation into an instance of a class from this very plugin, then
+ * you do not need to override this method.
+ *
+ * @see org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory#getBundle()
+ */
+ @Override
+ protected Bundle getBundle() {
+ return EmfComponentsCommonActivator.getDefault().getBundle();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory
+ * #getInjector()
+ */
+ @Override
+ protected Injector getInjector() {
+ return createInjector(getModule());
+ }
+
+ protected EmfComponentsGuiceModule getModule() {
+ return new EmfComponentsGuiceModule(EmfComponentsCommonActivator.getDefault());
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/EmfComponentsGuiceModule.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/EmfComponentsGuiceModule.java
new file mode 100644
index 000000000..702244094
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/EmfComponentsGuiceModule.java
@@ -0,0 +1,210 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley;
+
+import org.eclipse.emf.parsley.runtime.service.AbstractGenericModule;
+import org.eclipse.emf.parsley.runtime.ui.IImageHelper;
+import org.eclipse.emf.parsley.runtime.ui.PluginImageHelper;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.ecore.util.Diagnostician;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.parsley.binding.FormControlFactory;
+import org.eclipse.emf.parsley.binding.ProposalCreator;
+import org.eclipse.emf.parsley.builders.TableViewerBuilder;
+import org.eclipse.emf.parsley.builders.TableViewerColumnBuilder;
+import org.eclipse.emf.parsley.edit.EditingDomainFinder;
+import org.eclipse.emf.parsley.edit.ResourceSaveManager;
+import org.eclipse.emf.parsley.edit.action.EditingActionManager;
+import org.eclipse.emf.parsley.edit.action.EmfActionManager;
+import org.eclipse.emf.parsley.edit.actionbar.TreeActionBarContributor;
+import org.eclipse.emf.parsley.edit.actionbar.WorkbenchActionBarContributor;
+import org.eclipse.emf.parsley.edit.domain.InjectableAdapterFactoryEditingDomain;
+import org.eclipse.emf.parsley.edit.provider.InjectableAdapterFactory;
+import org.eclipse.emf.parsley.edit.ui.provider.InjectableAdapterFactoryLabelProvider;
+import org.eclipse.emf.parsley.edit.ui.provider.ViewerContentProvider;
+import org.eclipse.emf.parsley.factories.ColumnLabelProviderFactory;
+import org.eclipse.emf.parsley.factories.FormFactory;
+import org.eclipse.emf.parsley.factories.TreeFormFactory;
+import org.eclipse.emf.parsley.factories.ViewerFactory;
+import org.eclipse.emf.parsley.handlers.OutlineSelectionHandler;
+import org.eclipse.emf.parsley.listeners.ViewerMouseAdapter;
+import org.eclipse.emf.parsley.menus.ViewerContextMenuFactory;
+import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+import org.eclipse.emf.parsley.resource.ResourceLoader;
+import org.eclipse.emf.parsley.ui.provider.FeaturesColumnProvider;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+import org.eclipse.emf.parsley.ui.provider.FormPropertyDescriptionProvider;
+import org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider;
+import org.eclipse.emf.parsley.ui.provider.TableColumnLabelProvider;
+import org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider;
+import org.eclipse.emf.parsley.util.EmfSelectionHelper;
+import org.eclipse.emf.parsley.viewers.ViewerInitializer;
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+import com.google.inject.Binder;
+
+/**
+ * Default Google Guice bindings.
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class EmfComponentsGuiceModule extends AbstractGenericModule {
+
+ private final AbstractUIPlugin plugin;
+
+ public EmfComponentsGuiceModule(AbstractUIPlugin plugin) {
+ this.plugin = plugin;
+ }
+
+ @Override
+ public void configure(Binder binder) {
+ super.configure(binder);
+ binder.bind(AbstractUIPlugin.class).toInstance(plugin);
+ binder.bind(IDialogSettings.class).toInstance(
+ plugin.getDialogSettings());
+ }
+
+ public Class<? extends IImageHelper> bindIImageHelper() {
+ return PluginImageHelper.class;
+ }
+
+ public Class<? extends ResourceLoader> bindResourceLoader() {
+ return ResourceLoader.class;
+ }
+
+ public Class<? extends ViewerMouseAdapter> bindViewerMouseAdapter() {
+ return ViewerMouseAdapter.class;
+ }
+
+ public Class<? extends ILabelProvider> bindILabelProvider() {
+ return ViewerLabelProvider.class;
+ }
+
+ public Class<? extends PropertyDescriptionProvider> bindPropertyDescriptionProvider() {
+ return PropertyDescriptionProvider.class;
+ }
+
+ public Class<? extends FormPropertyDescriptionProvider> bindFormPropertyDescriptionProvider() {
+ return FormPropertyDescriptionProvider.class;
+ }
+
+ public Class<? extends OutlineSelectionHandler> bindOutlineSelectionHandler() {
+ return OutlineSelectionHandler.class;
+ }
+
+ public Class<? extends ViewerFactory> bindViewerFactory() {
+ return ViewerFactory.class;
+ }
+
+ public Class<? extends TreeFormFactory> bindTreeFormFactory() {
+ return TreeFormFactory.class;
+ }
+
+ public Class<? extends FormFactory> bindFormFactory() {
+ return FormFactory.class;
+ }
+
+ public Class<? extends ViewerInitializer> bindViewerInitializer() {
+ return ViewerInitializer.class;
+ }
+
+ public Class<? extends FormControlFactory> bindFormControlFactory() {
+ return FormControlFactory.class;
+ }
+
+ public Class<? extends ViewerContextMenuFactory> bindViewerContextMenuFactory() {
+ return ViewerContextMenuFactory.class;
+ }
+
+ public Class<? extends ColumnLabelProviderFactory> bindColumnLabelProviderFactory() {
+ return ColumnLabelProviderFactory.class;
+ }
+
+ public Class<? extends TableColumnLabelProvider> bindTableColumnLabelProvider() {
+ return TableColumnLabelProvider.class;
+ }
+
+ public Class<? extends TableViewerBuilder> bindTableViewerBuilder() {
+ return TableViewerBuilder.class;
+ }
+
+ public Class<? extends TableViewerColumnBuilder> bindTableViewerColumnBuilder() {
+ return TableViewerColumnBuilder.class;
+ }
+
+ public Class<? extends WorkbenchActionBarContributor> bindEmfActionBarContributor() {
+ return WorkbenchActionBarContributor.class;
+ }
+
+ public Class<? extends TreeActionBarContributor> bindTreeActionBarContributor() {
+ return TreeActionBarContributor.class;
+ }
+
+ public Class<? extends EmfActionManager> bindEmfActionManager() {
+ return EmfActionManager.class;
+ }
+
+ public Class<? extends EditingActionManager> bindEditingActionManager() {
+ return EditingActionManager.class;
+ }
+
+ public Class<? extends EditingDomainFinder> bindEditingDomainFinder() {
+ return EditingDomainFinder.class;
+ }
+
+ public Class<? extends FeaturesProvider> bindFeaturesProvider() {
+ return FeaturesProvider.class;
+ }
+
+ public Class<? extends FeaturesColumnProvider> bindFeaturesColumnProvider() {
+ return FeaturesColumnProvider.class;
+ }
+
+ public Class<? extends EmfSelectionHelper> bindEmfSelectionHelper() {
+ return EmfSelectionHelper.class;
+ }
+
+ public Class<? extends ResourceSaveManager> bindResourceSaveManager() {
+ return ResourceSaveManager.class;
+ }
+
+ public Diagnostician bindDiagnostician() {
+ return Diagnostician.INSTANCE;
+ }
+
+ public Class<? extends EmptyResourceInitializer> bindEmptyResourceInitializer() {
+ return EmptyResourceInitializer.class;
+ }
+
+ public Class<? extends IContentProvider> bindIContentProvider() {
+ return ViewerContentProvider.class;
+ }
+
+ public Class<? extends ProposalCreator> bindProposalCreator() {
+ return ProposalCreator.class;
+ }
+
+ public Class<? extends AdapterFactoryEditingDomain> bindAdapterFactoryEditingDomain() {
+ return InjectableAdapterFactoryEditingDomain.class;
+ }
+
+ public Class<? extends AdapterFactory> bindAdapterFactory() {
+ return InjectableAdapterFactory.class;
+ }
+
+ public Class<? extends AdapterFactoryLabelProvider> bindAdapterFactoryLabelProvider() {
+ return InjectableAdapterFactoryLabelProvider.class;
+ }
+
+ public ComposedAdapterFactory.Descriptor.Registry bindComposedAdapterFactory$Descriptor$RegistryToInstance() {
+ return ComposedAdapterFactory.Descriptor.Registry.INSTANCE;
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/CachedLabelProvider.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/CachedLabelProvider.java
new file mode 100644
index 000000000..0e09b90bb
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/CachedLabelProvider.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2009 itemis AG (http://www.itemis.eu) and others.
+ * 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
+ *******************************************************************************/
+package org.eclipse.emf.parsley.binding;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.swt.graphics.Image;
+
+/**
+ * Cached Label Provider.
+ *
+ * @author Dennis H�bner - Initial contribution and API
+ */
+public class CachedLabelProvider implements ILabelProvider {
+
+ private final Map<Object, Image> imageCache = new HashMap<Object, Image>();
+ private final Map<Object, String> textCache = new HashMap<Object, String>();
+
+ private final ILabelProvider delegate;
+
+ /**
+ * Creates a new CachedLabelProvider which stores Images and Text in an internal cache.<br>
+ * Values are fetched from given delegate {@link ILabelProvider}.
+ */
+ public CachedLabelProvider(final ILabelProvider delegate) {
+ this.delegate = delegate;
+ }
+
+ public Image getImage(Object element) {
+ if (!imageCache.containsKey(element)) {
+ imageCache.put(element, delegate.getImage(element));
+ }
+ return imageCache.get(element);
+ }
+
+ public String getText(Object element) {
+ if (!textCache.containsKey(element)) {
+ textCache.put(element, delegate.getText(element));
+ }
+ return textCache.get(element);
+ }
+
+ public void dispose() {
+ imageCache.clear();
+ textCache.clear();
+ delegate.dispose();
+ }
+
+ public boolean isLabelProperty(Object element, String property) {
+ return delegate.isLabelProperty(element, property);
+ }
+
+ public void addListener(ILabelProviderListener listener) {
+ delegate.addListener(listener);
+ }
+
+ public void removeListener(ILabelProviderListener listener) {
+ delegate.removeListener(listener);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/ControlObservablePair.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/ControlObservablePair.java
new file mode 100644
index 000000000..f7dc8d75d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/ControlObservablePair.java
@@ -0,0 +1,43 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.binding;
+
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.swt.widgets.Control;
+
+/**
+ * @author bettini
+ *
+ */
+public class ControlObservablePair {
+
+ protected Control control;
+
+ protected IObservableValue observableValue;
+
+ public ControlObservablePair() {
+ }
+
+ public ControlObservablePair(Control control, IObservableValue observableValue) {
+ this.control = control;
+ this.observableValue = observableValue;
+ }
+
+ public Control getControl() {
+ return control;
+ }
+
+ public void setControl(Control control) {
+ this.control = control;
+ }
+
+ public IObservableValue getObservableValue() {
+ return observableValue;
+ }
+
+ public void setObservableValue(IObservableValue observableValue) {
+ this.observableValue = observableValue;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/FormControlFactory.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/FormControlFactory.java
new file mode 100644
index 000000000..dda7d32c1
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/FormControlFactory.java
@@ -0,0 +1,431 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2008 itemis AG and others.
+ * 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:
+ * itemis AG - Initial API and implementation
+ *
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.binding;
+
+import org.eclipse.emf.parsley.runtime.util.PolymorphicDispatcher;
+
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.databinding.EMFDataBindingContext;
+import org.eclipse.emf.databinding.EMFProperties;
+import org.eclipse.emf.databinding.edit.EMFEditProperties;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.impl.EEnumImpl;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.parsley.EmfComponentsCommonActivator;
+import org.eclipse.jface.bindings.keys.KeyStroke;
+import org.eclipse.jface.bindings.keys.ParseException;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.fieldassist.ContentProposalAdapter;
+import org.eclipse.jface.fieldassist.ControlDecoration;
+import org.eclipse.jface.fieldassist.FieldDecoration;
+import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
+import org.eclipse.jface.fieldassist.SimpleContentProposalProvider;
+import org.eclipse.jface.fieldassist.TextContentAdapter;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+import com.google.common.base.Predicate;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+/**
+ *
+ * Creates Control for an {@link EStructuralFeature}
+ *
+ * @author Dennis Huebner initial code
+ * @author Lorenzo Bettini refactoring for EmfComponents
+ *
+ */
+public class FormControlFactory {
+ @Inject
+ protected Provider<ILabelProvider> labelProviderProvider;
+
+ @Inject
+ private ProposalCreator proposalcreator;
+
+ private Composite parent = null;
+
+ private FormToolkit toolkit = null;
+ private EObject owner;
+ protected EditingDomain domain;
+ protected EMFDataBindingContext edbc;
+ public static final String EOBJECT_KEY = EcorePackage.Literals.EOBJECT
+ .getName();
+ public static final String ESTRUCTURALFEATURE_KEY = EcorePackage.Literals.ESTRUCTURAL_FEATURE
+ .getName();
+
+ private PolymorphicDispatcher.ErrorHandler<ControlObservablePair> control_errorHandler = new PolymorphicDispatcher.NullErrorHandler<ControlObservablePair>();
+
+ private PolymorphicDispatcher.ErrorHandler<Control> createControl_errorHandler = new PolymorphicDispatcher.NullErrorHandler<Control>();
+
+ private PolymorphicDispatcher.ErrorHandler<IObservableValue> observeable_errorHandler = new PolymorphicDispatcher.NullErrorHandler<IObservableValue>();
+
+ public FormControlFactory() {
+
+ }
+
+ public void init(EditingDomain domain, EObject owner, Composite parent,
+ FormToolkit toolkit) {
+ this.edbc = new EMFDataBindingContext();
+ this.domain = domain;
+ this.owner = owner;
+ this.parent = parent;
+ this.toolkit = toolkit;
+ }
+
+ protected ResourceSet getResourceSet(EditingDomain domain, EObject owner) {
+ Resource resource = owner.eResource();
+ ResourceSet resourceSet = (resource == null ? null : resource
+ .getResourceSet());
+ return domain == null ? resourceSet : domain.getResourceSet();
+ }
+
+ public Control create(EStructuralFeature feature) {
+ Control control = null;
+
+ control = polymorphicCreateControl(feature);
+ if (control == null) {
+ if (feature.isMany()) {
+ control = bindList(feature);
+ } else {
+ control = bindValue(feature);
+ }
+ setupControl(feature, control);
+ }
+ return control;
+ }
+
+ protected Predicate<Method> getControlPredicate(EStructuralFeature feature) {
+ String methodName = "control_" + owner.eClass().getName() + "_"
+ + feature.getName();
+ return PolymorphicDispatcher.Predicates.forName(methodName, 1);
+ }
+
+ protected Control bindList(final EStructuralFeature feature) {
+ IObservableValue source = createFeatureObserveable(feature);
+
+ ControlObservablePair retValAndTargetPair = createControlForList(feature);
+ Control retVal = retValAndTargetPair.getControl();
+ IObservableValue target = retValAndTargetPair.getObservableValue();
+
+ // TODO Controllare perch� il bindValue � diverso!
+ Binding binding = edbc.bindValue(target, source);
+ binding.updateModelToTarget();
+ return retVal;
+ }
+
+ private IObservableValue createFeatureObserveable(final EStructuralFeature feature) {
+ IObservableValue source=polymorphicCreateObserveable(domain, owner, feature);
+ if(source==null){
+ if (domain != null){
+ source = EMFEditProperties.value(domain, feature).observe(owner);
+ }else{
+ source = EMFProperties.value(feature).observe(owner);
+ }
+ }
+ return source;
+ }
+
+ protected ControlObservablePair createControlForList(
+ final EStructuralFeature feature) {
+ ControlObservablePair result = polymorphicGetObservableControl(feature);
+ if (result != null)
+ return result;
+
+ MultipleFeatureControl mfc = new MultipleFeatureControl(parent,
+ toolkit, labelProviderProvider.get(), owner,
+ feature, proposalcreator);
+ IObservableValue target = new MultipleFeatureControlObservable(mfc);
+ ControlObservablePair retValAndTargetPair = new ControlObservablePair(
+ mfc, target);
+ return retValAndTargetPair;
+ }
+
+ private Control bindValue(EStructuralFeature feature) {
+ IObservableValue featureObservable = createFeatureObserveable(feature);
+
+ Control control = polymorphicCreateControl(feature, featureObservable);
+ if (control != null)
+ return control;
+
+ ControlObservablePair retValAndTargetPair = createControlAndObservableValue(feature);
+ Control retVal = retValAndTargetPair.getControl();
+ IObservableValue controlObservable = retValAndTargetPair
+ .getObservableValue();
+
+ if (retVal != null && controlObservable != null) {
+ edbc.bindValue(controlObservable, featureObservable, null, null);
+ }
+ return retVal;
+ }
+
+ protected ControlObservablePair createControlAndObservableValue(
+ EStructuralFeature feature) {
+ ControlObservablePair result = polymorphicGetObservableControl(feature);
+ if (result != null)
+ return result;
+
+ if (isBooleanFeature(feature)) {
+ return createControlAndObservableValueForBoolean();
+ } else {
+ return createControlAndObservableValueForNonBooleanFeature(feature);
+ }
+ }
+
+ protected boolean isBooleanFeature(EStructuralFeature feature) {
+ return feature.getEType().equals(EcorePackage.Literals.EBOOLEAN)
+ || feature.getEType().equals(
+ EcorePackage.Literals.EBOOLEAN_OBJECT)
+ || (feature.getEType() instanceof EDataType && (feature
+ .getEType().getInstanceClass() == Boolean.class || feature
+ .getEType().getInstanceClass() == Boolean.TYPE));
+ }
+
+ protected ControlObservablePair createControlAndObservableValueForBoolean() {
+ ControlObservablePair retValAndTargetPair = new ControlObservablePair();
+ Button b = toolkit.createButton(parent, "", SWT.CHECK);
+ retValAndTargetPair.setControl(b);
+ retValAndTargetPair.setObservableValue(SWTObservables
+ .observeSelection(b));
+ return retValAndTargetPair;
+ }
+
+ protected boolean hasPredefinedProposals(EStructuralFeature feature) {
+ return feature instanceof EReference
+ || feature.getEType() instanceof EEnumImpl;
+ }
+
+ protected ControlObservablePair createControlAndObservableValueForNonBooleanFeature(
+ EStructuralFeature feature) {
+ List<?> proposals = createProposals(feature);
+ if (hasPredefinedProposals(feature)) {
+ return createControlAndObservableWithPredefinedProposals(proposals);
+ } else {
+ return createControlAndObservableWithoutPredefinedProposals(proposals);
+ }
+ }
+
+ public List<?> createProposals(EStructuralFeature feature) {
+ proposalcreator.setResourceSet(getResourceSet(domain, owner));
+ return proposalcreator.proposals(owner, feature);
+ }
+
+ protected ControlObservablePair createControlAndObservableWithPredefinedProposals(
+ List<?> proposals) {
+ ComboViewer combo = new ComboViewer(parent, SWT.READ_ONLY);
+ toolkit.adapt(combo.getCombo());
+ combo.setContentProvider(new ArrayContentProvider());
+ combo.setLabelProvider(labelProviderProvider.get());
+ combo.setInput(proposals);
+ ControlObservablePair retValAndTargetPair = new ControlObservablePair();
+ retValAndTargetPair.setControl(combo.getCombo());
+ retValAndTargetPair.setObservableValue(ViewersObservables
+ .observeSingleSelection(combo));
+ return retValAndTargetPair;
+ }
+
+ protected ControlObservablePair createControlAndObservableWithoutPredefinedProposals(
+ List<?> proposals) {
+ Text t = toolkit.createText(parent, "");
+ t.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TREE_BORDER);
+ addContentProposalAdapter(t, proposals);
+ ControlObservablePair retValAndTargetPair = new ControlObservablePair();
+ retValAndTargetPair.setControl(t);
+ retValAndTargetPair.setObservableValue(SWTObservables.observeText(t,
+ SWT.Modify));
+ return retValAndTargetPair;
+ }
+
+ protected void addContentProposalAdapter(Text t, List<?> proposals) {
+ if (proposals != null && !proposals.isEmpty()) {
+ // TODO prevent adding null to a list, for example a Collection Type
+ while (proposals.remove(null)) {
+ // clear null entries
+ }
+ ControlDecoration field = new ControlDecoration(t, SWT.BORDER);
+ FieldDecoration requiredFieldIndicator = FieldDecorationRegistry
+ .getDefault().getFieldDecoration(
+ FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);
+ field.setImage(requiredFieldIndicator.getImage());
+ field.setDescriptionText(requiredFieldIndicator.getDescription());
+ KeyStroke keyStroke = null;
+ String string = "Ctrl+Space";
+ try {
+ keyStroke = KeyStroke.getInstance(string);
+ } catch (ParseException e) {
+ EmfComponentsCommonActivator
+ .getDefault()
+ .getLog()
+ .log(new Status(IStatus.ERROR,
+ EmfComponentsCommonActivator.PLUGIN_ID,
+ "Error while parse: " + string, e));
+ }
+ new ContentProposalAdapter(t, new TextContentAdapter(),
+ new SimpleContentProposalProvider(proposals
+ .toArray(new String[] {})), keyStroke,
+ null);
+ }
+ }
+
+ private void setupControl(EStructuralFeature f, Control c) {
+ // disable unchangeable and unserializable
+ if (c != null) {
+ c.setEnabled(f.isChangeable()
+ && (!(f.getEType() instanceof EDataType && !((EDataType) f
+ .getEType()).isSerializable())));
+ c.setData(FormControlFactory.ESTRUCTURALFEATURE_KEY, f);
+ c.setData(FormControlFactory.EOBJECT_KEY, owner);
+ c.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ }
+ }
+
+ public void dispose() {
+ edbc.dispose();
+ parent.dispose();
+ // toolkit.dispose();
+ }
+
+ public FormToolkit getToolkit() {
+ return toolkit;
+ }
+
+ public Composite getParent() {
+ return parent;
+ }
+
+ private ControlObservablePair polymorphicGetObservableControl(EStructuralFeature element) {
+ PolymorphicDispatcher<ControlObservablePair> dispatcher = new PolymorphicDispatcher<ControlObservablePair>(
+ Collections.singletonList(this),
+ getObservableControlPredicate(element), control_errorHandler) {
+ @Override
+ protected ControlObservablePair handleNoSuchMethod(Object... params) {
+ if (PolymorphicDispatcher.NullErrorHandler.class
+ .equals(control_errorHandler.getClass()))
+ return null;
+ return super.handleNoSuchMethod(params);
+ }
+ };
+
+ return dispatcher.invoke(element);
+ }
+
+ /**
+ * Polymorphically invokes a create_EClass_feature(DataBindingContext, IObservableValue)
+ * @param element
+ * @param featureObservable
+ * @return
+ */
+ private Control polymorphicCreateControl(EStructuralFeature element,
+ IObservableValue featureObservable) {
+ PolymorphicDispatcher<Control> dispatcher = createPolymorphicDispatcherForCreateControl(
+ element, 2);
+
+ return dispatcher.invoke(edbc, featureObservable);
+ }
+
+ /**
+ * Polymorphically invokes a create_EClass_feature(EObject)
+ * @param element
+ * @return
+ */
+ private Control polymorphicCreateControl(EStructuralFeature element) {
+ PolymorphicDispatcher<Control> dispatcher = createPolymorphicDispatcherForCreateControl(
+ element, 1);
+
+ return dispatcher.invoke(owner);
+ }
+
+ private PolymorphicDispatcher<Control> createPolymorphicDispatcherForCreateControl(
+ EStructuralFeature element, int numOfParams) {
+ return new PolymorphicDispatcher<Control>(
+ Collections.singletonList(this),
+ getCreateControlMethodPredicate(element, numOfParams),
+ createControl_errorHandler) {
+ @Override
+ protected Control handleNoSuchMethod(Object... params) {
+ if (PolymorphicDispatcher.NullErrorHandler.class
+ .equals(createControl_errorHandler.getClass()))
+ return null;
+ return super.handleNoSuchMethod(params);
+ }
+ };
+ }
+
+ protected Predicate<Method> getObservableControlPredicate(
+ EStructuralFeature feature) {
+ String methodName = "control_"
+ + feature.getEContainingClass().getName() + "_"
+ + feature.getName();
+ return PolymorphicDispatcher.Predicates.forName(methodName, 1);
+ }
+
+ protected Predicate<Method> getCreateControlMethodPredicate(
+ EStructuralFeature feature, int numOfParams) {
+ String methodName = "control_"
+ + feature.getEContainingClass().getName() + "_"
+ + feature.getName();
+ return PolymorphicDispatcher.Predicates.forName(methodName, numOfParams);
+ }
+
+ private IObservableValue polymorphicCreateObserveable(EditingDomain domain, EObject element,
+ EStructuralFeature feature) {
+ PolymorphicDispatcher<IObservableValue> dispatcher = new PolymorphicDispatcher<IObservableValue>(
+ Collections.singletonList(this),
+ getCreateObserveablePredicate(feature),
+ new PolymorphicDispatcher.NullErrorHandler<IObservableValue>()) {
+ @Override
+ protected IObservableValue handleNoSuchMethod(Object... params) {
+ if (PolymorphicDispatcher.NullErrorHandler.class
+ .equals(observeable_errorHandler.getClass()))
+ return null;
+ return super.handleNoSuchMethod(params);
+ }
+ };
+
+ return dispatcher.invoke(domain, element);
+ }
+
+ protected Predicate<Method> getCreateObserveablePredicate(
+ EStructuralFeature feature) {
+ String methodName = "observe_"
+ + feature.getEContainingClass().getName() + "_"
+ + feature.getName();
+ return PolymorphicDispatcher.Predicates.forName(methodName, 2);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/MultipleFeatureControl.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/MultipleFeatureControl.java
new file mode 100644
index 000000000..d28f7cc3a
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/MultipleFeatureControl.java
@@ -0,0 +1,229 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2008 itemis AG and others.
+ * 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:
+ * itemis AG - Initial API and implementation
+ *
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.binding;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.ui.celleditor.FeatureEditorDialog;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+/**
+ * Widget that opens the {@link FeatureEditorDialog} to select some feature values.<br>
+ * Shows values comma separated as label.
+ *
+ * @author Dennis Huebner
+ * @author Lorenzo Bettini (modifications)
+ *
+ */
+public class MultipleFeatureControl extends Composite {
+
+ private FeatureEditorDialog dialog;
+ private final ILabelProvider labelProvider;
+ private ISelectionProvider inernalProvider = new InternalSelectionProvider();
+
+ private Label label;
+
+ private Button button;
+
+ private boolean beQuiet;
+
+ public MultipleFeatureControl(final Composite parent, FormToolkit toolkit, final ILabelProvider labelProvider,
+ final EObject object, final EStructuralFeature feature, final ProposalCreator proposalcreator) {
+ super(parent, SWT.NONE);
+ this.labelProvider = labelProvider;
+ toolkit.adapt(this);
+ setLayout(new GridLayout(2, false));
+ label = toolkit.createLabel(this, "");
+ label.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseDown(MouseEvent e) {
+ MultipleFeatureControl.this.setFocus();
+ }
+ });
+ label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+ button = toolkit.createButton(this, "...", SWT.PUSH);
+ button.setLayoutData(new GridData());
+ button.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ List<?> oldValue = unwrapSelection();
+ //TODO (dennis) load choice of values in a runnable with status bar
+ List<Object> proposals = proposalcreator.proposals(object, feature);
+ dialog = new FeatureEditorDialog(parent.getShell(), new CachedLabelProvider(labelProvider), object,
+ feature.getEType(), oldValue, "Select", proposals, false,
+ feature.isOrdered(), proposals != null);
+ dialog.setBlockOnOpen(true);
+ if (dialog.open() == Window.OK) {
+ setSelection(new StructuredSelection(dialog.getResult().toArray()));
+ // propertyChangeListener
+ // .propertyChange(new PropertyChangeEvent(this,
+ // feature.getName(), oldValue, currentValue));
+ }
+ }
+ });
+
+ }
+
+ protected void setSelection(ISelection structuredSelection) {
+ this.inernalProvider.setSelection(structuredSelection);
+ }
+
+ private List<?> unwrapSelection() {
+ List<Object> l = new ArrayList<Object>();
+ if (getSelection() != null && !getSelection().isEmpty() && getSelection() instanceof IStructuredSelection) {
+ for (Iterator<?> iterator = ((IStructuredSelection) getSelection()).iterator(); iterator.hasNext();) {
+ Object object = iterator.next();
+ l.add(object);
+
+ }
+
+ }
+ return l;
+
+ }
+
+ private ISelection getSelection() {
+ return this.inernalProvider.getSelection();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.swt.widgets.Control#setMenu(org.eclipse.swt.widgets.Menu)
+ */
+ @Override
+ public void setMenu(Menu menu) {
+ if (label != null && !label.isDisposed())
+ label.setMenu(menu);
+ if (button != null && !button.isDisposed())
+ button.setMenu(menu);
+
+ }
+
+ @Override
+ public boolean setFocus() {
+ if (button != null)
+ return button.setFocus();
+ return super.setFocus();
+ }
+
+ @Override
+ public void addFocusListener(FocusListener listener) {
+ button.addFocusListener(listener);
+ }
+
+ @Override
+ public void removeFocusListener(FocusListener listener) {
+ button.removeFocusListener(listener);
+ }
+
+ /**
+ * @param selection
+ */
+ private void recalculateLabelText() {
+ StringBuffer buffy = new StringBuffer();
+ List<?> currSelection = unwrapSelection();
+ if (currSelection != null && !currSelection.isEmpty())
+ for (Iterator<?> iterator = currSelection.iterator(); iterator.hasNext();) {
+ Object sel = iterator.next();
+ buffy.append(labelProvider.getText(sel));
+ if (iterator.hasNext())
+ buffy.append(", ");
+ }
+ label.setText(buffy.toString());
+ }
+
+ class InternalSelectionProvider implements ISelectionProvider {
+
+ public void setSelection(ISelection selection) {
+ this.selection = selection;
+ recalculateLabelText();
+ if (!beQuiet) {
+ // notify
+ // SelectionProviderMultipleSelectionObservableList$SelectionListener
+ for (ISelectionChangedListener currListener : listeners) {
+ currListener.selectionChanged(new SelectionChangedEvent(this, this.selection));
+ }
+ }
+ }
+
+ private java.util.List<ISelectionChangedListener> listeners = new ArrayList<ISelectionChangedListener>();
+
+ public void addSelectionChangedListener(ISelectionChangedListener listener) {
+ listeners.add(listener);
+ }
+
+ public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+ listeners.remove(listener);
+ }
+
+ public ISelection getSelection() {
+ return selection;
+ }
+
+ private ISelection selection;
+
+ }
+
+ public ISelectionProvider getInternalSelectionProvider() {
+ return inernalProvider;
+ }
+
+ public void quietClearSelection() {
+ beQuiet = true;
+ try {
+ this.setSelection(new StructuredSelection());
+ }
+ finally {
+ beQuiet = false;
+ }
+ }
+
+ public void setValue(Object newValue) {
+ setSelection(new StructuredSelection((List<?>) newValue));
+ }
+
+ public Object getValue() {
+ return ((StructuredSelection) getSelection()).toList();
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/MultipleFeatureControlObservable.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/MultipleFeatureControlObservable.java
new file mode 100644
index 000000000..214bde40e
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/MultipleFeatureControlObservable.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2009 itemis AG (http://www.itemis.eu) and others.
+ * 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
+ *******************************************************************************/
+package org.eclipse.emf.parsley.binding;
+
+import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
+import org.eclipse.core.databinding.observable.value.ValueDiff;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+
+/**
+ * @author Dennis H�bner - Initial contribution and API
+ */
+public class MultipleFeatureControlObservable extends AbstractObservableValue implements ISelectionChangedListener {
+
+ private final MultipleFeatureControl mfc;
+
+ public MultipleFeatureControlObservable(MultipleFeatureControl mfc) {
+ this.mfc = mfc;
+ mfc.getInternalSelectionProvider().addSelectionChangedListener(this);
+ }
+
+ @Override
+ protected Object doGetValue() {
+ return mfc.getValue();
+ }
+
+ @Override
+ protected void doSetValue(Object value) {
+ mfc.setValue(value);
+ }
+
+ public Object getValueType() {
+ return null;
+ }
+
+ public void selectionChanged(final SelectionChangedEvent event) {
+ fireValueChange(new ValueDiff() {
+
+ @Override
+ public Object getOldValue() {
+ return null;
+ }
+
+ @Override
+ public Object getNewValue() {
+ return ((IStructuredSelection) event.getSelection()).toList();
+ }
+ });
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/ProposalCreator.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/ProposalCreator.java
new file mode 100644
index 000000000..2c1031906
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/binding/ProposalCreator.java
@@ -0,0 +1,171 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2008 itemis AG and others.
+ * 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:
+ * itemis AG - Initial API and implementation
+ *
+ * </copyright>
+ *
+ */
+package org.eclipse.emf.parsley.binding;
+
+import org.eclipse.emf.parsley.runtime.util.PolymorphicDispatcher;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EEnumLiteral;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.EEnumImpl;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import com.google.common.base.Predicate;
+
+/**
+ * @author Dennis H�bner Initial
+ * @author Lorenzo Bettini polymorphic proposals
+ *
+ */
+public class ProposalCreator {
+ private ResourceSet resourceSet;
+
+ private PolymorphicDispatcher.ErrorHandler<List<?>> proposals_errorHandler = new PolymorphicDispatcher.NullErrorHandler<List<?>>();
+
+ public ResourceSet getResourceSet() {
+ return resourceSet;
+ }
+
+ public void setResourceSet(ResourceSet resourceSet) {
+ this.resourceSet = resourceSet;
+ }
+
+ protected void retrieveResourceSet(EObject eObject) {
+ Resource resource = eObject.eResource();
+ resourceSet = (resource == null ? null : resource
+ .getResourceSet());
+ }
+
+ /**
+ * Calculates possible values for given operating object.
+ *
+ * @param feature
+ * @return possible values
+ */
+ public List<Object> proposals(EObject eObject, EStructuralFeature feature) {
+
+ List<Object> proposals = polymorphicCreateProposals(eObject, feature);
+ if(proposals != null){
+ return proposals;
+ }
+
+ if (resourceSet == null)
+ retrieveResourceSet(eObject);
+
+ return defaultProposals(feature);
+ }
+
+ protected List<Object> defaultProposals(EStructuralFeature feature) {
+ List<Object> retVal = null;
+ // TODO Reference[] handle
+ if (feature instanceof EReference) {
+ retVal = findAllInstances(feature.getEType());
+ } else if (feature.getEType() instanceof EEnumImpl) {
+ EEnum eEnum = (EEnum) feature.getEType();
+ List<Object> enumerators = new ArrayList<Object>();
+ for (Iterator<?> iter = eEnum.getELiterals().iterator(); iter
+ .hasNext();) {
+ Enumerator instance = ((EEnumLiteral) iter.next())
+ .getInstance();
+ enumerators.add(instance);
+ }
+ retVal = enumerators;
+ }
+ return retVal;
+ }
+
+ protected List<Object> findAllInstances(EClassifier type) {
+ List<Object> objects = new ArrayList<Object>();
+
+ if (resourceSet == null)
+ return objects;
+
+ TreeIterator<Object> allContents = EcoreUtil.getAllContents(
+ resourceSet.getResources(), true);
+ while (allContents.hasNext()) {
+ Object o = allContents.next();
+ if (type.isInstance(o))
+ objects.add(o);
+ }
+ // the following does not seem to be necessary
+ // since it iterates on Ecore stuff... Lorenzo
+// for (TreeIterator<Object> iter = EcoreUtil
+// .getAllContents(EcoreUtil.getRootContainer(
+// EcorePackage.eINSTANCE, true), false); iter.hasNext();) {
+// Object next = iter.next();
+// if ((type.isInstance(next)) && !objects.contains(next)) {
+// objects.add(next);
+// }
+// }
+ return objects;
+ }
+
+ private List<Object> polymorphicCreateProposals(EObject element,
+ EStructuralFeature feature) {
+
+ // first try with a method with two parameters
+ // (EObject, EStructurealFeature)...
+ PolymorphicDispatcher<List<Object>> dispatcher = createPolymorphicDispatcher(
+ element, feature, 2);
+
+ List<Object> invoke = dispatcher.invoke(element, feature);
+
+ if (invoke == null) {
+ // ...then with a method with only EObject
+ dispatcher = createPolymorphicDispatcher(element, feature, 1);
+ invoke = dispatcher.invoke(element);
+ }
+
+ return invoke;
+ }
+
+ private PolymorphicDispatcher<List<Object>> createPolymorphicDispatcher(
+ EObject object, EStructuralFeature feature, int numOfParams) {
+ return new PolymorphicDispatcher<List<Object>>(
+ Collections.singletonList(this), getCreateProposalsPredicate(
+ object, feature, numOfParams),
+ new PolymorphicDispatcher.NullErrorHandler<List<Object>>()) {
+ @Override
+ protected List<Object> handleNoSuchMethod(Object... params) {
+ if (PolymorphicDispatcher.NullErrorHandler.class
+ .equals(proposals_errorHandler.getClass()))
+ return null;
+ return super.handleNoSuchMethod(params);
+ }
+ };
+ }
+
+ protected Predicate<Method> getCreateProposalsPredicate(
+ EObject object, EStructuralFeature feature, int numOfParams) {
+ String methodName = "proposals_"
+ + object.eClass().getName() + "_"
+ + feature.getName();
+ return PolymorphicDispatcher.Predicates.forName(methodName, numOfParams);
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/builders/TableViewerBuilder.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/builders/TableViewerBuilder.java
new file mode 100644
index 000000000..8eb3d0cd1
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/builders/TableViewerBuilder.java
@@ -0,0 +1,58 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.builders;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.parsley.util.EmfComponentsUtil;
+import org.eclipse.emf.parsley.viewers.ViewerInitializer;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.TableViewer;
+
+import com.google.inject.Inject;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+public class TableViewerBuilder {
+
+ @Inject
+ protected TableViewerColumnBuilder columnBuilder;
+
+ @Inject
+ protected ViewerInitializer viewerInitializer;
+
+ public void buildAndFill(TableViewer tableViewer, Object contents,
+ EClass eClass) {
+ buildAndFill(tableViewer, contents, eClass, new ArrayContentProvider());
+ }
+
+ public void buildAndFill(TableViewer tableViewer, Object contents,
+ EClass eClass, IStructuredContentProvider contentProvider) {
+ build(tableViewer, eClass, contentProvider);
+ fill(tableViewer, contents, contentProvider, null);
+ }
+
+ public void buildAndFill(TableViewer tableViewer, Object contents,
+ EClass eClass, IStructuredContentProvider contentProvider,
+ IBaseLabelProvider labelProvider) {
+ build(tableViewer, eClass, contentProvider);
+ fill(tableViewer, contents, contentProvider, labelProvider);
+ }
+
+ public void fill(TableViewer tableViewer, Object contents,
+ IStructuredContentProvider contentProvider,
+ IBaseLabelProvider labelProvider) {
+ viewerInitializer.initialize(tableViewer,
+ EmfComponentsUtil.ensureCollection(contents), contentProvider,
+ labelProvider);
+ }
+
+ public void build(TableViewer tableViewer, EClass eClass,
+ IStructuredContentProvider contentProvider) {
+ columnBuilder.buildTableViewer(tableViewer, eClass, contentProvider);
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/builders/TableViewerColumnBuilder.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/builders/TableViewerColumnBuilder.java
new file mode 100644
index 000000000..3337aefe7
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/builders/TableViewerColumnBuilder.java
@@ -0,0 +1,110 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.builders;
+
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.factories.ColumnLabelProviderFactory;
+import org.eclipse.emf.parsley.ui.provider.FeaturesColumnProvider;
+import org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider;
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+
+import com.google.inject.Inject;
+
+/**
+ * Sets the columns of a TableViewer according to an EClass (adds a column for
+ * each feature of the EClass).
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class TableViewerColumnBuilder {
+
+ private static final int DEFAULT_WEIGHT = 3;
+
+ @Inject
+ protected ColumnLabelProviderFactory columnLabelProviderFactory;
+
+ @Inject
+ protected PropertyDescriptionProvider propertyDescriptionProvider;
+
+ @Inject
+ protected FeaturesColumnProvider featuresProvider;
+
+ public void buildTableViewer(TableViewer tableViewer, EClass eClass) {
+ buildTableViewer(tableViewer, eClass, null);
+ }
+
+ /**
+ * @param tableViewer
+ * @param eClass
+ */
+ public void buildTableViewer(TableViewer tableViewer, EClass eClass,
+ IStructuredContentProvider contentProvider) {
+ final Table table = tableViewer.getTable();
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+
+ TableLayout layout = new TableLayout();
+ table.setLayout(layout);
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+
+ List<EStructuralFeature> typeFeatures = featuresProvider
+ .getFeatures(eClass);
+ int i=0;
+ for (EStructuralFeature eStructuralFeature : typeFeatures) {
+ int weight=DEFAULT_WEIGHT;
+ if(featuresProvider.getWeights()!=null && featuresProvider.getWeights().size()>i){
+ weight=featuresProvider.getWeights().get(i++);
+ }
+ buildTableViewerColumn(tableViewer, layout, eStructuralFeature,
+ contentProvider,weight);
+ }
+ }
+
+ protected TableViewerColumn buildTableViewerColumn(TableViewer tableViewer,
+ TableLayout layout, EStructuralFeature eStructuralFeature,
+ IStructuredContentProvider contentProvider) {
+ return buildTableViewerColumn(tableViewer, layout, eStructuralFeature, contentProvider,DEFAULT_WEIGHT);
+ }
+
+ protected TableViewerColumn buildTableViewerColumn(TableViewer tableViewer,
+ TableLayout layout, EStructuralFeature eStructuralFeature,
+ IStructuredContentProvider contentProvider, int weight) {
+ TableViewerColumn viewerColumn = createTableViewerColumn(tableViewer,
+ eStructuralFeature, contentProvider);
+ TableColumn objectColumn = viewerColumn.getColumn();
+ layout.addColumnData(new ColumnWeightData(weight, 30, true));
+ objectColumn.setText(propertyDescriptionProvider.getText(eStructuralFeature));
+ objectColumn.setResizable(true);
+ return viewerColumn;
+ }
+
+ protected TableViewerColumn createTableViewerColumn(
+ TableViewer tableViewer, EStructuralFeature eStructuralFeature,
+ IStructuredContentProvider contentProvider) {
+ TableViewerColumn tableViewerColumn = new TableViewerColumn(
+ tableViewer, SWT.NONE);
+ if (contentProvider != null) {
+ tableViewerColumn.setLabelProvider(columnLabelProviderFactory
+ .createColumnLabelProvider(eStructuralFeature,
+ contentProvider));
+ } else {
+ tableViewerColumn.setLabelProvider(columnLabelProviderFactory
+ .createColumnLabelProvider(eStructuralFeature));
+ }
+ return tableViewerColumn;
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/builders/TableViewerEditableColumnBuilder.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/builders/TableViewerEditableColumnBuilder.java
new file mode 100644
index 000000000..33177c7a3
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/builders/TableViewerEditableColumnBuilder.java
@@ -0,0 +1,288 @@
+package org.eclipse.emf.parsley.builders;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Date;
+import java.util.List;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.util.Enumerator;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EEnumLiteral;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.command.SetCommand;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.CheckboxCellEditor;
+import org.eclipse.jface.viewers.ColumnViewer;
+import org.eclipse.jface.viewers.ComboBoxCellEditor;
+import org.eclipse.jface.viewers.EditingSupport;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.jface.viewers.TextCellEditor;
+import org.eclipse.swt.widgets.Composite;
+
+
+public class TableViewerEditableColumnBuilder extends TableViewerColumnBuilder {
+
+
+ @Override
+ protected TableViewerColumn buildTableViewerColumn(TableViewer tableViewer,
+ TableLayout layout, EStructuralFeature eStructuralFeature,
+ IStructuredContentProvider contentProvider, int weight) {
+ TableViewerColumn viewerColumn= super.buildTableViewerColumn(tableViewer, layout, eStructuralFeature,
+ contentProvider, weight);
+
+ if(eStructuralFeature instanceof EAttribute){
+ if(isPredefinedValueEditing((EAttribute)eStructuralFeature)){
+ viewerColumn.setEditingSupport(new ComboEditingSupport(tableViewer, eStructuralFeature));
+ }else{
+ viewerColumn.setEditingSupport(new TableEditingSupport(tableViewer, eStructuralFeature));
+ }
+ }
+ return viewerColumn;
+ }
+
+ class TableEditingSupport extends EditingSupport {
+
+ private ColumnViewer viewer;
+ private EStructuralFeature eStructuralFeature;
+
+ public TableEditingSupport(ColumnViewer viewer, EStructuralFeature eStructuralFeature) {
+ super(viewer);
+ this.viewer=viewer;
+ this.eStructuralFeature=eStructuralFeature;
+ }
+
+ @Override
+ protected CellEditor getCellEditor(Object element) {
+ if (BigDecimal.class.equals(eStructuralFeature.getEType().getInstanceClass())) {
+ return new TextCellEditor((Composite) getViewer().getControl()) {
+ @Override
+ protected void doSetValue(Object value) {
+ super.doSetValue("" + value);
+ }
+
+ @Override
+ protected Object doGetValue() {
+ String stringValue = (String) super.doGetValue();
+ return new BigDecimal(stringValue);
+ }
+ };
+ }
+ if (BigInteger.class.equals(eStructuralFeature.getEType().getInstanceClass())) {
+ return new TextCellEditor((Composite) getViewer().getControl()) {
+ @Override
+ protected void doSetValue(Object value) {
+ super.doSetValue("" + value);
+ }
+
+ @Override
+ protected Object doGetValue() {
+ String stringValue = (String) super.doGetValue();
+ return new BigInteger(stringValue);
+ }
+ };
+ }
+ if (double.class.equals(eStructuralFeature.getEType().getInstanceClass()) || Double.class.equals(eStructuralFeature.getEType().getInstanceClass())) {
+ return new TextCellEditor((Composite) getViewer().getControl()) {
+ @Override
+ protected void doSetValue(Object value) {
+ super.doSetValue("" + value);
+ }
+
+ @Override
+ protected Object doGetValue() {
+ String stringValue = (String) super.doGetValue();
+ return new Double(stringValue);
+ }
+ };
+ }
+ if (int.class.equals(eStructuralFeature.getEType().getInstanceClass()) || Integer.class.equals(eStructuralFeature.getEType().getInstanceClass())) {
+ return new TextCellEditor((Composite) getViewer().getControl()) {
+ @Override
+ protected void doSetValue(Object value) {
+ super.doSetValue("" + value);
+ }
+
+ @Override
+ protected Object doGetValue() {
+ String stringValue = (String) super.doGetValue();
+ return new Integer(stringValue);
+ }
+ };
+ }
+ if (float.class.equals(eStructuralFeature.getEType().getInstanceClass()) || Float.class.equals(eStructuralFeature.getEType().getInstanceClass())) {
+ return new TextCellEditor((Composite) getViewer().getControl()) {
+ @Override
+ protected void doSetValue(Object value) {
+ super.doSetValue("" + value);
+ }
+
+ @Override
+ protected Object doGetValue() {
+ String stringValue = (String) super.doGetValue();
+ return new Float(stringValue);
+ }
+ };
+ }
+ if (short.class.equals(eStructuralFeature.getEType().getInstanceClass()) || Short.class.equals(eStructuralFeature.getEType().getInstanceClass())) {
+ return new TextCellEditor((Composite) getViewer().getControl()) {
+ @Override
+ protected void doSetValue(Object value) {
+ super.doSetValue("" + value);
+ }
+
+ @Override
+ protected Object doGetValue() {
+ String stringValue = (String) super.doGetValue();
+ return new Short(stringValue);
+ }
+ };
+ }
+ if (byte.class.equals(eStructuralFeature.getEType().getInstanceClass()) || Byte.class.equals(eStructuralFeature.getEType().getInstanceClass())) {
+ return new TextCellEditor((Composite) getViewer().getControl()) {
+ @Override
+ protected void doSetValue(Object value) {
+ super.doSetValue("" + value);
+ }
+
+ @Override
+ protected Object doGetValue() {
+ String stringValue = (String) super.doGetValue();
+ return new Byte(stringValue);
+ }
+ };
+ }
+ if (boolean.class.equals(eStructuralFeature.getEType().getInstanceClass()) || Boolean.class.equals(eStructuralFeature.getEType().getInstanceClass())) {
+ return new CheckboxCellEditor((Composite) getViewer().getControl()) {
+ @Override
+ protected void doSetValue(Object value) {
+ super.doSetValue(value);
+ }
+
+ @Override
+ protected Object doGetValue() {
+ Boolean boolValue = (Boolean) super.doGetValue();
+ return boolValue;
+ }
+ };
+ }
+ if (Date.class.equals(eStructuralFeature.getEType().getInstanceClass())) {
+ return new TextCellEditor((Composite) getViewer().getControl()) {
+ @Override
+ protected void doSetValue(Object value) {
+ super.doSetValue(value);
+ }
+
+ @Override
+ protected Object doGetValue() {
+ String date = (String) super.doGetValue();
+ return date;
+ }
+ };
+ }
+ return new TextCellEditor((Composite)getViewer().getControl());
+ }
+
+ @Override
+ protected boolean canEdit(Object element) {
+ return true;
+ }
+
+ @Override
+ protected Object getValue(Object element) {
+ EObject eObjiect=(EObject) element;
+ return eObjiect.eGet(eStructuralFeature)!=null?eObjiect.eGet(eStructuralFeature):"";
+ }
+
+ @Override
+ protected void setValue(Object element, Object value) {
+ if(element instanceof EObject){
+ EObject eObject = (EObject) element;
+ if(eObject.eGet(eStructuralFeature)!=null && !eObject.eGet(eStructuralFeature).equals(value)){
+ EditingDomain domain=AdapterFactoryEditingDomain.getEditingDomainFor(eObject);
+ Command setCommand=new SetCommand(domain,eObject,eStructuralFeature,value);
+ domain.getCommandStack().execute(setCommand);
+ viewer.refresh();
+ }
+ }
+ }
+ }
+
+ class ComboEditingSupport extends EditingSupport {
+
+ private ColumnViewer viewer;
+ private EStructuralFeature feature;
+ private List<EEnumLiteral> literals;
+
+ public ComboEditingSupport(ColumnViewer viewer, EStructuralFeature eStructuralFeature) {
+ super(viewer);
+ this.viewer=viewer;
+ this.feature=eStructuralFeature;
+ }
+
+ @Override
+ protected CellEditor getCellEditor(Object element) {
+
+ EEnum eEnum=(EEnum) ((EAttribute)feature).getEAttributeType();
+ literals=eEnum.getELiterals();
+ String[] descriptions = new String[literals.size()];
+ int i=0;
+ for (EEnumLiteral literal: literals) {
+ descriptions[i++]=literal.getName();
+ }
+ return new ComboBoxCellEditor((Composite)getViewer().getControl(), descriptions);
+
+ }
+
+
+
+ @Override
+ protected boolean canEdit(Object element) {
+ return true;
+ }
+
+ @Override
+ protected Object getValue(Object element) {
+ if(element!=null && element instanceof EObject){
+ EObject eObject=(EObject) element;
+ if(eObject.eGet(feature) instanceof Enumerator){
+ Enumerator typeEnum=(Enumerator) eObject.eGet(feature);
+ for (int i = 0; i < literals.size(); i++) {
+ EEnumLiteral literal= literals.get(i);
+ if(literal!=null && literal.getLiteral().equals(typeEnum.getLiteral())){
+ return i;
+ }
+ }
+ }
+ }
+ return -1;
+ }
+
+ @Override
+ protected void setValue(Object element, Object value) {
+ Integer i=(Integer)value;
+ EObject eObject=(EObject) element;
+ if(eObject.eGet(feature) instanceof Enumerator && i>=0 && i<literals.size()){
+ Enumerator typeEnum=(Enumerator) eObject.eGet(feature);
+ if(typeEnum!=null && !typeEnum.getLiteral().equals(literals.get(i))){
+ EditingDomain domain=AdapterFactoryEditingDomain.getEditingDomainFor(eObject);
+ Command setCommand=new SetCommand(domain,eObject,feature,literals.get(i).getInstance());
+ domain.getCommandStack().execute(setCommand);
+ viewer.refresh();
+ }
+ }
+ }
+ }
+
+ private boolean isPredefinedValueEditing(EAttribute eStructuralFeature) {
+ return ((EAttribute)eStructuralFeature).getEAttributeType() instanceof EEnum;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ecore/FeatureNamePath.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ecore/FeatureNamePath.java
new file mode 100644
index 000000000..4a864cdfe
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ecore/FeatureNamePath.java
@@ -0,0 +1,45 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.ecore;
+
+import java.util.List;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+public class FeatureNamePath {
+
+ String featureName;
+
+ List<FeatureNamePath> paths;
+
+ public FeatureNamePath(String featureName) {
+ super();
+ this.featureName = featureName;
+ }
+
+ public FeatureNamePath(String featureName, List<FeatureNamePath> paths) {
+ super();
+ this.featureName = featureName;
+ this.paths = paths;
+ }
+
+ public String getFeatureName() {
+ return featureName;
+ }
+
+ public void setFeatureName(String featureName) {
+ this.featureName = featureName;
+ }
+
+ public List<FeatureNamePath> getPaths() {
+ return paths;
+ }
+
+ public void setPaths(List<FeatureNamePath> paths) {
+ this.paths = paths;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ecore/FeatureResolver.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ecore/FeatureResolver.java
new file mode 100644
index 000000000..96fcb00b0
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ecore/FeatureResolver.java
@@ -0,0 +1,61 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.ecore;
+
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.EmfComponentsCommonActivator;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+public class FeatureResolver {
+
+ public List<EStructuralFeature> getFeatures(EClass eClass,
+ List<FeatureNamePath> paths) {
+ List<EStructuralFeature> features = new LinkedList<EStructuralFeature>();
+ collectFeatures(eClass, paths, features);
+ return features;
+ }
+
+ protected void collectFeatures(EClass eClass, List<FeatureNamePath> paths,
+ List<EStructuralFeature> features) {
+ for (FeatureNamePath path : paths) {
+ EStructuralFeature feature = getFeature(eClass,
+ path.getFeatureName());
+ if (feature == null)
+ continue;
+ if (path.getPaths() == null) {
+ features.add(feature);
+ } else {
+ EClassifier type = feature.getEType();
+ if (type instanceof EClass) {
+ EClass eC = (EClass) type;
+ // recursive call
+ collectFeatures(eC, path.getPaths(), features);
+ } else {
+ EmfComponentsCommonActivator.logError("feature '"
+ + feature.getName() + "' in EClass '" + eClass.getName() + "'" +
+ " is not an EClass.");
+ }
+ }
+ }
+ }
+
+ protected EStructuralFeature getFeature(EClass eClass, String featureName) {
+ EStructuralFeature feature = eClass.getEStructuralFeature(featureName);
+ if (feature != null)
+ return feature;
+ else
+ EmfComponentsCommonActivator.logError("cannot find feature '"
+ + featureName + "' in EClass '" + eClass.getName() + "'");
+ return null;
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/EditingDomainFinder.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/EditingDomainFinder.java
new file mode 100644
index 000000000..b33ffc109
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/EditingDomainFinder.java
@@ -0,0 +1,22 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.edit;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+
+/**
+ * Retrieves the EditingDomain for an EObject. The default implementation simply
+ * uses {@link AdapterFactoryEditingDomain} getEditingDomainFor.
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class EditingDomainFinder {
+
+ public EditingDomain getEditingDomainFor(EObject object) {
+ return AdapterFactoryEditingDomain.getEditingDomainFor(object);
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/ResourceSaveManager.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/ResourceSaveManager.java
new file mode 100644
index 000000000..beac53a65
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/ResourceSaveManager.java
@@ -0,0 +1,33 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.edit;
+
+import java.io.IOException;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * Handles saving of {@link Resource}
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class ResourceSaveManager {
+
+ public boolean save(Resource resource) throws IOException {
+ return save(resource, null);
+ }
+
+ public boolean save(Resource resource, Map<?, ?> options) throws IOException {
+ if (!precondition(resource))
+ return false;
+ resource.save(options);
+ return true;
+ }
+
+ protected boolean precondition(Resource resource) {
+ return true;
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/ValidateResourceSaveManager.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/ValidateResourceSaveManager.java
new file mode 100644
index 000000000..00e21693d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/ValidateResourceSaveManager.java
@@ -0,0 +1,67 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.edit;
+
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.Diagnostician;
+import org.eclipse.jface.dialogs.MessageDialog;
+
+import com.google.inject.Inject;
+
+/**
+ * Executes validation before saving.
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class ValidateResourceSaveManager extends ResourceSaveManager {
+
+ @Inject
+ protected Diagnostician diagnostician;
+
+ @Override
+ protected boolean precondition(Resource resource) {
+ return super.precondition(resource) && validateModel(resource);
+ }
+
+ protected boolean validateModel(Resource resource) {
+ for (EObject eObject : resource.getContents()) {
+ Diagnostic diagnostic = diagnostician.validate(eObject);
+ if (diagnostic.getSeverity() == Diagnostic.ERROR) {
+ String errors = buildMessageString(diagnostic, Diagnostic.ERROR);
+ MessageDialog.openError(null, "Validation Error", errors);
+ return false;
+ } else if (diagnostic.getSeverity() == Diagnostic.WARNING) {
+ String warnings = buildMessageString(diagnostic,
+ Diagnostic.ERROR);
+ MessageDialog.openWarning(null, "Validation Warning", warnings);
+ }
+ }
+ return true;
+ }
+
+ protected String buildMessageString(Diagnostic diagnosticParent, int level) {
+ String messages = "";
+ for (Diagnostic diagnostic : diagnosticParent.getChildren()) {
+ messages = recoursiveAddMessage(messages, diagnostic, level);
+ }
+ return messages;
+ }
+
+ protected String recoursiveAddMessage(String messages,
+ Diagnostic diagnostic, int level) {
+ if (diagnostic.getChildren().size() == 0) {
+ messages += "- " + diagnostic.getMessage() + "\n\n";
+ } else {
+ for (Diagnostic diagnosticChild : diagnostic.getChildren()) {
+ messages = recoursiveAddMessage(messages, diagnosticChild,
+ level);
+ }
+ }
+ return messages;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/action/EditingActionManager.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/action/EditingActionManager.java
new file mode 100644
index 000000000..64917059b
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/action/EditingActionManager.java
@@ -0,0 +1,206 @@
+package org.eclipse.emf.parsley.edit.action;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.ui.action.CommandActionHandler;
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CopyAction;
+import org.eclipse.emf.edit.ui.action.CutAction;
+import org.eclipse.emf.edit.ui.action.DeleteAction;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.PasteAction;
+import org.eclipse.emf.edit.ui.action.RedoAction;
+import org.eclipse.emf.edit.ui.action.UndoAction;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.internal.WorkbenchImages;
+import org.eclipse.ui.part.IPage;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+
+public class EditingActionManager {
+
+ private CommandActionHandler deleteAction;
+
+ private CommandActionHandler cutAction;
+
+ private CommandActionHandler copyAction;
+
+ private CommandActionHandler pasteAction;
+
+ private UndoAction undoAction;
+
+ private RedoAction redoAction;
+
+ public void initializeActions(IActionBars actionBars) {
+
+ createActions();
+
+ actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(),
+ deleteAction);
+ actionBars.setGlobalActionHandler(ActionFactory.CUT.getId(), cutAction);
+ actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(),
+ copyAction);
+ actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(),
+ pasteAction);
+ actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(),
+ undoAction);
+ actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(),
+ redoAction);
+ }
+
+ public void createActions() {
+ ISharedImages sharedImages = getSharedImages();
+
+ deleteAction = createDeleteAction();
+ deleteAction.setImageDescriptor(sharedImages
+ .getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
+
+ cutAction = createCutAction();
+ cutAction.setImageDescriptor(sharedImages
+ .getImageDescriptor(ISharedImages.IMG_TOOL_CUT));
+
+ copyAction = createCopyAction();
+ copyAction.setImageDescriptor(sharedImages
+ .getImageDescriptor(ISharedImages.IMG_TOOL_COPY));
+
+ pasteAction = createPasteAction();
+ pasteAction.setImageDescriptor(sharedImages
+ .getImageDescriptor(ISharedImages.IMG_TOOL_PASTE));
+
+ undoAction = createUndoAction();
+ undoAction.setImageDescriptor(sharedImages
+ .getImageDescriptor(ISharedImages.IMG_TOOL_UNDO));
+
+ redoAction = createRedoAction();
+ redoAction.setImageDescriptor(sharedImages
+ .getImageDescriptor(ISharedImages.IMG_TOOL_REDO));
+ }
+
+ protected ISharedImages getSharedImages() {
+ return new ISharedImages() {
+ public Image getImage(String symbolicName) {
+ return getImageDescriptor(symbolicName).createImage();
+ }
+ public ImageDescriptor getImageDescriptor(String symbolicName) {
+ return (ImageDescriptor) WorkbenchImages.getImageDescriptor(symbolicName);
+ }
+ };
+ }
+
+ public void shareGlobalActions(IPage page, IActionBars actionBars) {
+ if (!(page instanceof IPropertySheetPage)) {
+ actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(),
+ deleteAction);
+ actionBars.setGlobalActionHandler(ActionFactory.CUT.getId(),
+ cutAction);
+ actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(),
+ copyAction);
+ actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(),
+ pasteAction);
+ }
+ actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(),
+ undoAction);
+ actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(),
+ redoAction);
+ }
+
+ public void removeSelectionChangeListener(
+ ISelectionProvider selectionProvider) {
+ selectionProvider.removeSelectionChangedListener(deleteAction);
+ selectionProvider.removeSelectionChangedListener(cutAction);
+ selectionProvider.removeSelectionChangedListener(copyAction);
+ selectionProvider.removeSelectionChangedListener(pasteAction);
+ }
+
+ public void setEditingDomain(EditingDomain editingDomain) {
+ deleteAction.setEditingDomain(editingDomain);
+ cutAction.setEditingDomain(editingDomain);
+ copyAction.setEditingDomain(editingDomain);
+ pasteAction.setEditingDomain(editingDomain);
+ undoAction.setEditingDomain(editingDomain);
+ redoAction.setEditingDomain(editingDomain);
+ }
+
+ public void addSelectionListener(ISelectionProvider selectionProvider) {
+ selectionProvider.addSelectionChangedListener(deleteAction);
+ selectionProvider.addSelectionChangedListener(cutAction);
+ selectionProvider.addSelectionChangedListener(copyAction);
+ selectionProvider.addSelectionChangedListener(pasteAction);
+ }
+
+ public void updateSelection(ISelection selection) {
+ if (selection instanceof IStructuredSelection) {
+ IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+ deleteAction.updateSelection(structuredSelection);
+ cutAction.updateSelection(structuredSelection);
+ copyAction.updateSelection(structuredSelection);
+ pasteAction.updateSelection(structuredSelection);
+ }
+ }
+
+ public void updateUndoRedo() {
+ undoAction.update();
+ redoAction.update();
+ }
+
+ public void menuAboutToShow(IMenuManager menuManager) {
+ menuManager.add(new ActionContributionItem(undoAction));
+ menuManager.add(new ActionContributionItem(redoAction));
+ menuManager.add(new Separator());
+ menuManager.add(new ActionContributionItem(cutAction));
+ menuManager.add(new ActionContributionItem(copyAction));
+ menuManager.add(new ActionContributionItem(pasteAction));
+ menuManager.add(new Separator());
+ menuManager.add(new ActionContributionItem(deleteAction));
+ menuManager.add(new Separator());
+ }
+
+ protected DeleteAction createDeleteAction() {
+ return new DeleteAction(true);
+ }
+
+ protected CutAction createCutAction() {
+ return new CutAction();
+ }
+
+ protected CopyAction createCopyAction() {
+ return new CopyAction();
+ }
+
+ protected PasteAction createPasteAction() {
+ return new PasteAction();
+ }
+
+ protected UndoAction createUndoAction() {
+ return new UndoAction();
+ }
+
+ protected RedoAction createRedoAction() {
+ return new RedoAction();
+ }
+
+ protected LoadResourceAction createLoadResourceAction() {
+ return new LoadResourceAction();
+ }
+
+ public ControlAction createControlAction() {
+ return new ControlAction();
+ }
+
+ public EditingDomainValidateAction createValidateAction() {
+ return new EditingDomainValidateAction();
+ }
+
+ public UndoAction getUndoAction() {
+ return undoAction;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/action/EditingDomainValidateAction.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/action/EditingDomainValidateAction.java
new file mode 100644
index 000000000..36f709c10
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/action/EditingDomainValidateAction.java
@@ -0,0 +1,11 @@
+package org.eclipse.emf.parsley.edit.action;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+
+public class EditingDomainValidateAction extends ValidateAction{
+
+ public void setEditingDomain(EditingDomain domain){
+ this.domain=domain;
+ }
+ } \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/action/EmfActionManager.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/action/EmfActionManager.java
new file mode 100644
index 000000000..0549da6b6
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/action/EmfActionManager.java
@@ -0,0 +1,183 @@
+package org.eclipse.emf.parsley.edit.action;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.edit.command.CommandParameter;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.SubContributionItem;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.graphics.Image;
+
+import com.google.inject.Inject;
+
+public class EmfActionManager {
+
+ protected Collection<IAction> createSiblingActions;
+
+ protected IMenuManager createChildMenuManager;
+
+ protected IMenuManager createSiblingMenuManager;
+
+ protected Collection<IAction> createChildActions;
+
+ @Inject
+ protected ILabelProvider iLabelProvider;
+
+ private void generateCreateChildActions(EditingDomain domain,
+ Collection<?> descriptors, ISelection selection) {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null) {
+ for (Object descriptor : descriptors) {
+ CreateChildAction act = new CreateChildAction(domain,
+ selection, descriptor);
+ Object imageObj = iLabelProvider
+ .getImage(((CommandParameter) descriptor).getValue());
+ act.setImageDescriptor(ImageDescriptor
+ .createFromImage((Image) imageObj));
+ actions.add(act);
+ }
+ }
+ createChildActions = actions;
+ }
+
+ private void generateCreateSiblingActions(EditingDomain domain,
+ Collection<?> descriptors, ISelection selection) {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null) {
+ for (Object descriptor : descriptors) {
+ CreateSiblingAction act = new CreateSiblingAction(domain,
+ selection, descriptor);
+ Object imageObj = iLabelProvider
+ .getImage(((CommandParameter) descriptor).getValue());
+ act.setImageDescriptor(ImageDescriptor
+ .createFromImage((Image) imageObj));
+ actions.add(act);
+ }
+ }
+ createSiblingActions = actions;
+ }
+
+ public void depopulateChildManager(IMenuManager menuManager) {
+ depopulateManager(menuManager, createChildActions);
+ }
+
+ public void depopulateSibilingManager(IMenuManager menuManager) {
+ depopulateManager(menuManager, createSiblingActions);
+ }
+
+ public Collection<IAction> getCreateSiblingActions() {
+ return createSiblingActions;
+ }
+
+ public Collection<IAction> getCreateChildActions() {
+ return createChildActions;
+ }
+
+ public void menuAboutToShow(IMenuManager menuManager) {
+ MenuManager submenuManager = null;
+
+ submenuManager = new MenuManager("&New Child");
+ populateManager(submenuManager, createChildActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+
+ submenuManager = new MenuManager("N&ew Sibling");
+ populateManager(submenuManager, createSiblingActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+ }
+
+ public void populateChildMenuManager(IMenuManager menuManager) {
+ populateManager(menuManager, createChildActions, null);
+ }
+
+ public void populateSibilingMenuManager(IMenuManager menuManager) {
+ populateManager(menuManager, createSiblingActions, null);
+ }
+
+ public void contributeToMenu(IMenuManager submenuManager) {
+ createChildMenuManager = new MenuManager("&New Child");
+ submenuManager.insertBefore("additions", createChildMenuManager);
+
+ createSiblingMenuManager = new MenuManager("N&ew Sibling");
+ submenuManager.insertBefore("additions", createSiblingMenuManager);
+ }
+
+ public void updateSelection(ISelection selection, EditingDomain domain) {
+ depopulateChildManager(createChildMenuManager);
+ depopulateSibilingManager(createSiblingMenuManager);
+
+ Collection<?> newChildDescriptors = null;
+ Collection<?> newSiblingDescriptors = null;
+
+ if (selection instanceof IStructuredSelection
+ && ((IStructuredSelection) selection).size() == 1) {
+ Object object = ((IStructuredSelection) selection)
+ .getFirstElement();
+
+ newChildDescriptors = domain.getNewChildDescriptors(object, null);
+ newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+ }
+
+ generateCreateChildActions(domain, newChildDescriptors, selection);
+ generateCreateSiblingActions(domain, newSiblingDescriptors, selection);
+
+ if (createChildMenuManager != null) {
+ populateChildMenuManager(createChildMenuManager);
+ createChildMenuManager.update(true);
+ }
+ if (createSiblingMenuManager != null) {
+ populateSibilingMenuManager(createSiblingMenuManager);
+ createSiblingMenuManager.update(true);
+ }
+ }
+
+ protected void depopulateManager(IContributionManager manager,
+ Collection<? extends IAction> actions) {
+ if (manager != null && actions != null) {
+ IContributionItem[] items = manager.getItems();
+ for (int i = 0; i < items.length; i++) {
+ // Look into SubContributionItems
+ //
+ IContributionItem contributionItem = items[i];
+ while (contributionItem instanceof SubContributionItem) {
+ contributionItem = ((SubContributionItem) contributionItem)
+ .getInnerItem();
+ }
+
+ // Delete the ActionContributionItems with matching action.
+ //
+ if (contributionItem instanceof ActionContributionItem) {
+ IAction action = ((ActionContributionItem) contributionItem)
+ .getAction();
+ if (actions.contains(action)) {
+ manager.remove(contributionItem);
+ }
+ }
+ }
+ }
+ }
+
+ protected void populateManager(IContributionManager manager,
+ Collection<? extends IAction> actions, String contributionID) {
+ if (actions != null) {
+ for (IAction action : actions) {
+ if (contributionID != null) {
+ manager.insertBefore(contributionID, action);
+ } else {
+ manager.add(action);
+ }
+ }
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/actionbar/TreeActionBarContributor.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/actionbar/TreeActionBarContributor.java
new file mode 100644
index 000000000..3fdd2f32c
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/actionbar/TreeActionBarContributor.java
@@ -0,0 +1,52 @@
+package org.eclipse.emf.parsley.edit.actionbar;
+
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.parsley.edit.action.EditingActionManager;
+import org.eclipse.emf.parsley.edit.action.EmfActionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredViewer;
+
+import com.google.inject.Inject;
+
+public class TreeActionBarContributor implements IMenuListener,
+ ISelectionChangedListener {
+
+ protected EditingDomain editingDomain;
+
+ @Inject
+ EmfActionManager emfActionManager;
+
+ @Inject
+ EditingActionManager editingActionManager;
+
+ public void initialize(EditingDomain editingDomain) {
+ this.editingDomain = editingDomain;
+ editingActionManager.createActions();
+ editingActionManager.setEditingDomain(editingDomain);
+ }
+
+ public void menuAboutToShow(IMenuManager menuManager) {
+ menuManager.add(new Separator("edit"));
+ emfActionManager.menuAboutToShow(menuManager);
+ editingActionManager.menuAboutToShow(menuManager);
+ }
+
+ protected SelectionChangedEvent lastSelectionChangedEvent;
+
+ public void selectionChanged(SelectionChangedEvent event) {
+ editingActionManager.updateSelection(event.getSelection());
+ emfActionManager.updateSelection(event.getSelection(), editingDomain);
+ }
+
+ protected StructuredViewer viewer;
+
+ public void setViewerForSelection(StructuredViewer viewer) {
+ this.viewer = viewer;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/actionbar/WorkbenchActionBarContributor.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/actionbar/WorkbenchActionBarContributor.java
new file mode 100644
index 000000000..21daa556d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/actionbar/WorkbenchActionBarContributor.java
@@ -0,0 +1,313 @@
+package org.eclipse.emf.parsley.edit.actionbar;
+
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.parsley.edit.action.EditingActionManager;
+import org.eclipse.emf.parsley.edit.action.EditingDomainValidateAction;
+import org.eclipse.emf.parsley.edit.action.EmfActionManager;
+import org.eclipse.emf.parsley.util.ActionBarsUtils;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IPropertyListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.part.IPage;
+import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
+
+import com.google.inject.Inject;
+
+/**
+ * This is a contributor for an editor, multi-page or otherwise, that implements
+ * {@link IEditingDomainProvider}. It automatically hooks up the Undo, Redo,
+ * Cut, Copy, Paste, and Delete actions on the Edit menu to the corresponding
+ * commands supported by the {@link org.eclipse.emf.edit.domain.EditingDomain}.
+ * The editor site'selection provider is used to keep the Cut, Copy, Paste, and
+ * Delete actions up-to-date. The actions are also refreshed every time the
+ * editor fires to its {@link IPropertyListener}s.
+ * <p>
+ * Another very useful feature of this contributor is that it can be used as
+ * follows:
+ *
+ * <pre>
+ * ((IMenuListener) ((IEditorSite) getSite()).getActionBarContributor())
+ * .menuAboutToShow(menuManager);
+ * </pre>
+ *
+ * to contribute the Edit menu actions to a pop-up menu.
+ */
+public class WorkbenchActionBarContributor extends
+ MultiPageEditorActionBarContributor implements IMenuListener,
+ IPropertyListener, ISelectionChangedListener {
+
+ protected IWorkbenchPart activePart;
+
+ protected EditingDomainValidateAction validateAction;
+
+ protected ControlAction controlAction;
+
+ public static final int ADDITIONS_LAST_STYLE = 0x1;
+
+ protected int style;
+
+ @Inject
+ protected EmfActionManager emfActionManager;
+
+ @Inject
+ protected EditingActionManager editingActionManager;
+
+ protected ISelectionProvider explicitSelectionProvider = null;
+
+ public WorkbenchActionBarContributor() {
+ this(ADDITIONS_LAST_STYLE);
+ }
+
+ public WorkbenchActionBarContributor(int style) {
+ super();
+ this.style = style;
+ }
+
+ public void setExplicitSelectionProvider(
+ ISelectionProvider explicitSelectionProvider) {
+ this.explicitSelectionProvider = explicitSelectionProvider;
+ }
+
+ @Override
+ public void init(IActionBars actionBars) {
+ super.init(actionBars);
+ initializeActions(actionBars);
+ }
+
+ protected void initializeActions(IActionBars actionBars) {
+ editingActionManager.initializeActions(actionBars);
+ validateAction = editingActionManager.createValidateAction();
+ controlAction = editingActionManager.createControlAction();
+ }
+
+ protected boolean removeAllReferencesOnDelete() {
+ return true;
+ }
+
+ @Override
+ public void contributeToMenu(IMenuManager menuManager) {
+ IMenuManager submenuManager = new MenuManager("Emf Parsley",
+ "org.eclipse.emf.parsley.MenuID");
+
+ menuManager.insertAfter("additions", submenuManager);
+ submenuManager.add(new Separator("settings"));
+ submenuManager.add(new Separator("actions"));
+ submenuManager.add(new Separator("additions"));
+ submenuManager.add(new Separator("additions-end"));
+
+ emfActionManager.contributeToMenu(submenuManager);
+
+ submenuManager.addMenuListener(new IMenuListener() {
+ public void menuAboutToShow(IMenuManager menuManager) {
+ menuManager.updateAll(true);
+ }
+ });
+
+ addGlobalActions(submenuManager);
+ }
+
+ @Override
+ public void contributeToStatusLine(IStatusLineManager statusLineManager) {
+ super.contributeToStatusLine(statusLineManager);
+ }
+
+ @Override
+ public void contributeToToolBar(IToolBarManager toolBarManager) {
+ toolBarManager.add(new Separator("ecore-settings"));
+ toolBarManager.add(new Separator("ecore-additions"));
+ }
+
+ public void shareGlobalActions(IPage page, IActionBars actionBars) {
+ editingActionManager.shareGlobalActions(page, actionBars);
+ }
+
+ public IEditorPart getActiveEditor() {
+ if (activePart instanceof IEditorPart) {
+ return (IEditorPart) activePart;
+ }
+ return null;
+ }
+
+ @Override
+ public void setActiveEditor(IEditorPart part) {
+ super.setActiveEditor(part);
+
+ setActivePart(part);
+ }
+
+ public void setActivePart(IWorkbenchPart part) {
+ if (part != activePart) {
+ if (activePart != null) {
+ deactivate();
+ }
+
+ if (part instanceof IEditingDomainProvider) {
+ activePart = part;
+ activate();
+
+ }
+ }
+ activePart = part;
+ }
+
+ @Override
+ public void setActivePage(IEditorPart part) {
+ // Do nothing
+ }
+
+ public void deactivate() {
+ activePart.removePropertyListener(this);
+
+ ISelectionProvider selectionProvider = retrieveSelectionProvider();
+
+ if (selectionProvider != null) {
+ editingActionManager
+ .removeSelectionChangeListener(selectionProvider);
+ if (controlAction != null) {
+ selectionProvider.removeSelectionChangedListener(controlAction);
+ }
+ if (validateAction != null) {
+ selectionProvider
+ .removeSelectionChangedListener(validateAction);
+ }
+ }
+ }
+
+ public void activate() {
+ activePart.addPropertyListener(this);
+
+ ensureActionsAreInitialized();
+
+ if (activePart instanceof IEditingDomainProvider) {
+ EditingDomain editingDomain = ((IEditingDomainProvider) activePart)
+ .getEditingDomain();
+ editingActionManager.setEditingDomain(editingDomain);
+
+ if (controlAction != null) {
+ controlAction.setEditingDomain(editingDomain);
+ }
+ if (validateAction != null) {
+ validateAction.setEditingDomain(editingDomain);
+ }
+ }
+
+ ISelectionProvider selectionProvider = retrieveSelectionProvider();
+
+ if (selectionProvider != null) {
+
+ editingActionManager.addSelectionListener(selectionProvider);
+
+ if (controlAction != null) {
+ selectionProvider.addSelectionChangedListener(controlAction);
+ }
+
+ if (validateAction != null) {
+ selectionProvider.addSelectionChangedListener(validateAction);
+ }
+ }
+ update();
+ }
+
+ protected ISelectionProvider retrieveSelectionProvider() {
+ if (explicitSelectionProvider != null)
+ return explicitSelectionProvider;
+
+ return activePart instanceof ISelectionProvider ? (ISelectionProvider) activePart
+ : activePart.getSite().getSelectionProvider();
+ }
+
+ public void update() {
+ ISelectionProvider selectionProvider = retrieveSelectionProvider();
+
+ if (selectionProvider != null) {
+ ISelection selection = selectionProvider.getSelection();
+ IStructuredSelection structuredSelection = selection instanceof IStructuredSelection ? (IStructuredSelection) selection
+ : StructuredSelection.EMPTY;
+
+ editingActionManager.updateSelection(structuredSelection);
+ if (controlAction != null) {
+ controlAction.updateSelection(structuredSelection);
+ }
+
+ if (validateAction != null) {
+ validateAction.updateSelection(structuredSelection);
+ }
+ }
+ editingActionManager.updateUndoRedo();
+
+ }
+
+ public void menuAboutToShow(IMenuManager menuManager) {
+ if ((style & ADDITIONS_LAST_STYLE) == 0) {
+ menuManager.add(new Separator("additions"));
+ }
+ menuManager.add(new Separator("edit"));
+
+ ensureActionsAreInitialized();
+ editingActionManager.menuAboutToShow(menuManager);
+
+ if ((style & ADDITIONS_LAST_STYLE) != 0) {
+ menuManager.add(new Separator("additions"));
+ menuManager.add(new Separator());
+ }
+ menuManager.add(new Separator("additions-end"));
+
+ addGlobalActions(menuManager);
+
+ emfActionManager.menuAboutToShow(menuManager);
+ }
+
+ protected void ensureActionsAreInitialized() {
+ if (editingActionManager.getUndoAction() != null)
+ return;
+ initializeActions(ActionBarsUtils.getActionBars(activePart));
+ }
+
+ protected void addGlobalActions(IMenuManager menuManager) {
+ menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+
+ String key = (style & ADDITIONS_LAST_STYLE) == 0 ? "additions-end"
+ : "additions";
+ if (validateAction != null) {
+ menuManager.insertBefore(key, new ActionContributionItem(
+ validateAction));
+ }
+
+ if (controlAction != null) {
+ menuManager.insertBefore(key, new ActionContributionItem(
+ controlAction));
+ }
+
+ if (validateAction != null || controlAction != null) {
+ menuManager.insertBefore(key, new Separator());
+ }
+ }
+
+ public void propertyChanged(Object source, int id) {
+ update();
+ }
+
+ public void selectionChanged(SelectionChangedEvent event) {
+ EditingDomain domain = ((IEditingDomainProvider) activePart)
+ .getEditingDomain();
+ emfActionManager.updateSelection(event.getSelection(), domain);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/domain/InjectableAdapterFactoryEditingDomain.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/domain/InjectableAdapterFactoryEditingDomain.java
new file mode 100644
index 000000000..88dc656e2
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/domain/InjectableAdapterFactoryEditingDomain.java
@@ -0,0 +1,32 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.edit.domain;
+
+import java.util.HashMap;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+
+import com.google.inject.Inject;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ * Injectable {@link AdapterFactoryEditingDomain}
+ */
+public class InjectableAdapterFactoryEditingDomain extends
+ AdapterFactoryEditingDomain {
+
+ @Inject
+ public InjectableAdapterFactoryEditingDomain(AdapterFactory adapterFactory) {
+ super(adapterFactory, new BasicCommandStack(),
+ new HashMap<Resource, Boolean>());
+
+ getResourceSet().getURIConverter().getURIMap()
+ .putAll(EcorePlugin.computePlatformURIMap());
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/provider/InjectableAdapterFactory.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/provider/InjectableAdapterFactory.java
new file mode 100644
index 000000000..9998ed8b2
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/provider/InjectableAdapterFactory.java
@@ -0,0 +1,31 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.edit.provider;
+
+import org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory.Descriptor.Registry;
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+
+import com.google.inject.Inject;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ * based on the homonymous class in xtext.ui
+ *
+ */
+public class InjectableAdapterFactory extends ComposedAdapterFactory {
+
+ @Inject
+ public InjectableAdapterFactory(Registry adapterFactoryDescriptorRegistry) {
+ super(adapterFactoryDescriptorRegistry);
+
+ addAdapterFactory(new ResourceItemProviderAdapterFactory());
+ addAdapterFactory(new EcoreItemProviderAdapterFactory());
+ addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/ui/provider/InjectableAdapterFactoryLabelProvider.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/ui/provider/InjectableAdapterFactoryLabelProvider.java
new file mode 100644
index 000000000..7d1da275f
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/ui/provider/InjectableAdapterFactoryLabelProvider.java
@@ -0,0 +1,33 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.edit.ui.provider;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+
+import com.google.inject.Inject;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ * based on the homonymous class in xtext.ui
+ *
+ */
+public class InjectableAdapterFactoryLabelProvider extends
+ AdapterFactoryLabelProvider {
+
+ @Inject
+ public InjectableAdapterFactoryLabelProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ @Override
+ public String getText(Object object) {
+ IItemLabelProvider itemLabelProvider = (IItemLabelProvider) adapterFactory
+ .adapt(object, IItemLabelProvider.class);
+ return itemLabelProvider != null ? itemLabelProvider.getText(object)
+ : object == null ? "" : object.toString();
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/ui/provider/ViewerContentProvider.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/ui/provider/ViewerContentProvider.java
new file mode 100644
index 000000000..b8b715d14
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/edit/ui/provider/ViewerContentProvider.java
@@ -0,0 +1,75 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.edit.ui.provider;
+
+import org.eclipse.emf.parsley.runtime.util.PolymorphicDispatcher;
+
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.parsley.util.EmfComponentsUtil;
+
+import com.google.inject.Inject;
+
+/**
+ * Declarative ContentProvider based on {@link AdapterFactoryContentProvider}.
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class ViewerContentProvider extends AdapterFactoryContentProvider {
+
+ @Inject
+ public ViewerContentProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ private PolymorphicDispatcher<Object> childrenDispatcher = PolymorphicDispatcher
+ .createForSingleTarget("children", 1, 1, this);
+
+// /**
+// * This implements {@link IStructuredItemContentProvider#getElements
+// * IStructuredItemContentProvider.getElements} by forwarding the call to
+// * {@link #getChildren getChildren}. It seems that you almost always want
+// * getElements and getChildren to return the same thing, so this makes that
+// * easy.
+// */
+// public Object[] getElements(Object inputElement) {
+// return getChildren(inputElement);
+// }
+
+ /**
+ * This implements {@link ITreeItemContentProvider#hasChildren
+ * ITreeItemContentProvider.hasChildren}. The default, non-optimized
+ * approach simply tests whether whether {@link #getChildren getChildren}
+ * returns any children.
+ */
+ public boolean hasChildren(Object element) {
+ // Lorenzo: ugly hack
+ // if the super method is not invoked the tree is not
+ // refreshed correctly
+ super.hasChildren(element); // ignore it.
+ return getChildren(element).length > 0;
+ }
+
+ /**
+ * The default implementation
+ *
+ * @param o
+ * @return null
+ */
+ public List<Object> children(Object o) {
+ return null;
+ }
+
+ @Override
+ public Object[] getChildren(Object element) {
+ Object children = childrenDispatcher.invoke(element);
+ if (children != null) {
+ return EmfComponentsUtil.ensureCollection(children).toArray();
+ }
+ return super.getChildren(element);
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/ColumnLabelProviderFactory.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/ColumnLabelProviderFactory.java
new file mode 100644
index 000000000..e7eba2fa3
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/ColumnLabelProviderFactory.java
@@ -0,0 +1,68 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.factories;
+
+
+import org.eclipse.core.databinding.observable.map.IObservableMap;
+import org.eclipse.emf.databinding.EMFProperties;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.ui.provider.AdapterMapCellLabelProvider;
+import org.eclipse.emf.parsley.ui.provider.TableColumnLabelProvider;
+import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
+import org.eclipse.jface.viewers.CellLabelProvider;
+import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ * factory for ColumnLabelProvider
+ *
+ */
+public class ColumnLabelProviderFactory {
+
+ @Inject
+ protected Provider<ILabelProvider> labelProviderProvider;
+
+ @Inject
+ protected Provider<TableColumnLabelProvider> tableColumnProviderProvider;
+
+ public ColumnLabelProvider createColumnLabelProvider(
+ EStructuralFeature eStructuralFeature) {
+ TableColumnLabelProvider columnProvider = tableColumnProviderProvider
+ .get();
+ columnProvider.seteStructuralFeature(eStructuralFeature);
+ return columnProvider;
+ }
+
+ public CellLabelProvider createColumnLabelProvider(
+ EStructuralFeature eStructuralFeature,
+ IStructuredContentProvider contentProvider) {
+ if (contentProvider instanceof ObservableListContentProvider) {
+ return createColumnLabelProvider(eStructuralFeature,
+ (ObservableListContentProvider) contentProvider);
+ } else {
+ return createColumnLabelProvider(eStructuralFeature);
+ }
+ }
+
+ public CellLabelProvider createColumnLabelProvider(
+ EStructuralFeature eStructuralFeature,
+ ObservableListContentProvider cp) {
+ TableColumnLabelProvider columnProvider = tableColumnProviderProvider
+ .get();
+ columnProvider.seteStructuralFeature(eStructuralFeature);
+
+ IObservableMap observableMap = EMFProperties.value(eStructuralFeature)
+ .observeDetail(cp.getKnownElements());
+ // IObservableMap[] observableMaps=new IObservableMap[]{observableMap};
+ return new AdapterMapCellLabelProvider(observableMap,
+ labelProviderProvider.get());
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/FormFactory.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/FormFactory.java
new file mode 100644
index 000000000..03b38c141
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/FormFactory.java
@@ -0,0 +1,34 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.factories;
+
+
+import org.eclipse.emf.parsley.widgets.FormDetailComposite;
+import org.eclipse.swt.widgets.Composite;
+
+import com.google.inject.Inject;
+import com.google.inject.MembersInjector;
+
+/**
+ * @author bettini
+ *
+ */
+public class FormFactory {
+
+ @Inject
+ protected MembersInjector<FormDetailComposite> formDetailCompositeMembersInjector;
+
+ @Inject
+ public FormFactory() {
+
+ }
+
+ public FormDetailComposite createFormDetailComposite(Composite parent,
+ int style) {
+ FormDetailComposite formDetailComposite = new FormDetailComposite(parent, style);
+ formDetailCompositeMembersInjector.injectMembers(formDetailComposite);
+ return formDetailComposite;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/TableFormFactory.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/TableFormFactory.java
new file mode 100644
index 000000000..8129ca7f7
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/TableFormFactory.java
@@ -0,0 +1,43 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.factories;
+
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.parsley.widgets.TableFormComposite;
+import org.eclipse.emf.parsley.widgets.TreeFormComposite;
+import org.eclipse.swt.widgets.Composite;
+
+import com.google.inject.Inject;
+import com.google.inject.MembersInjector;
+
+/**
+ * @author bettini
+ *
+ */
+public class TableFormFactory {
+
+ @Inject
+ protected MembersInjector<TableFormComposite> tableFormCompositeMembersInjector;
+
+ @Inject
+ public TableFormFactory() {
+
+ }
+
+ public TableFormComposite createTableFormMasterDetailComposite(
+ Composite parent, int style, EClass type) {
+ TableFormComposite tableFormComposite = new TableFormComposite(parent,style);
+ tableFormCompositeMembersInjector.injectMembers(tableFormComposite);
+ tableFormComposite.buildTable(type);
+ return tableFormComposite;
+ }
+
+ public TableFormComposite createTableFormMasterDetailComposite(
+ Composite parent, int style) {
+ TableFormComposite tableFormComposite = new TableFormComposite(parent,style, true);
+ tableFormCompositeMembersInjector.injectMembers(tableFormComposite);
+ return tableFormComposite;
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/TreeFormFactory.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/TreeFormFactory.java
new file mode 100644
index 000000000..8c3f9845c
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/TreeFormFactory.java
@@ -0,0 +1,34 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.factories;
+
+
+import org.eclipse.emf.parsley.widgets.TreeFormComposite;
+import org.eclipse.swt.widgets.Composite;
+
+import com.google.inject.Inject;
+import com.google.inject.MembersInjector;
+
+/**
+ * @author bettini
+ *
+ */
+public class TreeFormFactory {
+
+ @Inject
+ protected MembersInjector<TreeFormComposite> treeFormCompositeMembersInjector;
+
+ @Inject
+ public TreeFormFactory() {
+
+ }
+
+ public TreeFormComposite createTreeFormMasterDetailComposite(
+ Composite parent, int style) {
+ TreeFormComposite treeFormComposite = new TreeFormComposite(parent,
+ style);
+ treeFormCompositeMembersInjector.injectMembers(treeFormComposite);
+ return treeFormComposite;
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/ViewerFactory.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/ViewerFactory.java
new file mode 100644
index 000000000..d04f0b787
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/factories/ViewerFactory.java
@@ -0,0 +1,75 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.factories;
+
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.parsley.builders.TableViewerBuilder;
+import org.eclipse.emf.parsley.viewers.ViewerInitializer;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Tree;
+
+import com.google.inject.Inject;
+
+/**
+ * Factory for viewers for EMF resources.
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class ViewerFactory {
+
+ @Inject
+ protected ViewerInitializer viewerInitializer;
+ @Inject
+ protected TableViewerBuilder tableViewerBuilder;
+
+ public TreeViewer createTreeViewer(Composite parent, int style,
+ URI resourceURI) {
+ TreeViewer treeViewer = new TreeViewer(parent, style);
+ update(treeViewer, resourceURI);
+ return treeViewer;
+ }
+
+ public TreeViewer createTreeViewer(Tree tree, URI resourceURI) {
+ TreeViewer treeViewer = new TreeViewer(tree);
+ update(treeViewer, resourceURI);
+ return treeViewer;
+ }
+
+ public TreeViewer createTreeViewer(Composite parent, int style,
+ AdapterFactoryEditingDomain editingDomain) {
+ TreeViewer treeViewer = new TreeViewer(parent, style);
+ update(treeViewer, editingDomain);
+ return treeViewer;
+ }
+
+ public TreeViewer createTreeViewer(Tree tree,
+ AdapterFactoryEditingDomain editingDomain) {
+ TreeViewer treeViewer = new TreeViewer(tree);
+ update(treeViewer, editingDomain);
+ return treeViewer;
+ }
+
+ public TableViewer createTableViewer(Composite parent, int style,
+ Object content, EClass type) {
+ TableViewer tableViewer = new TableViewer(parent, style);
+ tableViewerBuilder.buildAndFill(tableViewer, content, type);
+ return tableViewer;
+ }
+
+ protected void update(TreeViewer treeViewer,
+ AdapterFactoryEditingDomain editingDomain) {
+ viewerInitializer.initialize(treeViewer, editingDomain);
+ }
+
+ protected void update(TreeViewer treeViewer, URI resourceURI) {
+ viewerInitializer.initialize(treeViewer, resourceURI);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/handlers/OutlineSelectionHandler.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/handlers/OutlineSelectionHandler.java
new file mode 100644
index 000000000..b339e7b23
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/handlers/OutlineSelectionHandler.java
@@ -0,0 +1,52 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.handlers;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+
+/**
+ * @author bettini
+ *
+ */
+public class OutlineSelectionHandler {
+ protected StructuredViewer selectionViewer;
+
+ public StructuredViewer getSelectionViewer() {
+ return selectionViewer;
+ }
+
+ public void setSelectionViewer(StructuredViewer selectionViewer) {
+ this.selectionViewer = selectionViewer;
+ }
+
+ public void handleContentOutlineSelection(ISelection selection) {
+ if (selectionViewer != null && !selection.isEmpty()
+ && selection instanceof IStructuredSelection) {
+ Iterator<?> selectedElements = ((IStructuredSelection) selection)
+ .iterator();
+ if (selectedElements.hasNext()) {
+ // Get the first selected element.
+ //
+ Object selectedElement = selectedElements.next();
+
+ ArrayList<Object> selectionList = new ArrayList<Object>();
+ selectionList.add(selectedElement);
+ while (selectedElements.hasNext()) {
+ selectionList.add(selectedElements.next());
+ }
+
+ // Set the selection to the widget.
+ //
+ selectionViewer.setSelection(new StructuredSelection(
+ selectionList));
+ }
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/listeners/ViewerMouseAdapter.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/listeners/ViewerMouseAdapter.java
new file mode 100644
index 000000000..01282a38d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/listeners/ViewerMouseAdapter.java
@@ -0,0 +1,29 @@
+package org.eclipse.emf.parsley.listeners;
+
+
+import org.eclipse.emf.parsley.EmfComponentsCommonActivator;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * This default implementation opens the Properties view upon doubleclick.
+ *
+ * @author bettini
+ *
+ */
+public class ViewerMouseAdapter extends MouseAdapter {
+
+ @Override
+ public void mouseDoubleClick(MouseEvent event) {
+ if (event.button == 1) {
+ try {
+ PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
+ .showView("org.eclipse.ui.views.PropertySheet");
+ } catch (PartInitException exception) {
+ EmfComponentsCommonActivator.log(exception);
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/listeners/ViewerNoOpMouseAdapter.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/listeners/ViewerNoOpMouseAdapter.java
new file mode 100644
index 000000000..db3b4f479
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/listeners/ViewerNoOpMouseAdapter.java
@@ -0,0 +1,23 @@
+package org.eclipse.emf.parsley.listeners;
+
+import org.eclipse.swt.events.MouseEvent;
+
+/**
+ * This implementation does nothing upon events.
+ *
+ * @author bettini
+ *
+ */
+public class ViewerNoOpMouseAdapter extends ViewerMouseAdapter {
+ @Override
+ public void mouseDoubleClick(MouseEvent event) {
+ }
+
+ @Override
+ public void mouseDown(MouseEvent e) {
+ }
+
+ @Override
+ public void mouseUp(MouseEvent e) {
+ }
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/menus/ViewerContextMenuFactory.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/menus/ViewerContextMenuFactory.java
new file mode 100644
index 000000000..a5db0d3e3
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/menus/ViewerContextMenuFactory.java
@@ -0,0 +1,58 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.menus;
+
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.widgets.Menu;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+public class ViewerContextMenuFactory {
+
+ public MenuManager createContextMenuFor(StructuredViewer viewer,
+ AdapterFactoryEditingDomain editingDomain) {
+ MenuManager menuManager = createMenuManager();
+ createMenu(viewer, menuManager);
+
+ addDragAndDrop(viewer, editingDomain);
+
+ return menuManager;
+ }
+
+ protected void addDragAndDrop(StructuredViewer viewer,
+ AdapterFactoryEditingDomain editingDomain) {
+ int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+ Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
+ viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(
+ viewer));
+ viewer.addDropSupport(dndOperations, transfers,
+ new EditingDomainViewerDropAdapter(editingDomain,
+ viewer));
+ }
+
+ protected void createMenu(StructuredViewer viewer,
+ MenuManager menuManager) {
+ Menu menu = menuManager.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+
+ }
+
+ protected MenuManager createMenuManager() {
+ MenuManager menuManager = new MenuManager("#PopUp");
+ menuManager.add(new Separator("additions"));
+ menuManager.setRemoveAllWhenShown(true);
+ return menuManager;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/EmptyResourceInitializer.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/EmptyResourceInitializer.java
new file mode 100644
index 000000000..455a3dc47
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/EmptyResourceInitializer.java
@@ -0,0 +1,20 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.resource;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * This is used when a loaded resource is empty, so that the programmer
+ * can add default contents.
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class EmptyResourceInitializer {
+
+ public void initialize(Resource resource) {
+
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/LoadResourceResponse.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/LoadResourceResponse.java
new file mode 100644
index 000000000..6c09637f6
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/LoadResourceResponse.java
@@ -0,0 +1,32 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.resource;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * @author bettini
+ *
+ */
+public class LoadResourceResponse {
+
+ protected Resource resource;
+
+ protected Exception exception;
+
+ public LoadResourceResponse(Resource resource, Exception exception) {
+ super();
+ this.resource = resource;
+ this.exception = exception;
+ }
+
+ public Resource getResource() {
+ return resource;
+ }
+
+ public Exception getException() {
+ return exception;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/ResourceLoader.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/ResourceLoader.java
new file mode 100644
index 000000000..6dded7521
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/resource/ResourceLoader.java
@@ -0,0 +1,54 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.resource;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+
+import com.google.inject.Inject;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+public class ResourceLoader {
+
+ @Inject
+ private EmptyResourceInitializer emptyResourceInitializer;
+
+ public Resource getResource(ResourceSet resourceSet, URI resourceURI) {
+ Resource resource = resourceSet.getResource(resourceURI, true);
+ if (resource.getContents().isEmpty())
+ emptyResourceInitializer.initialize(resource);
+ return resource;
+ }
+
+ /**
+ * Tries to load the resource using the resource set of the editing domain
+ * and returns a {@link LoadResourceResponse}.
+ *
+ * @param editingDomain
+ * @param resourceURI
+ * @return
+ */
+ public LoadResourceResponse getResource(
+ AdapterFactoryEditingDomain editingDomain, URI resourceURI) {
+ Resource resource = null;
+ Exception exception = null;
+ try {
+ // Load the resource through the editing domain.
+ resource = getResource(editingDomain.getResourceSet(), resourceURI);
+ } catch (Exception e) {
+ exception = e;
+ resource = editingDomain.getResourceSet().getResource(resourceURI,
+ false);
+ if (resource != null && resource.getContents().isEmpty())
+ emptyResourceInitializer.initialize(resource);
+ }
+
+ return new LoadResourceResponse(resource, exception);
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/EmfComponentsAbstractActivator.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/EmfComponentsAbstractActivator.java
new file mode 100644
index 000000000..d22cfff56
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/EmfComponentsAbstractActivator.java
@@ -0,0 +1,48 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.ui;
+
+import static com.google.inject.Guice.createInjector;
+
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+import com.google.inject.Injector;
+
+/**
+ * An abstract activator useful for wizards to be used as the base class for
+ * generated Java classes.
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public abstract class EmfComponentsAbstractActivator extends AbstractUIPlugin {
+
+ // the singleton Injector instance for this plugin
+ private Injector injector;
+
+ /**
+ * The constructor
+ */
+ public EmfComponentsAbstractActivator() {
+ }
+
+ /**
+ * Returns the singleton Injector for this plugin
+ *
+ * @return the singleton Injector for this plugin
+ */
+ public Injector getInjector() {
+ if (injector == null)
+ injector = createInjector(createModule());
+ return injector;
+ }
+
+ /**
+ * Creates the EmfComponentsGuiceModule for this this plugin
+ *
+ * @return the EmfComponentsGuiceModule for this this plugin
+ */
+ protected abstract EmfComponentsGuiceModule createModule();
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/AdapterMapCellLabelProvider.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/AdapterMapCellLabelProvider.java
new file mode 100644
index 000000000..c2a65f32c
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/AdapterMapCellLabelProvider.java
@@ -0,0 +1,28 @@
+package org.eclipse.emf.parsley.ui.provider;
+
+import org.eclipse.core.databinding.observable.map.IObservableMap;
+import org.eclipse.jface.databinding.viewers.ObservableMapCellLabelProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ViewerCell;
+
+public class AdapterMapCellLabelProvider extends ObservableMapCellLabelProvider {
+
+ ILabelProvider wrappedLabelProvider;
+
+ public AdapterMapCellLabelProvider(IObservableMap attributeMap, ILabelProvider wrappedLabelProvider) {
+ super(attributeMap);
+ this.wrappedLabelProvider=wrappedLabelProvider;
+ }
+
+
+ @Override
+ public void update(ViewerCell cell) {
+ Object element = cell.getElement();
+ Object value = attributeMaps[0].get(element);
+ //TODO Da finire
+ cell.setText(wrappedLabelProvider.getText(value));
+// cell.setImage(wrappedLabelProvider.getImage(element));
+ }
+
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/EClassToEStructuralFeatureAsStringsMap.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/EClassToEStructuralFeatureAsStringsMap.java
new file mode 100644
index 000000000..2736bdbf0
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/EClassToEStructuralFeatureAsStringsMap.java
@@ -0,0 +1,25 @@
+package org.eclipse.emf.parsley.ui.provider;
+
+import java.util.HashMap;
+import java.util.List;
+
+import com.google.common.collect.Lists;
+
+public class EClassToEStructuralFeatureAsStringsMap extends
+ HashMap<String, List<String>> {
+
+ private static final long serialVersionUID = -5838485782229839444L;
+
+ public void mapTo(String eClass, String... features) {
+ put(eClass, Lists.newArrayList(features));
+ }
+
+// put(eClass, Lists.newArrayList(Iterables.transform(
+// Lists.newArrayList(features),
+// new Function<String, FeatureNamePath>() {
+//
+// public FeatureNamePath apply(String input) {
+// return new FeatureNameSinglePath(input);
+// }
+// })));
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/FeaturesColumnProvider.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/FeaturesColumnProvider.java
new file mode 100644
index 000000000..e85ec72cf
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/FeaturesColumnProvider.java
@@ -0,0 +1,45 @@
+package org.eclipse.emf.parsley.ui.provider;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import com.google.common.collect.Lists;
+import com.google.inject.Inject;
+
+public class FeaturesColumnProvider extends FeaturesProvider{
+
+ @Inject
+ protected FeaturesProvider featuresProvider;
+
+ private List<Integer> weights;
+
+
+ @Override
+ protected List<EStructuralFeature> getFromMap(EClass eClass) {
+ List<EStructuralFeature> columnDefinition=super.getFromMap(eClass);
+ if(columnDefinition!=null){
+ return columnDefinition;
+ }
+ return featuresProvider.getFromMap(eClass);
+ }
+
+ @Override
+ protected List<EStructuralFeature> getFromStringMap(EClass eClass) {
+ List<EStructuralFeature> columnDefinition=super.getFromStringMap(eClass);
+ if(columnDefinition!=null){
+ return columnDefinition;
+ }
+ return featuresProvider.getFromStringMap(eClass);
+ }
+
+ public List<Integer> getWeights() {
+ return weights;
+ }
+
+
+ public void setWeights(Integer... weights) {
+ this.weights=Lists.newArrayList(weights);
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/FeaturesProvider.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/FeaturesProvider.java
new file mode 100644
index 000000000..c6749a218
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/FeaturesProvider.java
@@ -0,0 +1,134 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.ui.provider;
+
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.EmfComponentsCommonActivator;
+
+import com.google.common.collect.Lists;
+
+/**
+ * Provides the list of {@link EStructuralFeature} of an {@link EClass}. The
+ * default is to return the list of all the features in the EClass, but the
+ * programmer can customize it (for instance, by returning only a superset, or
+ * using a different order) on an EClass-based strategy. The customization can
+ * be done redefining buildMap and adding mappings.
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class FeaturesProvider {
+
+ public static class EClassToEStructuralFeatureMap extends
+ HashMap<EClass, List<EStructuralFeature>> {
+
+ private static final long serialVersionUID = 670116975392207101L;
+
+ public void mapTo(EClass eClass, EStructuralFeature... features) {
+ put(eClass, Lists.newArrayList(features));
+ }
+
+ }
+
+ protected EClassToEStructuralFeatureMap map = null;
+
+ protected EClassToEStructuralFeatureAsStringsMap stringMap = null;
+
+ public List<EStructuralFeature> getFeatures(EObject eObject) {
+ if (eObject == null)
+ return Collections.emptyList();
+
+ return getFeatures(eObject.eClass());
+ }
+
+ public List<EStructuralFeature> getFeatures(EClass eClass) {
+ if (eClass == null)
+ return Collections.emptyList();
+
+ List<EStructuralFeature> fromMap = getFromMap(eClass);
+ if (fromMap != null)
+ return fromMap;
+ else {
+ fromMap = getFromStringMap(eClass);
+ if (fromMap != null)
+ return fromMap;
+ }
+
+ return new BasicEList<EStructuralFeature>(
+ eClass.getEAllStructuralFeatures());
+ }
+
+ protected List<EStructuralFeature> getFromMap(EClass eClass) {
+ if (map == null)
+ buildMapInternal();
+
+ return map.get(eClass);
+ }
+
+ protected List<EStructuralFeature> getFromStringMap(EClass eClass) {
+ if (stringMap == null)
+ buildStringMapInternal();
+
+ List<String> list = stringMap.get(eClass.getInstanceClassName());
+ if (list == null)
+ return null;
+
+ LinkedList<EStructuralFeature> result = new LinkedList<EStructuralFeature>();
+
+ for (String featureName : list) {
+ EStructuralFeature feature = eClass
+ .getEStructuralFeature(featureName);
+ if (feature != null)
+ result.add(feature);
+ else
+ EmfComponentsCommonActivator.logError("cannot find feature '"
+ + featureName + "' in EClass '" + eClass.getName()
+ + "'");
+ }
+
+ return result;
+ }
+
+ private void buildMapInternal() {
+ map = new EClassToEStructuralFeatureMap();
+ buildMap(map);
+ }
+
+ private void buildStringMapInternal() {
+ stringMap = new EClassToEStructuralFeatureAsStringsMap();
+ buildStringMap(stringMap);
+ }
+
+ /**
+ * Derived classes should redefine this method to map an {@link EClass} to
+ * {@link EStructuralFeature}s.
+ *
+ * @param map
+ */
+ protected void buildMap(EClassToEStructuralFeatureMap map) {
+ // default implementation is empty
+ }
+
+ /**
+ * Derived classes should redefine this method to map an {@link EClass}'s
+ * name to {@link EStructuralFeature}s' names; the {@link EClass}'s name
+ * should be obtained using getInstanceClassName().
+ *
+ * @param stringMap
+ */
+ protected void buildStringMap(
+ EClassToEStructuralFeatureAsStringsMap stringMap) {
+ // default implementation is empty
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/FormPropertyDescriptionProvider.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/FormPropertyDescriptionProvider.java
new file mode 100644
index 000000000..8b06d38b2
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/FormPropertyDescriptionProvider.java
@@ -0,0 +1,91 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.ui.provider;
+
+import org.eclipse.emf.parsley.runtime.util.PolymorphicDispatcher;
+
+import java.lang.reflect.Method;
+import java.util.Collections;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+
+import com.google.common.base.Predicate;
+import com.google.inject.Inject;
+
+/**
+ * Provides labels for EStructuralFeatures for FormToolkit. With respect to the
+ * superclass {@link PropertyDescriptionProvider} you can also specify the Label,
+ * besides its text. If a custom PropertyDescriptionProvider is provided (through
+ * injection) then it tries to get the text also from that one, before
+ * using the default text.
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class FormPropertyDescriptionProvider extends PropertyDescriptionProvider {
+
+ @Inject
+ protected PropertyDescriptionProvider delegate;
+
+ protected FormToolkit formToolkit;
+
+ private PolymorphicDispatcher.ErrorHandler<Label> errorLabelHandler = new PolymorphicDispatcher.NullErrorHandler<Label>();
+
+ public Label getLabel(Composite parent, EStructuralFeature element) {
+ Label lab = polymorphicGetLabel(parent, element);
+ if (lab != null)
+ return lab;
+ return defaultLabel(parent, element);
+ }
+
+ protected Label defaultLabel(Composite parent, EStructuralFeature element) {
+ Label lab = formToolkit.createLabel(parent, getText(element));
+ lab.setLayoutData(new GridData());
+ return lab;
+ }
+
+ @Override
+ protected String polymorphicGetText(EStructuralFeature element) {
+ String polymorphicGetText = super.polymorphicGetText(element);
+ if (polymorphicGetText == null)
+ return delegate.getText(element);
+ return polymorphicGetText;
+ }
+
+ protected Label polymorphicGetLabel(Composite parent,
+ EStructuralFeature element) {
+ PolymorphicDispatcher<Label> dispatcher = new PolymorphicDispatcher<Label>(
+ Collections.singletonList(this), getLabelPredicate(element),
+ errorLabelHandler) {
+ @Override
+ protected Label handleNoSuchMethod(Object... params) {
+ if (PolymorphicDispatcher.NullErrorHandler.class
+ .equals(errorLabelHandler.getClass()))
+ return null;
+ return super.handleNoSuchMethod(params);
+ }
+ };
+
+ return dispatcher.invoke(parent, element);
+ }
+
+ protected Predicate<Method> getLabelPredicate(EStructuralFeature feature) {
+ String methodName = "label_" + feature.getEContainingClass().getName()
+ + "_" + feature.getName();
+ return PolymorphicDispatcher.Predicates.forName(methodName, 2);
+ }
+
+ public FormToolkit getFormToolkit() {
+ return formToolkit;
+ }
+
+ public void setFormToolkit(FormToolkit formToolkit) {
+ this.formToolkit = formToolkit;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/PropertyDescriptionProvider.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/PropertyDescriptionProvider.java
new file mode 100644
index 000000000..802ac5e09
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/PropertyDescriptionProvider.java
@@ -0,0 +1,58 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.ui.provider;
+
+import org.eclipse.emf.parsley.runtime.util.PolymorphicDispatcher;
+
+import java.lang.reflect.Method;
+import java.util.Collections;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import com.google.common.base.Predicate;
+
+/**
+ * Provides labels for EStructuralFeatures
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class PropertyDescriptionProvider {
+
+ private PolymorphicDispatcher.ErrorHandler<String> errorHandler = new PolymorphicDispatcher.NullErrorHandler<String>();
+
+ public String getText(EStructuralFeature element) {
+ String text = polymorphicGetText(element);
+ if (text != null) {
+ return text;
+ }
+ return defaultText(element);
+ }
+
+ protected String polymorphicGetText(EStructuralFeature element) {
+ PolymorphicDispatcher<String> dispatcher = new PolymorphicDispatcher<String>(
+ Collections.singletonList(this), getTextPredicate(element),
+ errorHandler) {
+ @Override
+ protected String handleNoSuchMethod(Object... params) {
+ if (PolymorphicDispatcher.NullErrorHandler.class
+ .equals(errorHandler.getClass()))
+ return null;
+ return super.handleNoSuchMethod(params);
+ }
+ };
+
+ return dispatcher.invoke(element);
+ }
+
+ protected Predicate<Method> getTextPredicate(EStructuralFeature feature) {
+ String methodName = "text_" + feature.getEContainingClass().getName()
+ + "_" + feature.getName();
+ return PolymorphicDispatcher.Predicates.forName(methodName, 1);
+ }
+
+ protected String defaultText(EStructuralFeature element) {
+ return element.getName();
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/TableColumnLabelProvider.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/TableColumnLabelProvider.java
new file mode 100644
index 000000000..86469a364
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/TableColumnLabelProvider.java
@@ -0,0 +1,128 @@
+package org.eclipse.emf.parsley.ui.provider;
+
+import org.eclipse.emf.parsley.runtime.util.PolymorphicDispatcher;
+
+import java.lang.reflect.Method;
+import java.util.Collections;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.swt.graphics.Image;
+
+import com.google.common.base.Predicate;
+import com.google.inject.Inject;
+
+/**
+ * A column provider based on an Emf feature.
+ *
+ * @author Francesco Guidieri
+ *
+ */
+public class TableColumnLabelProvider extends ColumnLabelProvider {
+ protected EStructuralFeature eStructuralFeature;
+
+ private PolymorphicDispatcher.ErrorHandler<Image> errorImageHandler = new PolymorphicDispatcher.NullErrorHandler<Image>();
+ private PolymorphicDispatcher.ErrorHandler<String> errorLabelHandler = new PolymorphicDispatcher.NullErrorHandler<String>();
+
+ protected ILabelProvider labelProvider;
+
+ @Inject
+ public TableColumnLabelProvider() {
+
+ }
+
+ public EStructuralFeature geteStructuralFeature() {
+ return eStructuralFeature;
+ }
+
+ public void seteStructuralFeature(EStructuralFeature eStructuralFeature) {
+ this.eStructuralFeature = eStructuralFeature;
+ }
+
+ public ILabelProvider getLabelProvider() {
+ return labelProvider;
+ }
+
+ @Inject
+ public void setLabelProvider(ILabelProvider labelProvider) {
+ this.labelProvider = labelProvider;
+ }
+
+ @Override
+ public String getText(Object element) {
+ String ret=polymorphicGetText(element, eStructuralFeature);
+ if(ret!=null) {
+ return ret;
+ }
+ try {
+ Object featureValue = getFeatureValue(element);
+ return featureValue != null ? labelProvider.getText(featureValue)
+ : "";
+ } catch (Exception e) {
+ // avoid exceptions during rendering
+ return "";
+ }
+ }
+
+ /**
+ * @param element
+ * @return
+ */
+ protected Object getFeatureValue(Object element) {
+ EObject p = (EObject) element;
+ Object featureValue = p.eGet(eStructuralFeature);
+ return featureValue;
+ }
+
+ @Override
+ public Image getImage(Object element) {
+ Image ret=polymorphicGetImage(element, eStructuralFeature);
+ return ret;
+ }
+
+ protected String polymorphicGetText(Object element, EStructuralFeature feature) {
+ PolymorphicDispatcher<String> dispatcher = new PolymorphicDispatcher<String>(
+ Collections.singletonList(this), getTextPredicate(feature),
+ errorLabelHandler) {
+ @Override
+ protected String handleNoSuchMethod(Object... params) {
+ if (PolymorphicDispatcher.NullErrorHandler.class
+ .equals(errorLabelHandler.getClass()))
+ return null;
+ return super.handleNoSuchMethod(params);
+ }
+ };
+
+ return dispatcher.invoke(element);
+ }
+
+ protected Predicate<Method> getTextPredicate(EStructuralFeature feature) {
+ String methodName = "text_" + feature.getEContainingClass().getName()
+ + "_" + feature.getName();
+ return PolymorphicDispatcher.Predicates.forName(methodName, 1);
+ }
+
+ protected Image polymorphicGetImage(Object element, EStructuralFeature feature) {
+ PolymorphicDispatcher<Image> dispatcher = new PolymorphicDispatcher<Image>(
+ Collections.singletonList(this), getImagePredicate(feature),
+ errorImageHandler) {
+ @Override
+ protected Image handleNoSuchMethod(Object... params) {
+ if (PolymorphicDispatcher.NullErrorHandler.class
+ .equals(errorImageHandler.getClass()))
+ return null;
+ return super.handleNoSuchMethod(params);
+ }
+ };
+
+ return dispatcher.invoke(element);
+ }
+
+ protected Predicate<Method> getImagePredicate(EStructuralFeature feature) {
+ String methodName = "image_" + feature.getEContainingClass().getName()
+ + "_" + feature.getName();
+ return PolymorphicDispatcher.Predicates.forName(methodName, 1);
+ }
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/ViewerLabelProvider.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/ViewerLabelProvider.java
new file mode 100644
index 000000000..9ea8e7c79
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/ui/provider/ViewerLabelProvider.java
@@ -0,0 +1,139 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.ui.provider;
+
+import org.eclipse.emf.parsley.runtime.ui.IImageHelper;
+import org.eclipse.emf.parsley.runtime.util.PolymorphicDispatcher;
+
+import org.eclipse.emf.ecore.util.FeatureMap.Entry;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.swt.graphics.Image;
+
+import com.google.inject.Inject;
+
+/**
+ * @author bettini
+ *
+ */
+public class ViewerLabelProvider implements ILabelProvider {
+
+ @Inject
+ private IImageHelper imageHelper;
+
+ private PolymorphicDispatcher<String> textDispatcher = PolymorphicDispatcher
+ .createForSingleTarget("text", 1, 1, this);
+
+ private PolymorphicDispatcher<Object> imageDispatcher = PolymorphicDispatcher
+ .createForSingleTarget("image", 1, 1, this);
+
+ protected ILabelProvider delegateLabelProvider;
+
+ @Inject
+ public ViewerLabelProvider(AdapterFactoryLabelProvider delegate) {
+ delegateLabelProvider = delegate;
+ }
+
+ public String getText(Object element) {
+ if (element == null)
+ return "";
+
+ String text = textDispatcher.invoke(element);
+ if (text != null) {
+ return text;
+ }
+ return getDelegateText(element);
+ }
+
+ protected String getDelegateText(Object element) {
+ return delegateLabelProvider.getText(element);
+ }
+
+ public Image getImage(Object element) {
+ if (element == null)
+ return null;
+
+ Object imageObject = imageDispatcher.invoke(element);
+ if (imageObject != null) {
+ Image image = convertToImage(imageObject);
+ if (image != null)
+ return image;
+ }
+ return getDelegateImage(element);
+ }
+
+ /**
+ * @param imageDescription
+ * a {@link String}, an {@link ImageDescriptor} or an
+ * {@link Image}
+ * @return the {@link Image} associated with the description or
+ * <code>null</code>
+ */
+ protected Image convertToImage(Object imageDescription) {
+ if (imageDescription instanceof Image) {
+ return (Image) imageDescription;
+ } else if (imageDescription instanceof ImageDescriptor) {
+ return imageHelper.getImage((ImageDescriptor) imageDescription);
+ } else if (imageDescription instanceof String) {
+ return imageHelper.getImage((String) imageDescription);
+ }
+ return null;
+ }
+
+ protected Image getDelegateImage(Object element) {
+ return delegateLabelProvider.getImage(element);
+ }
+
+ public void addListener(ILabelProviderListener listener) {
+ delegateLabelProvider.addListener(listener);
+ }
+
+ public void dispose() {
+ delegateLabelProvider.dispose();
+ }
+
+ public boolean isLabelProperty(Object element, String property) {
+ return delegateLabelProvider.isLabelProperty(element, property);
+ }
+
+ public void removeListener(ILabelProviderListener listener) {
+ delegateLabelProvider.removeListener(listener);
+ }
+
+ public ILabelProvider getDelegateLabelProvider() {
+ return delegateLabelProvider;
+ }
+
+ public void setDelegateLabelProvider(ILabelProvider delegateLabelProvider) {
+ this.delegateLabelProvider = delegateLabelProvider;
+ }
+
+ public String text(Object element) {
+ return null;
+ }
+
+ public Object image(Object element) {
+ return null;
+ }
+
+ /**
+ * Custom implementation for {@link Entry} that uses the entry.getValue()
+ * @param entry
+ * @return
+ */
+ public String text(Entry entry) {
+ return getText(entry.getValue());
+ }
+
+ /**
+ * Custom implementation for {@link Entry} that uses the entry.getValue()
+ * @param entry
+ * @return
+ */
+ public Object image(Entry entry) {
+ return getImage(entry.getValue());
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/ActionBarsUtils.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/ActionBarsUtils.java
new file mode 100644
index 000000000..b7b81e7d2
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/ActionBarsUtils.java
@@ -0,0 +1,27 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.util;
+
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbenchPart;
+
+/**
+ * Utility methods to retrieve action bars from a part and site
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class ActionBarsUtils {
+
+ public static IActionBars getActionBars(IWorkbenchPart part) {
+ if (part instanceof IViewPart) {
+ return ((IViewPart) part).getViewSite().getActionBars();
+ } else if (part instanceof IEditorPart) {
+ return ((IEditorPart) part).getEditorSite().getActionBars();
+ }
+ return null;
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EStructuralFeatureNameComparator.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EStructuralFeatureNameComparator.java
new file mode 100644
index 000000000..a1d94af74
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EStructuralFeatureNameComparator.java
@@ -0,0 +1,17 @@
+package org.eclipse.emf.parsley.util;
+
+import java.util.Comparator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class EStructuralFeatureNameComparator implements
+ Comparator<EStructuralFeature> {
+ public int compare(EStructuralFeature o1, EStructuralFeature o2) {
+ return nullSafe(o1).compareTo(nullSafe(o2));
+ }
+
+ private String nullSafe(EStructuralFeature o) {
+ String name = o.getName();
+ return name != null ? name : "";
+ }
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EmfCommandsUtil.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EmfCommandsUtil.java
new file mode 100644
index 000000000..fde9cd21b
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EmfCommandsUtil.java
@@ -0,0 +1,34 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.util;
+
+import java.util.EventObject;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * Utility methods acting on Emf {@link Command}s.
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class EmfCommandsUtil {
+
+ public static Command mostRecentCommand(final EventObject event) {
+ return ((CommandStack) event.getSource()).getMostRecentCommand();
+ }
+
+ public static boolean affectsResource(Command command, Resource resource) {
+ for (Object o : command.getAffectedObjects()) {
+ if (o instanceof EObject
+ && resource.equals(((EObject) o).eResource())) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EmfComponentsUtil.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EmfComponentsUtil.java
new file mode 100644
index 000000000..972a66216
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EmfComponentsUtil.java
@@ -0,0 +1,55 @@
+package org.eclipse.emf.parsley.util;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IViewSite;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.PlatformUI;
+
+import com.google.common.collect.Lists;
+
+/**
+ * @author bettini
+ *
+ */
+public class EmfComponentsUtil {
+ public static IStatusLineManager getStatusLineManager() {
+ IWorkbenchPartSite site = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow().getActivePage().getActivePart()
+ .getSite();
+
+ if (site instanceof IViewSite) {
+ return getStatusLineManager(((IViewSite) site).getActionBars());
+ } else if (site instanceof IEditorSite) {
+ return getStatusLineManager(((IEditorSite) site).getActionBars());
+ } else {
+ return null;
+ }
+ }
+
+ private static IStatusLineManager getStatusLineManager(IActionBars actionBars) {
+ return actionBars.getStatusLineManager();
+ }
+
+ /**
+ * Given the passed object it ensures that it is a {@link Collection};
+ * if it is not, it returns a singleton {@link Collection}; if it is null
+ * it returns an empty {@link Collection}.
+ * @param contents
+ * @return
+ */
+ public static Collection<?> ensureCollection(Object contents) {
+ if (contents == null)
+ return Collections.emptyList();
+ if (contents instanceof Collection<?>)
+ return (Collection<?>) contents;
+ else if (contents instanceof Iterable<?>)
+ return Lists.newArrayList((Iterable<?>)contents);
+ else
+ return Collections.singleton(contents);
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EmfSelectionHelper.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EmfSelectionHelper.java
new file mode 100644
index 000000000..2f1f02b0f
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/util/EmfSelectionHelper.java
@@ -0,0 +1,33 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+/**
+ * Utility methods for retrieving EMF stuff from an {@link ISelection}
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class EmfSelectionHelper {
+
+ public Object getFirstSelectedElement(ISelection selection) {
+ if (selection instanceof IStructuredSelection) {
+ IStructuredSelection ss = (IStructuredSelection) selection;
+ return ss.getFirstElement();
+ }
+ return null;
+ }
+
+ public EObject getFirstSelectedEObject(ISelection selection) {
+ Object selected = getFirstSelectedElement(selection);
+ if (selected instanceof EObject) {
+ return (EObject) selected;
+ }
+ return null;
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/viewers/ViewerInitializer.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/viewers/ViewerInitializer.java
new file mode 100644
index 000000000..86ec55f52
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/viewers/ViewerInitializer.java
@@ -0,0 +1,153 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.viewers;
+
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+import org.eclipse.emf.parsley.edit.actionbar.TreeActionBarContributor;
+import org.eclipse.emf.parsley.edit.actionbar.WorkbenchActionBarContributor;
+import org.eclipse.emf.parsley.menus.ViewerContextMenuFactory;
+import org.eclipse.emf.parsley.resource.ResourceLoader;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.ui.IWorkbenchPart;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+/**
+ * Manager for viewers for EMF resources.
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class ViewerInitializer {
+
+ @Inject
+ protected ResourceLoader resourceLoader;
+
+ @Inject
+ protected Provider<AdapterFactoryEditingDomain> editingDomainProvider;
+
+ @Inject
+ protected Provider<AdapterFactory> adapterFactoryProvider;
+
+ @Inject
+ protected ViewerContextMenuFactory viewerContextMenuFactory;
+
+ @Inject
+ protected Provider<IContentProvider> contentProviderProvider;
+
+ @Inject
+ protected Provider<ILabelProvider> labelProviderProvider;
+
+ public void initialize(StructuredViewer viewer, Object object) {
+ Object input;
+ if(object instanceof URI){
+ AdapterFactoryEditingDomain editingDomain=(AdapterFactoryEditingDomain)loadResource((URI)object);
+ input= editingDomain.getResourceSet();
+ }else if(object instanceof AdapterFactoryEditingDomain){
+ AdapterFactoryEditingDomain editingDomain=(AdapterFactoryEditingDomain) object;
+ input= editingDomain.getResourceSet();
+ }else{
+ input=object;
+ }
+ initialize(viewer, input, contentProviderProvider.get(),
+ labelProviderProvider.get());
+ }
+
+ /**
+ * @param viewer
+ * @param input
+ * @param contentProvider
+ * @param labelProvider
+ * can be null (in that case it is not set)
+ */
+ public void initialize(StructuredViewer viewer, Object input,
+ IContentProvider contentProvider,
+ IBaseLabelProvider labelProvider) {
+ viewer.setContentProvider(contentProvider);
+ if (labelProvider != null)
+ viewer.setLabelProvider(labelProvider);
+ viewer.setInput(input);
+ }
+
+ /**
+ * Adds a context menu to the passed {@link StructuredViewer}.
+ *
+ * The passed {@link IMenuListener} should implement a method like
+ *
+ * <pre>
+ * public void menuAboutToShow(IMenuManager menuManager) {
+ * actionBarContributor.menuAboutToShow(menuManager);
+ * }
+ * </pre>
+ *
+ * @param viewer
+ * @param actionBarContributor
+ * should be created by injection
+ * @param editingDomain
+ * should be created by injection
+ * @param menuListener
+ * the listener should have a method like
+ * @param activePart
+ */
+ public void addContextMenu(StructuredViewer viewer,
+ WorkbenchActionBarContributor actionBarContributor,
+ AdapterFactoryEditingDomain editingDomain,
+ IMenuListener menuListener, IWorkbenchPart activePart) {
+
+ MenuManager menuManager = viewerContextMenuFactory
+ .createContextMenuFor(viewer, editingDomain);
+ activePart.getSite().registerContextMenu(menuManager,
+ new UnwrappingSelectionProvider(viewer));
+
+ menuManager.addMenuListener(menuListener);
+
+ ViewerSelectionProvider viewerSelectionProvider = new ViewerSelectionProvider(
+ viewer);
+ actionBarContributor
+ .setExplicitSelectionProvider(viewerSelectionProvider);
+ viewerSelectionProvider
+ .addSelectionChangedListener(actionBarContributor);
+
+ actionBarContributor.setActivePart(activePart);
+ }
+
+
+
+
+ public void addContextMenu(StructuredViewer viewer,
+ TreeActionBarContributor treeActionBarContributor,
+ AdapterFactoryEditingDomain editingDomain,
+ IMenuListener menuListener){
+
+ final MenuManager menuManager = viewerContextMenuFactory
+ .createContextMenuFor(viewer, editingDomain);
+
+ menuManager.addMenuListener(menuListener);
+// ViewerSelectionProvider viewerSelectionProvider = new ViewerSelectionProvider(viewer);
+// viewerSelectionProvider.addSelectionChangedListener(treeActionBarContributor);
+ viewer.addSelectionChangedListener(treeActionBarContributor);
+ treeActionBarContributor.initialize(editingDomain);
+
+ }
+
+ protected AdapterFactoryEditingDomain loadResource(URI resourceURI) {
+ AdapterFactoryEditingDomain editingDomain = editingDomainProvider.get();
+ resourceLoader.getResource(editingDomain, resourceURI);
+ return editingDomain;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/viewers/ViewerSelectionProvider.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/viewers/ViewerSelectionProvider.java
new file mode 100644
index 000000000..21f45b046
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/viewers/ViewerSelectionProvider.java
@@ -0,0 +1,67 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.viewers;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+
+/**
+ * A utility class that bridges a {@link Viewer} and a
+ * {@link ISelectionProvider}.
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class ViewerSelectionProvider implements ISelectionProvider {
+
+ /**
+ * This keeps track of all the
+ * {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are
+ * listening.
+ */
+ protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+ protected Viewer viewer;
+
+ public ViewerSelectionProvider(Viewer viewer) {
+ super();
+ this.viewer = viewer;
+ this.viewer
+ .addSelectionChangedListener(createSelectionChangedListener());
+ }
+
+ public void addSelectionChangedListener(ISelectionChangedListener listener) {
+ selectionChangedListeners.add(listener);
+ }
+
+ public ISelection getSelection() {
+ return viewer.getSelection();
+ }
+
+ public void removeSelectionChangedListener(
+ ISelectionChangedListener listener) {
+ selectionChangedListeners.remove(listener);
+ }
+
+ public void setSelection(ISelection selection) {
+ for (ISelectionChangedListener listener : selectionChangedListeners) {
+ listener.selectionChanged(new SelectionChangedEvent(this, selection));
+ }
+ }
+
+ protected ISelectionChangedListener createSelectionChangedListener() {
+ return new ISelectionChangedListener() {
+ public void selectionChanged(
+ SelectionChangedEvent selectionChangedEvent) {
+ setSelection(selectionChangedEvent.getSelection());
+ }
+ };
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/AbstractMasterDetailComposite.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/AbstractMasterDetailComposite.java
new file mode 100644
index 000000000..ecf2eba12
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/AbstractMasterDetailComposite.java
@@ -0,0 +1,136 @@
+package org.eclipse.emf.parsley.widgets;
+
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.parsley.factories.FormFactory;
+import org.eclipse.emf.parsley.util.EmfSelectionHelper;
+import org.eclipse.emf.parsley.viewers.ViewerInitializer;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.part.PageBook;
+
+import com.google.inject.Inject;
+
+/**
+ * A generic abstract composite with a viewer and a Form with details of the
+ * selected object in the viewer. The viewer is intended to be defined by user.
+ *
+ * @author Lorenzo Bettini, Francesco Guidieri
+ *
+ */
+public abstract class AbstractMasterDetailComposite extends Composite implements IViewerProvider {
+
+ protected class SelectionChangedListener implements
+ ISelectionChangedListener {
+ public void selectionChanged(SelectionChangedEvent event) {
+ EObject selectedObject = emfSelectionHelper
+ .getFirstSelectedEObject(event.getSelection());
+
+ eObjectSelectionChanged(selectedObject);
+ }
+
+ }
+
+ protected ViewerInitializer viewerInitializer;
+
+ protected FormFactory formFactory;
+
+ protected EmfSelectionHelper emfSelectionHelper;
+
+ private final StructuredViewer viewer;
+
+ protected final PageBook pagebook;
+
+ private final Composite detail;
+
+ protected FormDetailComposite detailForm;
+
+ public AbstractMasterDetailComposite(Composite parent, int style) {
+ this(parent, style, SWT.VERTICAL, new int[0]);
+ }
+
+ public AbstractMasterDetailComposite(Composite parent, int style, int sashStyle, int[] weights) {
+ super(parent, style);
+ setLayout(new FillLayout());
+
+ SashForm sashForm = new SashForm(this, sashStyle);
+ // Lorenzo: these do not seem to be necessary, and they throw an exception
+ // when used with RAP
+ //GridLayoutFactory.fillDefaults().applyTo(sashForm);
+ //GridDataFactory.fillDefaults().grab(true, true).applyTo(sashForm);
+
+ pagebook = new PageBook(sashForm, SWT.BORDER);
+ detail = new Composite(sashForm, SWT.BORDER);
+ detail.setLayout(new FillLayout());
+ viewer = createViewer(pagebook);
+ viewer.addSelectionChangedListener(new SelectionChangedListener());
+ if(weights.length>0){
+ sashForm.setWeights(weights);
+ }
+ }
+
+ public StructuredViewer getViewer() {
+ return viewer;
+ }
+
+ public void update(Object element) {
+ if (element != null) {
+ viewerInitializer.initialize(viewer, element);
+ pagebook.showPage(viewer.getControl());
+ }
+
+ }
+
+ protected abstract StructuredViewer createViewer(Composite parent);
+
+ protected void eObjectSelectionChanged(EObject selectedObject) {
+ if (detailForm != null)
+ detailForm.dispose();
+
+ if (selectedObject != null) {
+ detailForm = createFormDetailComposite();
+ detailForm.init(selectedObject);
+ detail.layout(true);
+ }
+ }
+
+ protected FormDetailComposite createFormDetailComposite() {
+ return formFactory.createFormDetailComposite(detail,
+ SWT.BORDER);
+ }
+
+ public ViewerInitializer getViewerInitializer() {
+ return viewerInitializer;
+ }
+
+ @Inject
+ public void setViewerInitializer(ViewerInitializer viewerInitializer) {
+ this.viewerInitializer = viewerInitializer;
+ }
+
+ public FormFactory getFormFactory() {
+ return formFactory;
+ }
+
+ @Inject
+ public void setFormFactory(FormFactory formFactory) {
+ this.formFactory = formFactory;
+ }
+
+ public EmfSelectionHelper getEmfSelectionHelper() {
+ return emfSelectionHelper;
+ }
+
+ @Inject
+ public void setEmfSelectionHelper(EmfSelectionHelper emfSelectionHelper) {
+ this.emfSelectionHelper = emfSelectionHelper;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/FormDetailComposite.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/FormDetailComposite.java
new file mode 100644
index 000000000..23273a381
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/FormDetailComposite.java
@@ -0,0 +1,146 @@
+package org.eclipse.emf.parsley.widgets;
+
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.binding.FormControlFactory;
+import org.eclipse.emf.parsley.edit.EditingDomainFinder;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+import org.eclipse.emf.parsley.ui.provider.FormPropertyDescriptionProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+
+import com.google.inject.Inject;
+
+public class FormDetailComposite extends Composite {
+
+ protected FormPropertyDescriptionProvider formPropertyDescriptionProvider;
+
+ protected FormControlFactory formControlFactory;
+
+ protected EditingDomainFinder editingDomainFinder;
+
+ protected FeaturesProvider featuresProvider;
+
+ protected ILabelProvider labelProvider;
+
+ private final Composite main;
+
+ FormToolkit toolkit;
+
+ private final ScrolledForm scrolledForm;
+
+ public FormDetailComposite(Composite parent, int style) {
+ super(parent, style);
+
+ toolkit = new FormToolkit(parent.getDisplay());
+
+ toolkit.adapt(this);
+ //toolkit.paintBordersFor(this);
+ setLayout(new GridLayout(1, false));
+
+ scrolledForm = toolkit.createScrolledForm(this);
+ // make sure that the form takes all the space
+ scrolledForm.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true,
+ 1, 1));
+ //toolkit.paintBordersFor(scrolledForm);
+ scrolledForm.getBody().setLayout(new GridLayout(2, false));
+
+ main = scrolledForm.getBody();
+ }
+
+ public void init(EObject model) {
+ List<EStructuralFeature> features = featuresProvider
+ .getFeatures(model);
+
+ scrolledForm.setText(getLabelProvider().getText(model));
+ scrolledForm.setImage(getLabelProvider().getImage(model));
+
+ formControlFactory.init(
+ editingDomainFinder.getEditingDomainFor(model), model, main,
+ toolkit);
+
+ for (final EStructuralFeature feature : features) {
+ // derived, unchangeable, container and containment features
+ // ignored
+ if (feature.isChangeable()
+ && !feature.isDerived()
+ && !(feature instanceof EReference && (((EReference) feature).isContainment()
+// || ((EReference) feature).isContainer()
+ ))) {
+
+ formPropertyDescriptionProvider.getLabel(main, feature);
+
+ formControlFactory.create(feature);
+ }
+ }
+
+ //toolkit.paintBordersFor(main);
+
+ this.layout();
+ }
+
+ @Override
+ public void dispose() {
+ super.dispose();
+ toolkit.dispose();
+ }
+
+ public FormPropertyDescriptionProvider getFormPropertyDescriptionProvider() {
+ return formPropertyDescriptionProvider;
+ }
+
+ @Inject
+ public void setFormPropertyDescriptionProvider(
+ FormPropertyDescriptionProvider formPropertyDescriptionProvider) {
+ this.formPropertyDescriptionProvider = formPropertyDescriptionProvider;
+ this.formPropertyDescriptionProvider.setFormToolkit(toolkit);
+ }
+
+ public FormControlFactory getFormControlFactory() {
+ return formControlFactory;
+ }
+
+ @Inject
+ public void setFormControlFactory(
+ FormControlFactory formControlFactory) {
+ this.formControlFactory = formControlFactory;
+ }
+
+ public EditingDomainFinder getEditingDomainFinder() {
+ return editingDomainFinder;
+ }
+
+ @Inject
+ public void setEditingDomainFinder(EditingDomainFinder editingDomainFinder) {
+ this.editingDomainFinder = editingDomainFinder;
+ }
+
+ public FeaturesProvider getFeaturesProvider() {
+ return featuresProvider;
+ }
+
+ @Inject
+ public void setFeaturesProvider(
+ FeaturesProvider eClassFeatureProvider) {
+ this.featuresProvider = eClassFeatureProvider;
+ }
+
+ public ILabelProvider getLabelProvider() {
+ return labelProvider;
+ }
+
+ @Inject
+ public void setLabelProvider(ILabelProvider labelProvider) {
+ this.labelProvider = labelProvider;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/IStructuredViewerAware.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/IStructuredViewerAware.java
new file mode 100644
index 000000000..6d9f857d6
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/IStructuredViewerAware.java
@@ -0,0 +1,11 @@
+package org.eclipse.emf.parsley.widgets;
+
+import org.eclipse.jface.viewers.StructuredViewer;
+
+public interface IStructuredViewerAware {
+
+ public void setViewer(StructuredViewer viewer);
+
+ public StructuredViewer getViewer();
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/StructuredViewerAwareComposite.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/StructuredViewerAwareComposite.java
new file mode 100644
index 000000000..4bf5af5bd
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/StructuredViewerAwareComposite.java
@@ -0,0 +1,22 @@
+package org.eclipse.emf.parsley.widgets;
+
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.swt.widgets.Composite;
+
+public class StructuredViewerAwareComposite extends Composite implements IStructuredViewerAware {
+
+ private StructuredViewer viewer;
+
+ public StructuredViewerAwareComposite(Composite parent, int style) {
+ super(parent, style);
+ }
+
+ public void setViewer(StructuredViewer viewer) {
+ this.viewer = viewer;
+ }
+
+ public StructuredViewer getViewer() {
+ return viewer;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/TableFormComposite.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/TableFormComposite.java
new file mode 100644
index 000000000..4d4a31e21
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/TableFormComposite.java
@@ -0,0 +1,108 @@
+package org.eclipse.emf.parsley.widgets;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.parsley.builders.TableViewerBuilder;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.ui.PlatformUI;
+
+import com.google.inject.Inject;
+
+/**
+ * A generic composite with a Table and a Form with details of the selected
+ * object in the tree.
+ *
+ * @author Francesco Guidieri
+ *
+ */
+public class TableFormComposite extends AbstractMasterDetailComposite {
+
+ private TableViewerBuilder tableViewerBuilder;
+ private TableViewer tableViewer;
+ private boolean autoBuild;
+
+ public TableFormComposite(Composite parent, int style, boolean autoBuild) {
+ super(parent, style, SWT.VERTICAL, new int[0]);
+ this.autoBuild=autoBuild;
+ }
+
+ public TableFormComposite(Composite parent, int style) {
+ this(parent, style, SWT.VERTICAL, new int[0], false);
+ }
+
+ public TableFormComposite(Composite parent, int style, int sashStyle,int[] weights) {
+ this(parent, style, sashStyle, weights, false);
+
+ }
+
+ public TableFormComposite(Composite parent, int style, int sashStyle,int[] weights, boolean autoBuild) {
+ super(parent, style);
+ this.autoBuild=autoBuild;
+ }
+
+ protected StructuredViewer createViewer(Composite parent) {
+ tableViewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
+ return tableViewer;
+ }
+
+ public void buildTable(EClass type, IStructuredContentProvider contentProvider){
+ removeExistingColumns();
+ tableViewerBuilder.build(tableViewer, type, contentProvider);
+ }
+
+ public TableViewerBuilder getTableViewerBuilder() {
+ return tableViewerBuilder;
+ }
+
+ @Inject
+ public void setTableViewerBuilder(TableViewerBuilder tableViewerBuilder) {
+ this.tableViewerBuilder = tableViewerBuilder;
+ }
+
+
+ @Override
+ public void update(Object input) {
+ if(autoBuild){
+ removeExistingColumns();
+ }
+ if (input instanceof List){
+ final List elements=(List) input;
+ IStructuredContentProvider contentProvider=new ArrayContentProvider();
+ if(elements.size()>0){
+ EObject eObject = (EObject) elements.get(0);
+ tableViewerBuilder.build(tableViewer, eObject.eClass(), contentProvider);
+ tableViewer.setContentProvider(contentProvider);
+ //TODO
+ PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
+ public void run() {
+ tableViewer.setInput(elements);
+ }
+ });
+ }else{
+ viewerInitializer.initialize(tableViewer,input,contentProvider,null);
+ }
+ pagebook.showPage(tableViewer.getControl());
+ }else super.update(input);
+ }
+
+ private void removeExistingColumns() {
+ for (int i=tableViewer.getTable().getColumns().length;i>0;i--) {
+ tableViewer.getTable().getColumns()[i-1].dispose();
+ }
+ tableViewer.getTable().pack();
+ }
+
+ public void buildTable(EClass eType) {
+ buildTable(eType, new ArrayContentProvider());
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/TreeFormComposite.java b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/TreeFormComposite.java
new file mode 100644
index 000000000..bab4aa8bd
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.common/src/org/eclipse/emf/parsley/widgets/TreeFormComposite.java
@@ -0,0 +1,139 @@
+package org.eclipse.emf.parsley.widgets;
+
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.parsley.factories.FormFactory;
+import org.eclipse.emf.parsley.util.EmfSelectionHelper;
+import org.eclipse.emf.parsley.viewers.ViewerInitializer;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.part.PageBook;
+
+import com.google.inject.Inject;
+
+/**
+ * A generic composite with a Tree and a Form with details of the selected
+ * object in the tree.
+ *
+ * @author Lorenzo Bettini, Francesco Guidieri
+ *
+ */
+public class TreeFormComposite extends Composite implements IViewerProvider {
+
+ protected class SelectionChangedListener implements
+ ISelectionChangedListener {
+ public void selectionChanged(SelectionChangedEvent event) {
+ EObject selectedObject = emfSelectionHelper
+ .getFirstSelectedEObject(event.getSelection());
+
+ eObjectSelectionChanged(selectedObject);
+ }
+
+ }
+
+ protected ViewerInitializer viewerInitializer;
+
+ protected FormFactory formFactory;
+
+ protected EmfSelectionHelper emfSelectionHelper;
+
+ private final StructuredViewer viewer;
+
+ private final PageBook pagebook;
+
+ private final Composite detail;
+
+ protected FormDetailComposite detailForm;
+
+ public TreeFormComposite(Composite parent, int style) {
+ this(parent, style, SWT.VERTICAL, new int[0]);
+ }
+
+ public TreeFormComposite(Composite parent, int style, int sashStyle, int[] weights) {
+ super(parent, style);
+ setLayout(new FillLayout());
+
+ SashForm sashForm = new SashForm(this, sashStyle);
+ // Lorenzo: these do not seem to be necessary, and they throw an exception
+ // when used with RAP
+ //GridLayoutFactory.fillDefaults().applyTo(sashForm);
+ //GridDataFactory.fillDefaults().grab(true, true).applyTo(sashForm);
+
+ pagebook = new PageBook(sashForm, SWT.BORDER);
+ detail = new Composite(sashForm, SWT.BORDER);
+ detail.setLayout(new FillLayout());
+ viewer = createViewer(pagebook);
+ viewer.addSelectionChangedListener(new SelectionChangedListener());
+ if(weights.length>0){
+ sashForm.setWeights(weights);
+ }
+ }
+
+ public StructuredViewer getViewer() {
+ return viewer;
+ }
+
+ public void update(Object element) {
+ if (element != null) {
+ viewerInitializer.initialize(viewer, element);
+ pagebook.showPage(viewer.getControl());
+ }
+
+ }
+
+ protected StructuredViewer createViewer(Composite parent) {
+ return new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
+ }
+
+ protected void eObjectSelectionChanged(EObject selectedObject) {
+ if (detailForm != null)
+ detailForm.dispose();
+
+ if (selectedObject != null) {
+ detailForm = createFormDetailComposite();
+ detailForm.init(selectedObject);
+ detail.layout(true);
+ }
+ }
+
+ protected FormDetailComposite createFormDetailComposite() {
+ return formFactory.createFormDetailComposite(detail,
+ SWT.BORDER);
+ }
+
+ public ViewerInitializer getViewerInitializer() {
+ return viewerInitializer;
+ }
+
+ @Inject
+ public void setViewerInitializer(ViewerInitializer viewerInitializer) {
+ this.viewerInitializer = viewerInitializer;
+ }
+
+ public FormFactory getFormFactory() {
+ return formFactory;
+ }
+
+ @Inject
+ public void setFormFactory(FormFactory formFactory) {
+ this.formFactory = formFactory;
+ }
+
+ public EmfSelectionHelper getEmfSelectionHelper() {
+ return emfSelectionHelper;
+ }
+
+ @Inject
+ public void setEmfSelectionHelper(EmfSelectionHelper emfSelectionHelper) {
+ this.emfSelectionHelper = emfSelectionHelper;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.editors.common/.classpath b/plugins/org.eclipse.emf.parsley.editors.common/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors.common/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.parsley.editors.common/.project b/plugins/org.eclipse.emf.parsley.editors.common/.project
new file mode 100644
index 000000000..97ca7d6b9
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors.common/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.editors.common</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.parsley.editors.common/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.parsley.editors.common/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors.common/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.emf.parsley.editors.common/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.emf.parsley.editors.common/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors.common/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.emf.parsley.editors.common/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.parsley.editors.common/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..4831a984c
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors.common/META-INF/MANIFEST.MF
@@ -0,0 +1,57 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMF Components Editors Common
+Bundle-SymbolicName: org.eclipse.emf.parsley.editors.common;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-Activator: org.eclipse.emf.parsley.editors.EmfComponentsEditorsActivator
+Bundle-Vendor: RCP Vision
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.emf.ecore.editor;bundle-version="2.7.0";visibility:=reexport,
+ org.eclipse.core.resources;bundle-version="3.5.0",
+ org.eclipse.emf.ecore.xmi;bundle-version="2.7.0",
+ org.eclipse.emf.parsley.common;bundle-version="0.1.0";visibility:=reexport
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emf.parsley.editors,
+ org.eclipse.emf.parsley.editors.outline
+Import-Package: org.eclipse.emf.common.ui,
+ org.eclipse.emf.common.ui.action,
+ org.eclipse.emf.common.ui.dialogs,
+ org.eclipse.emf.common.ui.editor,
+ org.eclipse.emf.common.ui.viewer,
+ org.eclipse.emf.edit.ui,
+ org.eclipse.emf.edit.ui.action,
+ org.eclipse.emf.edit.ui.celleditor,
+ org.eclipse.emf.edit.ui.dnd,
+ org.eclipse.emf.edit.ui.provider,
+ org.eclipse.emf.edit.ui.util,
+ org.eclipse.emf.edit.ui.view,
+ org.eclipse.jface.action,
+ org.eclipse.jface.bindings,
+ org.eclipse.jface.bindings.keys,
+ org.eclipse.jface.databinding.swt,
+ org.eclipse.jface.databinding.viewers,
+ org.eclipse.jface.dialogs,
+ org.eclipse.jface.fieldassist,
+ org.eclipse.jface.operation,
+ org.eclipse.jface.resource,
+ org.eclipse.jface.viewers,
+ org.eclipse.jface.window,
+ org.eclipse.jface.wizard,
+ org.eclipse.swt,
+ org.eclipse.swt.custom,
+ org.eclipse.swt.dnd,
+ org.eclipse.swt.events,
+ org.eclipse.swt.graphics,
+ org.eclipse.swt.layout,
+ org.eclipse.swt.widgets,
+ org.eclipse.ui;ui.workbench=split,
+ org.eclipse.ui.actions;ui.workbench=split,
+ org.eclipse.ui.application,
+ org.eclipse.ui.forms,
+ org.eclipse.ui.forms.widgets,
+ org.eclipse.ui.part;ui.workbench=split,
+ org.eclipse.ui.plugin,
+ org.eclipse.ui.views,
+ org.eclipse.ui.views.contentoutline,
+ org.eclipse.ui.views.properties;ui.views=split
diff --git a/plugins/org.eclipse.emf.parsley.editors.common/build.properties b/plugins/org.eclipse.emf.parsley.editors.common/build.properties
new file mode 100644
index 000000000..e9863e281
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors.common/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml
diff --git a/plugins/org.eclipse.emf.parsley.editors.common/plugin.xml b/plugins/org.eclipse.emf.parsley.editors.common/plugin.xml
new file mode 100644
index 000000000..861420de4
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors.common/plugin.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.emf.parsley.editors.EmfComponentsEditorsExecutableExtensionFactory:org.eclipse.emf.parsley.editors.EmfTreeEditor"
+ contributorClass="org.eclipse.emf.parsley.editors.EmfComponentsEditorsExecutableExtensionFactory:org.eclipse.emf.parsley.editors.EmfComponentsEditorActionBarContributor"
+ default="false"
+ id="org.eclipse.emf.parsley.editors.treeEditor"
+ name="EMF Tree Editor">
+ <contentTypeBinding
+ contentTypeId="org.eclipse.emf.ecore.xmi">
+ </contentTypeBinding>
+ </editor>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfAbstractEditor.java b/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfAbstractEditor.java
new file mode 100644
index 000000000..b51398702
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfAbstractEditor.java
@@ -0,0 +1,1467 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2002-2007 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: EmfAbstractEditor.java,v 1.62 2011/05/12 20:21:12 emerks Exp $
+ */
+package org.eclipse.emf.parsley.editors;
+
+
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.common.CommonPlugin;
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EValidator;
+import org.eclipse.emf.ecore.presentation.EcoreEditorPlugin;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.xmi.impl.GenericXMLResourceFactoryImpl;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+import org.eclipse.emf.parsley.edit.action.EditingActionBarContributor;
+import org.eclipse.emf.parsley.editors.listeners.ResourceDeltaVisitor;
+import org.eclipse.emf.parsley.editors.outline.EmfEditorContentOutlineFactory;
+import org.eclipse.emf.parsley.editors.outline.EmfEditorContentOutlinePage;
+import org.eclipse.emf.parsley.factories.ViewerFactory;
+import org.eclipse.emf.parsley.handlers.OutlineSelectionHandler;
+import org.eclipse.emf.parsley.listeners.ViewerMouseAdapter;
+import org.eclipse.emf.parsley.menus.ViewerContextMenuFactory;
+import org.eclipse.emf.parsley.resource.EditingDomainFactory;
+import org.eclipse.emf.parsley.resource.EditingDomainResourceLoader;
+import org.eclipse.emf.parsley.util.EmfComponentsUtil;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.dialogs.SaveAsDialog;
+import org.eclipse.ui.ide.IGotoMarker;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+
+/**
+ * This is an example of a Ecore model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public abstract class EmfAbstractEditor
+ extends MultiPageEditorPart
+ implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker
+{
+ public static abstract class XML extends EmfAbstractEditor
+ {
+ public XML()
+ {
+ try
+ {
+ editingDomain.getResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", new GenericXMLResourceFactoryImpl());
+
+ Class<?> theItemProviderClass = CommonPlugin.loadClass("org.eclipse.xsd.edit", "org.eclipse.xsd.provider.XSDItemProviderAdapterFactory");
+ AdapterFactory xsdItemProviderAdapterFactory = (AdapterFactory)theItemProviderClass.newInstance();
+ adapterFactory.insertAdapterFactory(xsdItemProviderAdapterFactory);
+ }
+ catch (Exception exception)
+ {
+ EcoreEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ }
+
+ /**
+ * This keeps track of the editing domain that is used to track all changes to the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdapterFactoryEditingDomain editingDomain;
+
+ /**
+ * This is the one adapter factory used for providing views of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory adapterFactory;
+
+ protected EmfEditorContentOutlinePage contentOutlinePage;
+
+ /**
+ * This is the content outline page's viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer contentOutlineViewer;
+
+ /**
+ * This is the property sheet page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PropertySheetPage propertySheetPage;
+
+ /**
+ * This is the viewer that shadows the selection in the content outline.
+ * The parent relation must be correctly defined for this to work.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StructuredViewer selectionViewer;
+
+ /**
+ * This listens to which ever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionChangedListener selectionChangedListener;
+
+ /**
+ * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+ /**
+ * This keeps track of the selection of the editor as a whole.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+ /**
+ * The MarkerHelper is responsible for creating workspace resource markers presented
+ * in Eclipse's Problems View.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+ /**
+ * This listens for when the outline becomes active
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IPartListener partListener =
+ new IPartListener()
+ {
+ public void partActivated(IWorkbenchPart p)
+ {
+ if (p instanceof ContentOutline)
+ {
+ if (((ContentOutline)p).getCurrentPage() == contentOutlinePage)
+ {
+ getActionBarContributor().setActiveEditor(EmfAbstractEditor.this);
+
+ //setCurrentViewer(contentOutlineViewer);
+ }
+ }
+ else if (p instanceof PropertySheet)
+ {
+ if (((PropertySheet)p).getCurrentPage() == propertySheetPage)
+ {
+ getActionBarContributor().setActiveEditor(EmfAbstractEditor.this);
+ handleActivate();
+ }
+ }
+ else if (p == EmfAbstractEditor.this)
+ {
+ handleActivate();
+ }
+ }
+ public void partBroughtToTop(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+ public void partClosed(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+ public void partDeactivated(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+ public void partOpened(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+ };
+
+ /**
+ * Resources that have been removed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been changed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been saved.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+ /**
+ * Map to store the diagnostic associated with a resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+ /**
+ * Controls whether the problem indication should be updated.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean updateProblemIndication = true;
+
+ /**
+ * Adapter used to update the problem indication when resources are demanded loaded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EContentAdapter problemIndicationAdapter =
+ new EContentAdapter()
+ {
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ if (notification.getNotifier() instanceof Resource)
+ {
+ switch (notification.getFeatureID(Resource.class))
+ {
+ case Resource.RESOURCE__IS_LOADED:
+ case Resource.RESOURCE__ERRORS:
+ case Resource.RESOURCE__WARNINGS:
+ {
+ Resource resource = (Resource)notification.getNotifier();
+ Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ resourceToDiagnosticMap.put(resource, diagnostic);
+ }
+ else
+ {
+ resourceToDiagnosticMap.remove(resource);
+ }
+
+ if (updateProblemIndication)
+ {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable()
+ {
+ public void run()
+ {
+ updateProblemIndication();
+ }
+ });
+ }
+ break;
+ }
+ }
+ }
+ else
+ {
+ super.notifyChanged(notification);
+ }
+ }
+
+ @Override
+ protected void setTarget(Resource target)
+ {
+ basicSetTarget(target);
+ }
+
+ @Override
+ protected void unsetTarget(Resource target)
+ {
+ basicUnsetTarget(target);
+ }
+ };
+
+ /**
+ * This listens for workspace changes.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IResourceChangeListener resourceChangeListener =
+ new IResourceChangeListener()
+ {
+ public void resourceChanged(IResourceChangeEvent event)
+ {
+ IResourceDelta delta = event.getDelta();
+ try
+ {
+ final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+ visitor.init(editingDomain.getResourceSet(), savedResources);
+ delta.accept(visitor);
+
+ if (!visitor.getRemovedResources().isEmpty())
+ {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable()
+ {
+ public void run()
+ {
+ removedResources.addAll(visitor.getRemovedResources());
+ if (!isDirty())
+ {
+ getSite().getPage().closeEditor(EmfAbstractEditor.this, false);
+ }
+ }
+ });
+ }
+
+ if (!visitor.getChangedResources().isEmpty())
+ {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable()
+ {
+ public void run()
+ {
+ changedResources.addAll(visitor.getChangedResources());
+ if (getSite().getPage().getActiveEditor() == EmfAbstractEditor.this)
+ {
+ handleActivate();
+ }
+ }
+ });
+ }
+ }
+ catch (CoreException exception)
+ {
+ EcoreEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+@Inject
+protected ViewerFactory treeViewerFactory;
+
+@Inject
+protected Provider<ViewerMouseAdapter> viewerMouseAdapterProvider;
+
+@Inject
+protected EmfEditorContentOutlineFactory emfContentOutlineFactory;
+
+@Inject
+protected OutlineSelectionHandler outlineSelectionHandler;
+
+@Inject
+protected EditingDomainFactory editingDomainFactory;
+
+@Inject
+protected EditingDomainResourceLoader resourceLoader;
+
+@Inject
+protected ViewerContextMenuFactory viewerContextMenuFactory;
+
+ /**
+ * Handles activation of the editor or it's associated views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleActivate()
+ {
+ // Recompute the read only state.
+ //
+ if (editingDomain.getResourceToReadOnlyMap() != null)
+ {
+ editingDomain.getResourceToReadOnlyMap().clear();
+
+ // Refresh any actions that may become enabled or disabled.
+ //
+ setSelection(getSelection());
+ }
+
+ if (!removedResources.isEmpty())
+ {
+ if (handleDirtyConflict())
+ {
+ getSite().getPage().closeEditor(EmfAbstractEditor.this, false);
+ }
+ else
+ {
+ removedResources.clear();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+ else if (!changedResources.isEmpty())
+ {
+ changedResources.removeAll(savedResources);
+ handleChangedResources();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+
+ /**
+ * Handles what to do with changed resources on activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleChangedResources()
+ {
+ if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict()))
+ {
+ if (isDirty())
+ {
+ changedResources.addAll(editingDomain.getResourceSet().getResources());
+ }
+ editingDomain.getCommandStack().flush();
+
+ updateProblemIndication = false;
+ for (Resource resource : changedResources)
+ {
+ if (resource.isLoaded())
+ {
+ resource.unload();
+ try
+ {
+ resource.load(Collections.EMPTY_MAP);
+ }
+ catch (IOException exception)
+ {
+ if (!resourceToDiagnosticMap.containsKey(resource))
+ {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ }
+ }
+ }
+
+ if (AdapterFactoryEditingDomain.isStale(editorSelection))
+ {
+ setSelection(StructuredSelection.EMPTY);
+ }
+
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+ }
+
+ /**
+ * Updates the problems indication with the information described in the specified diagnostic.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void updateProblemIndication()
+ {
+ if (updateProblemIndication)
+ {
+ BasicDiagnostic diagnostic =
+ new BasicDiagnostic
+ (Diagnostic.OK,
+ "org.eclipse.emf.ecore.editor",
+ 0,
+ null,
+ new Object [] { editingDomain.getResourceSet() });
+ for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values())
+ {
+ if (childDiagnostic.getSeverity() != Diagnostic.OK)
+ {
+ diagnostic.add(childDiagnostic);
+ }
+ }
+
+ int lastEditorPage = getPageCount() - 1;
+ if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart)
+ {
+ ((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ setActivePage(lastEditorPage);
+ }
+ }
+ else if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+ problemEditorPart.setDiagnostic(diagnostic);
+ problemEditorPart.setMarkerHelper(markerHelper);
+ try
+ {
+ addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+ setPageText(lastEditorPage, problemEditorPart.getPartName());
+ setActivePage(lastEditorPage);
+ showTabs();
+ }
+ catch (PartInitException exception)
+ {
+ EcoreEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ if (markerHelper.hasMarkers(editingDomain.getResourceSet()))
+ {
+ markerHelper.deleteMarkers(editingDomain.getResourceSet());
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ try
+ {
+ markerHelper.createMarkers(diagnostic);
+ }
+ catch (CoreException exception)
+ {
+ EcoreEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Shows a dialog that asks if conflicting changes should be discarded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean handleDirtyConflict()
+ {
+ return
+ MessageDialog.openQuestion
+ (getSite().getShell(),
+ getString("_UI_FileConflict_label"),
+ getString("_WARN_FileConflict"));
+ }
+
+ /**
+ * This creates a model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EmfAbstractEditor()
+ {
+ super();
+ }
+
+ protected void initializeEditingDomain() {
+ editingDomain = editingDomainFactory.create();
+ adapterFactory = (ComposedAdapterFactory) editingDomain
+ .getAdapterFactory();
+ // Add a listener to set the most recent command's affected objects to
+ // be the selection of the viewer with focus.
+ editingDomain.getCommandStack().addCommandStackListener(
+ new CommandStackListener() {
+ public void commandStackChanged(final EventObject event) {
+ getContainer().getDisplay().asyncExec(new Runnable() {
+ public void run() {
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+
+ // Try to select the affected objects.
+ //
+ Command mostRecentCommand = ((CommandStack) event
+ .getSource()).getMostRecentCommand();
+ if (mostRecentCommand != null) {
+ setSelectionToViewer(mostRecentCommand
+ .getAffectedObjects());
+ }
+ if (propertySheetPage != null
+ && !propertySheetPage.getControl()
+ .isDisposed()) {
+ propertySheetPage.refresh();
+ }
+ }
+ });
+ }
+ });
+ }
+
+
+ /**
+ * This is here for the listener to be able to call it.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void firePropertyChange(int action)
+ {
+ super.firePropertyChange(action);
+ }
+
+ /**
+ * This sets the selection into whichever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelectionToViewer(Collection<?> collection)
+ {
+ final Collection<?> theSelection = collection;
+ // Make sure it's okay.
+ //
+ if (theSelection != null && !theSelection.isEmpty())
+ {
+ Runnable runnable =
+ new Runnable()
+ {
+ public void run()
+ {
+ // Try to select the items in the current content viewer of the editor.
+ //
+ if (selectionViewer != null)
+ {
+ selectionViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+ }
+ }
+ };
+ getSite().getShell().getDisplay().asyncExec(runnable);
+ }
+ }
+
+ /**
+ * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+ * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+ * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdapterFactoryEditingDomain getEditingDomain()
+ {
+ return editingDomain;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider
+ {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object [] getElements(Object object)
+ {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object [] getChildren(Object object)
+ {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean hasChildren(Object object)
+ {
+ Object parent = super.getParent(object);
+ return parent != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getParent(Object object)
+ {
+ return null;
+ }
+ }
+
+
+ protected ISelectionChangedListener createSelectionChangedListener() {
+ return new ISelectionChangedListener() {
+ // This just notifies those things that are affected by the section.
+ //
+ public void selectionChanged(
+ SelectionChangedEvent selectionChangedEvent) {
+ setSelection(selectionChangedEvent.getSelection());
+ }
+ };
+ }
+
+ public void createContextMenuFor(StructuredViewer viewer) {
+ MenuManager menuManager = viewerContextMenuFactory.createContextMenuFor(viewer, this, getEditingDomain());
+ menuManager.addMenuListener(this);
+
+ ViewerMouseAdapter listener = getViewerMouseAdapter();
+ viewer.getControl().addMouseListener(listener);
+ }
+
+ protected ViewerMouseAdapter getViewerMouseAdapter() {
+ return viewerMouseAdapterProvider.get();
+ }
+
+
+ /**
+ * Returns a diagnostic describing the errors and warnings listed in the resource
+ * and the specified exception (if any).
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Diagnostic analyzeResourceProblems(Resource resource, Exception exception)
+ {
+ if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty())
+ {
+ BasicDiagnostic basicDiagnostic =
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "org.eclipse.emf.ecore.editor",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object [] { exception == null ? (Object)resource : exception });
+ basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+ return basicDiagnostic;
+ }
+ else if (exception != null)
+ {
+ return
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "org.eclipse.emf.ecore.editor",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object[] { exception });
+ }
+ else
+ {
+ return Diagnostic.OK_INSTANCE;
+ }
+ }
+
+ /**
+ * If there is just one page in the multi-page editor part,
+ * this hides the single tab at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void hideTabs()
+ {
+ if (getPageCount() <= 1)
+ {
+ setPageText(0, "");
+ if (getContainer() instanceof CTabFolder)
+ {
+ ((CTabFolder)getContainer()).setTabHeight(1);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y + 6);
+ }
+ }
+ }
+
+ /**
+ * If there is more than one page in the multi-page editor part,
+ * this shows the tabs at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void showTabs()
+ {
+ if (getPageCount() > 1)
+ {
+ setPageText(0, getString("_UI_SelectionPage_label"));
+ if (getContainer() instanceof CTabFolder)
+ {
+ ((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y - 6);
+ }
+ }
+ }
+
+ /**
+ * This is used to track the active viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void pageChange(int pageIndex)
+ {
+ super.pageChange(pageIndex);
+
+ if (contentOutlinePage != null)
+ {
+ handleContentOutlineSelection(contentOutlinePage.getSelection());
+ }
+ }
+
+ /**
+ * This is how the framework determines which interfaces we implement.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object getAdapter(Class key)
+ {
+ if (key.equals(IContentOutlinePage.class))
+ {
+ return showOutlineView() ? getContentOutlinePage() : null;
+ }
+ else if (key.equals(IPropertySheetPage.class))
+ {
+ return getPropertySheetPage();
+ }
+ else if (key.equals(IGotoMarker.class))
+ {
+ return this;
+ }
+ else
+ {
+ return super.getAdapter(key);
+ }
+ }
+
+ public IContentOutlinePage getContentOutlinePage() {
+ if (contentOutlinePage == null) {
+ contentOutlinePage = emfContentOutlineFactory.create(this);
+
+ // Listen to selection so that we can handle it is a special way.
+ contentOutlinePage
+ .addSelectionChangedListener(new ISelectionChangedListener() {
+ // This ensures that we handle selections correctly.
+ //
+ public void selectionChanged(SelectionChangedEvent event) {
+ handleContentOutlineSelection(event.getSelection());
+ }
+ });
+ }
+
+ return contentOutlinePage;
+ }
+
+ public void setSelectionOnRoot(StructuredViewer viewer) {
+ if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+ // Select the root object in the view.
+ viewer.setSelection(new StructuredSelection(editingDomain
+ .getResourceSet().getResources().get(0)), true);
+ }
+ }
+
+ /**
+ * This accesses a cached version of the property sheet.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IPropertySheetPage getPropertySheetPage()
+ {
+ if (propertySheetPage == null)
+ {
+ propertySheetPage =
+ new ExtendedPropertySheetPage(editingDomain)
+ {
+ @Override
+ public void setSelectionToViewer(List<?> selection)
+ {
+ EmfAbstractEditor.this.setSelectionToViewer(selection);
+ EmfAbstractEditor.this.setFocus();
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars)
+ {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ }
+
+ return propertySheetPage;
+ }
+
+ public void handleContentOutlineSelection(ISelection selection) {
+ if (outlineSelectionHandler.getSelectionViewer() == null)
+ outlineSelectionHandler.setSelectionViewer(selectionViewer);
+ outlineSelectionHandler.handleContentOutlineSelection(selection);
+ }
+
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply tests the command stack.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isDirty()
+ {
+ return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply saves the model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSave(IProgressMonitor progressMonitor)
+ {
+ // Save only resources that have actually changed.
+ //
+ final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+ saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+
+ // Do the work within an operation because this is a long running activity that modifies the workbench.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation()
+ {
+ // This is the method that gets invoked when the operation runs.
+ //
+ @Override
+ public void execute(IProgressMonitor monitor)
+ {
+ // Save the resources to the file system.
+ //
+ boolean first = true;
+ for (Resource resource : editingDomain.getResourceSet().getResources())
+ {
+ if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource))
+ {
+ try
+ {
+ long timeStamp = resource.getTimeStamp();
+ resource.save(saveOptions);
+ if (resource.getTimeStamp() != timeStamp)
+ {
+ savedResources.add(resource);
+ }
+ }
+ catch (Exception exception)
+ {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ first = false;
+ }
+ }
+ }
+ };
+
+ updateProblemIndication = false;
+ try
+ {
+ // This runs the options, and shows progress.
+ //
+ new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+ // Refresh the necessary state.
+ //
+ ((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+ }
+ catch (Exception exception)
+ {
+ // Something went wrong that shouldn't.
+ //
+ EcoreEditorPlugin.INSTANCE.log(exception);
+ }
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+
+ /**
+ * This returns whether something has been persisted to the URI of the specified resource.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean isPersisted(Resource resource)
+ {
+ boolean result = false;
+ try
+ {
+ InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+ if (stream != null)
+ {
+ result = true;
+ stream.close();
+ }
+ }
+ catch (IOException e)
+ {
+ // Ignore
+ }
+ return result;
+ }
+
+ /**
+ * This always returns true because it is not currently supported.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isSaveAsAllowed()
+ {
+ return true;
+ }
+
+ public static final String ECORE_FILE_EXTENSION = "ecore";
+ public static final String EMOF_FILE_EXTENSION = "emof";
+
+ /**
+ * This also changes the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public void doSaveAs()
+ {
+ SaveAsDialog saveAsDialog= new SaveAsDialog(getSite().getShell());
+ saveAsDialog.create();
+ saveAsDialog.setMessage(EcoreEditorPlugin.INSTANCE.getString("_UI_SaveAs_message"));
+ saveAsDialog.open();
+ IPath path= saveAsDialog.getResult();
+ if (path != null)
+ {
+ IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+ if (file != null)
+ {
+ ResourceSet resourceSet = editingDomain.getResourceSet();
+ Resource currentResource = resourceSet.getResources().get(0);
+ String currentExtension = currentResource.getURI().fileExtension();
+
+ URI newURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true);
+ String newExtension = newURI.fileExtension();
+
+ if (currentExtension.equals(newExtension))
+ {
+ currentResource.setURI(newURI);
+ }
+ else
+ {
+ Resource newResource = resourceSet.createResource(newURI);
+ newResource.getContents().addAll(currentResource.getContents());
+ resourceSet.getResources().remove(0);
+ resourceSet.getResources().move(0, newResource);
+ }
+
+ IFileEditorInput modelFile = new FileEditorInput(file);
+ setInputWithNotify(modelFile);
+ setPartName(file.getName());
+ doSave(getActionBars().getStatusLineManager().getProgressMonitor());
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void doSaveAs(URI uri, IEditorInput editorInput)
+ {
+ (editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ IProgressMonitor progressMonitor =
+ getActionBars().getStatusLineManager() != null ?
+ getActionBars().getStatusLineManager().getProgressMonitor() :
+ new NullProgressMonitor();
+ doSave(progressMonitor);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void gotoMarker(IMarker marker)
+ {
+ try
+ {
+ if (marker.getType().equals(EValidator.MARKER))
+ {
+ String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
+ if (uriAttribute != null)
+ {
+ URI uri = URI.createURI(uriAttribute);
+ EObject eObject = editingDomain.getResourceSet().getEObject(uri, true);
+ if (eObject != null)
+ {
+ setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));
+ }
+ }
+ }
+ }
+ catch (CoreException exception)
+ {
+ EcoreEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ /**
+ * This is called during startup.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void init(IEditorSite site, IEditorInput editorInput) {
+ setSite(site);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ site.setSelectionProvider(this);
+ site.getPage().addPartListener(partListener);
+ initializeEditingDomain();
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(
+ resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setFocus()
+ {
+ getControl(getActivePage()).setFocus();
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addSelectionChangedListener(ISelectionChangedListener listener)
+ {
+ selectionChangedListeners.add(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeSelectionChangedListener(ISelectionChangedListener listener)
+ {
+ selectionChangedListeners.remove(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ISelection getSelection()
+ {
+ return editorSelection;
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+ * Calling this result will notify the listeners.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelection(ISelection selection)
+ {
+ editorSelection = selection;
+
+ for (ISelectionChangedListener listener : selectionChangedListeners)
+ {
+ listener.selectionChanged(new SelectionChangedEvent(this, selection));
+ }
+ setStatusLineManager(selection);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStatusLineManager(ISelection selection)
+ {
+ IStatusLineManager statusLineManager = EmfComponentsUtil.getStatusLineManager();
+
+ if (statusLineManager != null)
+ {
+ if (selection instanceof IStructuredSelection)
+ {
+ Collection<?> collection = ((IStructuredSelection)selection).toList();
+ switch (collection.size())
+ {
+ case 0:
+ {
+ statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+ break;
+ }
+ case 1:
+ {
+ String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+ statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+ break;
+ }
+ default:
+ {
+ statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+ break;
+ }
+ }
+ }
+ else
+ {
+ statusLineManager.setMessage("");
+ }
+ }
+ }
+
+ /**
+ * This looks up a string in the plugin's plugin.properties file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key)
+ {
+ return EcoreEditorPlugin.INSTANCE.getString(key);
+ }
+
+ /**
+ * This looks up a string in plugin.properties, making a substitution.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key, Object s1)
+ {
+ return EcoreEditorPlugin.INSTANCE.getString(key, new Object [] { s1 });
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void menuAboutToShow(IMenuManager menuManager)
+ {
+ ((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingActionBarContributor getActionBarContributor()
+ {
+ return (EditingActionBarContributor)getEditorSite().getActionBarContributor();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IActionBars getActionBars()
+ {
+ return getActionBarContributor().getActionBars();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdapterFactory getAdapterFactory()
+ {
+ return adapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void dispose()
+ {
+ updateProblemIndication = false;
+
+ ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+ getSite().getPage().removePartListener(partListener);
+
+ adapterFactory.dispose();
+
+ if (getActionBarContributor().getActiveEditor() == this)
+ {
+ getActionBarContributor().setActiveEditor(null);
+ }
+
+ if (propertySheetPage != null)
+ {
+ propertySheetPage.dispose();
+ }
+
+ if (contentOutlinePage != null)
+ {
+ contentOutlinePage.dispose();
+ }
+
+ super.dispose();
+ }
+
+ /**
+ * Returns whether the outline view should be presented to the user.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean showOutlineView()
+ {
+ return false;
+ }
+
+ public void setContentOutlineViewer(TreeViewer treeViewer) {
+ contentOutlineViewer = treeViewer;
+ }
+
+ public Viewer getViewer() {
+ return selectionViewer;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorActionBarContributor.java b/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorActionBarContributor.java
new file mode 100644
index 000000000..8deb1e138
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorActionBarContributor.java
@@ -0,0 +1,13 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.editors;
+
+/**
+ * @author bettini
+ *
+ */
+public class EmfComponentsEditorActionBarContributor extends
+ EmfActionBarContributor {
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorsActivator.java b/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorsActivator.java
new file mode 100644
index 000000000..f88ede32f
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorsActivator.java
@@ -0,0 +1,50 @@
+package org.eclipse.emf.parsley.editors;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class EmfComponentsEditorsActivator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.parsley.editors"; //$NON-NLS-1$
+
+ // The shared instance
+ private static EmfComponentsEditorsActivator plugin;
+
+ /**
+ * The constructor
+ */
+ public EmfComponentsEditorsActivator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static EmfComponentsEditorsActivator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorsExecutableExtensionFactory.java b/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorsExecutableExtensionFactory.java
new file mode 100644
index 000000000..362e98b24
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorsExecutableExtensionFactory.java
@@ -0,0 +1,18 @@
+package org.eclipse.emf.parsley.editors;
+
+import org.eclipse.emf.parsley.EmfComponentsExtensionFactory;
+import org.osgi.framework.Bundle;
+
+
+public class EmfComponentsEditorsExecutableExtensionFactory extends
+ EmfComponentsExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return EmfComponentsEditorsActivator.getDefault().getBundle();
+ }
+
+
+
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfTreeEditor.java b/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfTreeEditor.java
new file mode 100644
index 000000000..1ec10cc59
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/EmfTreeEditor.java
@@ -0,0 +1,129 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.editors;
+
+
+import java.util.Iterator;
+
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EGenericType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.ETypeParameter;
+import org.eclipse.emf.ecore.presentation.EcoreEditorPlugin;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+import org.eclipse.emf.parsley.resource.LoadResourceResponse;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.widgets.Tree;
+
+
+/**
+ * @author bettini
+ *
+ */
+public class EmfTreeEditor extends EmfAbstractEditor {
+
+ /**
+ *
+ */
+ public EmfTreeEditor() {
+
+ }
+
+ @Override
+ public void createPages() {
+ // Create a page for the selection tree view.
+ URI resourceURI = EditUIUtil.getURI(getEditorInput());
+
+ LoadResourceResponse response = resourceLoader.getResource(
+ editingDomain, resourceURI);
+
+ handleProblems(response);
+
+ Tree tree = new Tree(getContainer(), SWT.MULTI);
+ TreeViewer emfTreeViewer = treeViewerFactory.createTreeViewer(tree,
+ editingDomain);
+ selectionViewer = emfTreeViewer;
+ setSelectionOnRoot(selectionViewer);
+
+ updateActionBarContributor();
+
+ new AdapterFactoryTreeEditor(emfTreeViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(selectionViewer);
+
+ selectionViewer.addSelectionChangedListener(createSelectionChangedListener());
+
+ int pageIndex = addPage(tree);
+ setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+
+ setActivePage(0);
+
+ // Ensures that this editor will only display the page's tab
+ // area if there are more than one page
+ //
+ getContainer().addControlListener(new ControlAdapter() {
+ boolean guard = false;
+
+ @Override
+ public void controlResized(ControlEvent event) {
+ if (!guard) {
+ guard = true;
+ hideTabs();
+ guard = false;
+ }
+ }
+ });
+
+ updateProblemIndication();
+ }
+
+ protected void handleProblems(LoadResourceResponse response) {
+ Resource resource = response.getResource();
+ Exception exception = response.getException();
+ Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ resourceToDiagnosticMap.put(resource,
+ analyzeResourceProblems(resource, exception));
+ }
+ editingDomain.getResourceSet().eAdapters()
+ .add(problemIndicationAdapter);
+ }
+
+ protected void updateActionBarContributor() {
+ if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+ for (Iterator<EObject> i = editingDomain.getResourceSet()
+ .getResources().get(0).getAllContents(); i.hasNext();) {
+ EObject eObject = i.next();
+ if (eObject instanceof ETypeParameter
+ || eObject instanceof EGenericType
+ && !((EGenericType) eObject).getETypeArguments()
+ .isEmpty()) {
+ ((EmfActionBarContributor) getActionBarContributor())
+ .showGenerics(true);
+ break;
+ }
+ }
+ }
+ }
+
+ /**
+ * This looks up a string in the plugin's plugin.properties file. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static String getString(String key) {
+ return EcoreEditorPlugin.INSTANCE.getString(key);
+ }
+
+ protected boolean showOutlineView() {
+ return true;
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/listeners/ResourceDeltaVisitor.java b/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/listeners/ResourceDeltaVisitor.java
new file mode 100644
index 000000000..3b3d549f1
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/listeners/ResourceDeltaVisitor.java
@@ -0,0 +1,66 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.editors.listeners;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+/**
+ * Extracted and adapted from EmfAbstractEditor
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+ protected ResourceSet resourceSet;
+
+ protected Collection<Resource> savedResources;
+
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ public void init(ResourceSet resourceSet,
+ Collection<Resource> savedResources) {
+ this.resourceSet = resourceSet;
+ this.savedResources = savedResources;
+ }
+
+ public boolean visit(IResourceDelta delta) {
+ if (delta.getResource().getType() == IResource.FILE) {
+ if (delta.getKind() == IResourceDelta.REMOVED
+ || delta.getKind() == IResourceDelta.CHANGED
+ && delta.getFlags() != IResourceDelta.MARKERS) {
+ // see whether it's a resource of our resource set
+ Resource resource = resourceSet.getResource(URI
+ .createPlatformResourceURI(delta.getFullPath()
+ .toString(), true), false);
+ if (resource != null) {
+ if (delta.getKind() == IResourceDelta.REMOVED) {
+ removedResources.add(resource);
+ } else if (!savedResources.remove(resource)) {
+ changedResources.add(resource);
+ }
+ }
+ }
+ }
+
+ return true;
+ }
+
+ public Collection<Resource> getChangedResources() {
+ return changedResources;
+ }
+
+ public Collection<Resource> getRemovedResources() {
+ return removedResources;
+ }
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/outline/EmfEditorContentOutlineFactory.java b/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/outline/EmfEditorContentOutlineFactory.java
new file mode 100644
index 000000000..2934fce26
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/outline/EmfEditorContentOutlineFactory.java
@@ -0,0 +1,30 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.editors.outline;
+
+import org.eclipse.emf.parsley.editors.EmfAbstractEditor;
+import org.eclipse.emf.parsley.viewers.ViewerInitializer;
+
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+/**
+ * @author bettini
+ *
+ */
+public class EmfEditorContentOutlineFactory {
+
+ @Inject
+ protected Provider<ViewerInitializer> emfViewerManagerProvider;
+
+ @Inject
+ protected Provider<EmfEditorContentOutlinePage> outlinePageProvider;
+
+ public EmfEditorContentOutlinePage create(EmfAbstractEditor editor) {
+ EmfEditorContentOutlinePage outlinePage = outlinePageProvider.get();
+ outlinePage.init(editor);
+ return outlinePage;
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/outline/EmfEditorContentOutlinePage.java b/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/outline/EmfEditorContentOutlinePage.java
new file mode 100644
index 000000000..099cb2ac4
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors.common/src/org/eclipse/emf/parsley/editors/outline/EmfEditorContentOutlinePage.java
@@ -0,0 +1,59 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.editors.outline;
+
+
+import org.eclipse.emf.parsley.editors.EmfAbstractEditor;
+import org.eclipse.emf.parsley.viewers.ViewerInitializer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.part.IPageSite;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+
+import com.google.inject.Inject;
+
+/**
+ * @author bettini
+ *
+ */
+public class EmfEditorContentOutlinePage extends ContentOutlinePage {
+
+ protected EmfAbstractEditor editor;
+
+ @Inject
+ protected ViewerInitializer viewerInitializer;
+
+ public void init(EmfAbstractEditor editor) {
+ this.editor = editor;
+ }
+
+ @Override
+ public void createControl(Composite parent) {
+ super.createControl(parent);
+
+ TreeViewer contentOutlineViewer = getTreeViewer();
+ editor.setContentOutlineViewer(contentOutlineViewer);
+
+ // Set up the tree viewer.
+ viewerInitializer.initialize(contentOutlineViewer,
+ editor.getEditingDomain());
+ // Make sure our popups work.
+ editor.createContextMenuFor(contentOutlineViewer);
+ // select the root
+ editor.setSelectionOnRoot(contentOutlineViewer);
+ }
+
+ @Override
+ public void init(IPageSite pageSite) {
+ super.init(pageSite);
+ editor.getActionBarContributor().shareGlobalActions(this,
+ pageSite.getActionBars());
+ }
+
+ @Override
+ public TreeViewer getTreeViewer() {
+ return super.getTreeViewer();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.editors/.classpath b/plugins/org.eclipse.emf.parsley.editors/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.parsley.editors/.project b/plugins/org.eclipse.emf.parsley.editors/.project
new file mode 100644
index 000000000..4e5c8ca1a
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.editors</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.parsley.editors/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.parsley.editors/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.emf.parsley.editors/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.emf.parsley.editors/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.emf.parsley.editors/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.parsley.editors/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..f26e2039d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMF Components Editors
+Bundle-SymbolicName: org.eclipse.emf.parsley.editors;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-Activator: org.eclipse.emf.parsley.editors.EmfComponentsEditorsActivator
+Bundle-Vendor: RCP Vision
+Require-Bundle: org.eclipse.ui;bundle-version="3.5.0",
+ org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.emf.parsley;bundle-version="0.1.0";visibility:=reexport,
+ org.eclipse.emf.ecore.editor;bundle-version="2.7.0";visibility:=reexport,
+ org.eclipse.core.resources;bundle-version="3.5.0",
+ org.eclipse.emf.ecore.xmi;bundle-version="2.7.0"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emf.parsley.editors,
+ org.eclipse.emf.parsley.editors.outline
diff --git a/plugins/org.eclipse.emf.parsley.editors/build.properties b/plugins/org.eclipse.emf.parsley.editors/build.properties
new file mode 100644
index 000000000..e9863e281
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml
diff --git a/plugins/org.eclipse.emf.parsley.editors/plugin.xml b/plugins/org.eclipse.emf.parsley.editors/plugin.xml
new file mode 100644
index 000000000..861420de4
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors/plugin.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.emf.parsley.editors.EmfComponentsEditorsExecutableExtensionFactory:org.eclipse.emf.parsley.editors.EmfTreeEditor"
+ contributorClass="org.eclipse.emf.parsley.editors.EmfComponentsEditorsExecutableExtensionFactory:org.eclipse.emf.parsley.editors.EmfComponentsEditorActionBarContributor"
+ default="false"
+ id="org.eclipse.emf.parsley.editors.treeEditor"
+ name="EMF Tree Editor">
+ <contentTypeBinding
+ contentTypeId="org.eclipse.emf.ecore.xmi">
+ </contentTypeBinding>
+ </editor>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfAbstractEditor.java b/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfAbstractEditor.java
new file mode 100644
index 000000000..9d9a3bc91
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfAbstractEditor.java
@@ -0,0 +1,1469 @@
+/**
+ * <copyright>
+ *
+ * Copyright (c) 2002-2007 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ *
+ * </copyright>
+ *
+ * $Id: EmfAbstractEditor.java,v 1.62 2011/05/12 20:21:12 emerks Exp $
+ */
+package org.eclipse.emf.parsley.editors;
+
+
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.common.CommonPlugin;
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EValidator;
+import org.eclipse.emf.ecore.presentation.EcoreEditorPlugin;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.xmi.impl.GenericXMLResourceFactoryImpl;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+import org.eclipse.emf.parsley.edit.actionbar.WorkbenchActionBarContributor;
+import org.eclipse.emf.parsley.editors.listeners.ResourceDeltaVisitor;
+import org.eclipse.emf.parsley.editors.outline.EmfEditorContentOutlineFactory;
+import org.eclipse.emf.parsley.editors.outline.EmfEditorContentOutlinePage;
+import org.eclipse.emf.parsley.factories.ViewerFactory;
+import org.eclipse.emf.parsley.handlers.OutlineSelectionHandler;
+import org.eclipse.emf.parsley.listeners.ViewerMouseAdapter;
+import org.eclipse.emf.parsley.menus.ViewerContextMenuFactory;
+import org.eclipse.emf.parsley.resource.ResourceLoader;
+import org.eclipse.emf.parsley.util.EmfComponentsUtil;
+import org.eclipse.emf.parsley.viewers.ViewerInitializer;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.dialogs.SaveAsDialog;
+import org.eclipse.ui.ide.IGotoMarker;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+
+/**
+ * This is an example of a Ecore model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public abstract class EmfAbstractEditor
+ extends MultiPageEditorPart
+ implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker
+{
+ public static abstract class XML extends EmfAbstractEditor
+ {
+ public XML()
+ {
+ try
+ {
+ editingDomain.getResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", new GenericXMLResourceFactoryImpl());
+
+ Class<?> theItemProviderClass = CommonPlugin.loadClass("org.eclipse.xsd.edit", "org.eclipse.xsd.provider.XSDItemProviderAdapterFactory");
+ AdapterFactory xsdItemProviderAdapterFactory = (AdapterFactory)theItemProviderClass.newInstance();
+ adapterFactory.insertAdapterFactory(xsdItemProviderAdapterFactory);
+ }
+ catch (Exception exception)
+ {
+ EcoreEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ }
+
+ /**
+ * This keeps track of the editing domain that is used to track all changes to the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdapterFactoryEditingDomain editingDomain;
+
+ /**
+ * This is the one adapter factory used for providing views of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory adapterFactory;
+
+ protected EmfEditorContentOutlinePage contentOutlinePage;
+
+ /**
+ * This is the content outline page's viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer contentOutlineViewer;
+
+ /**
+ * This is the property sheet page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PropertySheetPage propertySheetPage;
+
+ /**
+ * This is the viewer that shadows the selection in the content outline.
+ * The parent relation must be correctly defined for this to work.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StructuredViewer selectionViewer;
+
+ /**
+ * This listens to which ever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionChangedListener selectionChangedListener;
+
+ /**
+ * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+ /**
+ * This keeps track of the selection of the editor as a whole.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+ /**
+ * The MarkerHelper is responsible for creating workspace resource markers presented
+ * in Eclipse's Problems View.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+ /**
+ * This listens for when the outline becomes active
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IPartListener partListener =
+ new IPartListener()
+ {
+ public void partActivated(IWorkbenchPart p)
+ {
+ if (p instanceof ContentOutline)
+ {
+ if (((ContentOutline)p).getCurrentPage() == contentOutlinePage)
+ {
+ getActionBarContributor().setActiveEditor(EmfAbstractEditor.this);
+
+ //setCurrentViewer(contentOutlineViewer);
+ }
+ }
+ else if (p instanceof PropertySheet)
+ {
+ if (((PropertySheet)p).getCurrentPage() == propertySheetPage)
+ {
+ getActionBarContributor().setActiveEditor(EmfAbstractEditor.this);
+ handleActivate();
+ }
+ }
+ else if (p == EmfAbstractEditor.this)
+ {
+ handleActivate();
+ }
+ }
+ public void partBroughtToTop(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+ public void partClosed(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+ public void partDeactivated(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+ public void partOpened(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+ };
+
+ /**
+ * Resources that have been removed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been changed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been saved.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+ /**
+ * Map to store the diagnostic associated with a resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+ /**
+ * Controls whether the problem indication should be updated.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean updateProblemIndication = true;
+
+ /**
+ * Adapter used to update the problem indication when resources are demanded loaded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EContentAdapter problemIndicationAdapter =
+ new EContentAdapter()
+ {
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ if (notification.getNotifier() instanceof Resource)
+ {
+ switch (notification.getFeatureID(Resource.class))
+ {
+ case Resource.RESOURCE__IS_LOADED:
+ case Resource.RESOURCE__ERRORS:
+ case Resource.RESOURCE__WARNINGS:
+ {
+ Resource resource = (Resource)notification.getNotifier();
+ Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ resourceToDiagnosticMap.put(resource, diagnostic);
+ }
+ else
+ {
+ resourceToDiagnosticMap.remove(resource);
+ }
+
+ if (updateProblemIndication)
+ {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable()
+ {
+ public void run()
+ {
+ updateProblemIndication();
+ }
+ });
+ }
+ break;
+ }
+ }
+ }
+ else
+ {
+ super.notifyChanged(notification);
+ }
+ }
+
+ @Override
+ protected void setTarget(Resource target)
+ {
+ basicSetTarget(target);
+ }
+
+ @Override
+ protected void unsetTarget(Resource target)
+ {
+ basicUnsetTarget(target);
+ }
+ };
+
+ /**
+ * This listens for workspace changes.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IResourceChangeListener resourceChangeListener =
+ new IResourceChangeListener()
+ {
+ public void resourceChanged(IResourceChangeEvent event)
+ {
+ IResourceDelta delta = event.getDelta();
+ try
+ {
+ final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+ visitor.init(editingDomain.getResourceSet(), savedResources);
+ delta.accept(visitor);
+
+ if (!visitor.getRemovedResources().isEmpty())
+ {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable()
+ {
+ public void run()
+ {
+ removedResources.addAll(visitor.getRemovedResources());
+ if (!isDirty())
+ {
+ getSite().getPage().closeEditor(EmfAbstractEditor.this, false);
+ }
+ }
+ });
+ }
+
+ if (!visitor.getChangedResources().isEmpty())
+ {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable()
+ {
+ public void run()
+ {
+ changedResources.addAll(visitor.getChangedResources());
+ if (getSite().getPage().getActiveEditor() == EmfAbstractEditor.this)
+ {
+ handleActivate();
+ }
+ }
+ });
+ }
+ }
+ catch (CoreException exception)
+ {
+ EcoreEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+@Inject
+protected ViewerFactory treeViewerFactory;
+
+@Inject
+protected Provider<ViewerMouseAdapter> viewerMouseAdapterProvider;
+
+@Inject
+protected EmfEditorContentOutlineFactory emfContentOutlineFactory;
+
+@Inject
+protected OutlineSelectionHandler outlineSelectionHandler;
+
+@Inject
+protected Provider<AdapterFactoryEditingDomain> editingDomainProvider;
+
+@Inject
+protected ResourceLoader resourceLoader;
+
+@Inject
+protected ViewerContextMenuFactory viewerContextMenuFactory;
+
+@Inject
+protected ViewerInitializer viewerInitializer;
+
+ /**
+ * Handles activation of the editor or it's associated views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleActivate()
+ {
+ // Recompute the read only state.
+ //
+ if (editingDomain.getResourceToReadOnlyMap() != null)
+ {
+ editingDomain.getResourceToReadOnlyMap().clear();
+
+ // Refresh any actions that may become enabled or disabled.
+ //
+ setSelection(getSelection());
+ }
+
+ if (!removedResources.isEmpty())
+ {
+ if (handleDirtyConflict())
+ {
+ getSite().getPage().closeEditor(EmfAbstractEditor.this, false);
+ }
+ else
+ {
+ removedResources.clear();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+ else if (!changedResources.isEmpty())
+ {
+ changedResources.removeAll(savedResources);
+ handleChangedResources();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+
+ /**
+ * Handles what to do with changed resources on activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleChangedResources()
+ {
+ if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict()))
+ {
+ if (isDirty())
+ {
+ changedResources.addAll(editingDomain.getResourceSet().getResources());
+ }
+ editingDomain.getCommandStack().flush();
+
+ updateProblemIndication = false;
+ for (Resource resource : changedResources)
+ {
+ if (resource.isLoaded())
+ {
+ resource.unload();
+ try
+ {
+ resource.load(Collections.EMPTY_MAP);
+ }
+ catch (IOException exception)
+ {
+ if (!resourceToDiagnosticMap.containsKey(resource))
+ {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ }
+ }
+ }
+
+ if (AdapterFactoryEditingDomain.isStale(editorSelection))
+ {
+ setSelection(StructuredSelection.EMPTY);
+ }
+
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+ }
+
+ /**
+ * Updates the problems indication with the information described in the specified diagnostic.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void updateProblemIndication()
+ {
+ if (updateProblemIndication)
+ {
+ BasicDiagnostic diagnostic =
+ new BasicDiagnostic
+ (Diagnostic.OK,
+ "org.eclipse.emf.ecore.editor",
+ 0,
+ null,
+ new Object [] { editingDomain.getResourceSet() });
+ for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values())
+ {
+ if (childDiagnostic.getSeverity() != Diagnostic.OK)
+ {
+ diagnostic.add(childDiagnostic);
+ }
+ }
+
+ int lastEditorPage = getPageCount() - 1;
+ if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart)
+ {
+ ((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ setActivePage(lastEditorPage);
+ }
+ }
+ else if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+ problemEditorPart.setDiagnostic(diagnostic);
+ problemEditorPart.setMarkerHelper(markerHelper);
+ try
+ {
+ addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+ setPageText(lastEditorPage, problemEditorPart.getPartName());
+ setActivePage(lastEditorPage);
+ showTabs();
+ }
+ catch (PartInitException exception)
+ {
+ EcoreEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ if (markerHelper.hasMarkers(editingDomain.getResourceSet()))
+ {
+ markerHelper.deleteMarkers(editingDomain.getResourceSet());
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ try
+ {
+ markerHelper.createMarkers(diagnostic);
+ }
+ catch (CoreException exception)
+ {
+ EcoreEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Shows a dialog that asks if conflicting changes should be discarded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean handleDirtyConflict()
+ {
+ return
+ MessageDialog.openQuestion
+ (getSite().getShell(),
+ getString("_UI_FileConflict_label"),
+ getString("_WARN_FileConflict"));
+ }
+
+ /**
+ * This creates a model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EmfAbstractEditor()
+ {
+ super();
+ }
+
+ protected void initializeEditingDomain() {
+ editingDomain = editingDomainProvider.get();
+ adapterFactory = (ComposedAdapterFactory) editingDomain
+ .getAdapterFactory();
+ // Add a listener to set the most recent command's affected objects to
+ // be the selection of the viewer with focus.
+ editingDomain.getCommandStack().addCommandStackListener(
+ new CommandStackListener() {
+ public void commandStackChanged(final EventObject event) {
+ getContainer().getDisplay().asyncExec(new Runnable() {
+ public void run() {
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+
+ // Try to select the affected objects.
+ //
+ Command mostRecentCommand = ((CommandStack) event
+ .getSource()).getMostRecentCommand();
+ if (mostRecentCommand != null) {
+ setSelectionToViewer(mostRecentCommand
+ .getAffectedObjects());
+ }
+ if (propertySheetPage != null
+ && !propertySheetPage.getControl()
+ .isDisposed()) {
+ propertySheetPage.refresh();
+ }
+ }
+ });
+ }
+ });
+ }
+
+
+ /**
+ * This is here for the listener to be able to call it.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void firePropertyChange(int action)
+ {
+ super.firePropertyChange(action);
+ }
+
+ /**
+ * This sets the selection into whichever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelectionToViewer(Collection<?> collection)
+ {
+ final Collection<?> theSelection = collection;
+ // Make sure it's okay.
+ //
+ if (theSelection != null && !theSelection.isEmpty())
+ {
+ Runnable runnable =
+ new Runnable()
+ {
+ public void run()
+ {
+ // Try to select the items in the current content viewer of the editor.
+ //
+ if (selectionViewer != null)
+ {
+ selectionViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+ }
+ }
+ };
+ getSite().getShell().getDisplay().asyncExec(runnable);
+ }
+ }
+
+ /**
+ * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+ * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+ * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdapterFactoryEditingDomain getEditingDomain()
+ {
+ return editingDomain;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider
+ {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object [] getElements(Object object)
+ {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object [] getChildren(Object object)
+ {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean hasChildren(Object object)
+ {
+ Object parent = super.getParent(object);
+ return parent != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getParent(Object object)
+ {
+ return null;
+ }
+ }
+
+
+ protected ISelectionChangedListener createSelectionChangedListener() {
+ return new ISelectionChangedListener() {
+ // This just notifies those things that are affected by the section.
+ //
+ public void selectionChanged(
+ SelectionChangedEvent selectionChangedEvent) {
+ setSelection(selectionChangedEvent.getSelection());
+ }
+ };
+ }
+
+ public void createContextMenuFor(StructuredViewer viewer) {
+ viewerInitializer.addContextMenu(viewer, (WorkbenchActionBarContributor)getActionBarContributor(),
+ editingDomain, this, this);
+
+ ViewerMouseAdapter listener = getViewerMouseAdapter();
+ viewer.getControl().addMouseListener(listener);
+ }
+
+ protected ViewerMouseAdapter getViewerMouseAdapter() {
+ return viewerMouseAdapterProvider.get();
+ }
+
+
+ /**
+ * Returns a diagnostic describing the errors and warnings listed in the resource
+ * and the specified exception (if any).
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Diagnostic analyzeResourceProblems(Resource resource, Exception exception)
+ {
+ if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty())
+ {
+ BasicDiagnostic basicDiagnostic =
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "org.eclipse.emf.ecore.editor",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object [] { exception == null ? (Object)resource : exception });
+ basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+ return basicDiagnostic;
+ }
+ else if (exception != null)
+ {
+ return
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "org.eclipse.emf.ecore.editor",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object[] { exception });
+ }
+ else
+ {
+ return Diagnostic.OK_INSTANCE;
+ }
+ }
+
+ /**
+ * If there is just one page in the multi-page editor part,
+ * this hides the single tab at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void hideTabs()
+ {
+ if (getPageCount() <= 1)
+ {
+ setPageText(0, "");
+ if (getContainer() instanceof CTabFolder)
+ {
+ ((CTabFolder)getContainer()).setTabHeight(1);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y + 6);
+ }
+ }
+ }
+
+ /**
+ * If there is more than one page in the multi-page editor part,
+ * this shows the tabs at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void showTabs()
+ {
+ if (getPageCount() > 1)
+ {
+ setPageText(0, getString("_UI_SelectionPage_label"));
+ if (getContainer() instanceof CTabFolder)
+ {
+ ((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y - 6);
+ }
+ }
+ }
+
+ /**
+ * This is used to track the active viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void pageChange(int pageIndex)
+ {
+ super.pageChange(pageIndex);
+
+ if (contentOutlinePage != null)
+ {
+ handleContentOutlineSelection(contentOutlinePage.getSelection());
+ }
+ }
+
+ /**
+ * This is how the framework determines which interfaces we implement.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object getAdapter(Class key)
+ {
+ if (key.equals(IContentOutlinePage.class))
+ {
+ return showOutlineView() ? getContentOutlinePage() : null;
+ }
+ else if (key.equals(IPropertySheetPage.class))
+ {
+ return getPropertySheetPage();
+ }
+ else if (key.equals(IGotoMarker.class))
+ {
+ return this;
+ }
+ else
+ {
+ return super.getAdapter(key);
+ }
+ }
+
+ public IContentOutlinePage getContentOutlinePage() {
+ if (contentOutlinePage == null) {
+ contentOutlinePage = emfContentOutlineFactory.create(this);
+
+ // Listen to selection so that we can handle it is a special way.
+ contentOutlinePage
+ .addSelectionChangedListener(new ISelectionChangedListener() {
+ // This ensures that we handle selections correctly.
+ //
+ public void selectionChanged(SelectionChangedEvent event) {
+ handleContentOutlineSelection(event.getSelection());
+ }
+ });
+ }
+
+ return contentOutlinePage;
+ }
+
+ public void setSelectionOnRoot(StructuredViewer viewer) {
+ if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+ // Select the root object in the view.
+ viewer.setSelection(new StructuredSelection(editingDomain
+ .getResourceSet().getResources().get(0)), true);
+ }
+ }
+
+ /**
+ * This accesses a cached version of the property sheet.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IPropertySheetPage getPropertySheetPage()
+ {
+ if (propertySheetPage == null)
+ {
+ propertySheetPage =
+ new ExtendedPropertySheetPage(editingDomain)
+ {
+ @Override
+ public void setSelectionToViewer(List<?> selection)
+ {
+ EmfAbstractEditor.this.setSelectionToViewer(selection);
+ EmfAbstractEditor.this.setFocus();
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars)
+ {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ }
+
+ return propertySheetPage;
+ }
+
+ public void handleContentOutlineSelection(ISelection selection) {
+ if (outlineSelectionHandler.getSelectionViewer() == null)
+ outlineSelectionHandler.setSelectionViewer(selectionViewer);
+ outlineSelectionHandler.handleContentOutlineSelection(selection);
+ }
+
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply tests the command stack.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isDirty()
+ {
+ return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply saves the model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSave(IProgressMonitor progressMonitor)
+ {
+ // Save only resources that have actually changed.
+ //
+ final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+ saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+
+ // Do the work within an operation because this is a long running activity that modifies the workbench.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation()
+ {
+ // This is the method that gets invoked when the operation runs.
+ //
+ @Override
+ public void execute(IProgressMonitor monitor)
+ {
+ // Save the resources to the file system.
+ //
+ boolean first = true;
+ for (Resource resource : editingDomain.getResourceSet().getResources())
+ {
+ if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource))
+ {
+ try
+ {
+ long timeStamp = resource.getTimeStamp();
+ resource.save(saveOptions);
+ if (resource.getTimeStamp() != timeStamp)
+ {
+ savedResources.add(resource);
+ }
+ }
+ catch (Exception exception)
+ {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ first = false;
+ }
+ }
+ }
+ };
+
+ updateProblemIndication = false;
+ try
+ {
+ // This runs the options, and shows progress.
+ //
+ new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+ // Refresh the necessary state.
+ //
+ ((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+ }
+ catch (Exception exception)
+ {
+ // Something went wrong that shouldn't.
+ //
+ EcoreEditorPlugin.INSTANCE.log(exception);
+ }
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+
+ /**
+ * This returns whether something has been persisted to the URI of the specified resource.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean isPersisted(Resource resource)
+ {
+ boolean result = false;
+ try
+ {
+ InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+ if (stream != null)
+ {
+ result = true;
+ stream.close();
+ }
+ }
+ catch (IOException e)
+ {
+ // Ignore
+ }
+ return result;
+ }
+
+ /**
+ * This always returns true because it is not currently supported.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isSaveAsAllowed()
+ {
+ return true;
+ }
+
+ public static final String ECORE_FILE_EXTENSION = "ecore";
+ public static final String EMOF_FILE_EXTENSION = "emof";
+
+ /**
+ * This also changes the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public void doSaveAs()
+ {
+ SaveAsDialog saveAsDialog= new SaveAsDialog(getSite().getShell());
+ saveAsDialog.create();
+ saveAsDialog.setMessage(EcoreEditorPlugin.INSTANCE.getString("_UI_SaveAs_message"));
+ saveAsDialog.open();
+ IPath path= saveAsDialog.getResult();
+ if (path != null)
+ {
+ IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+ if (file != null)
+ {
+ ResourceSet resourceSet = editingDomain.getResourceSet();
+ Resource currentResource = resourceSet.getResources().get(0);
+ String currentExtension = currentResource.getURI().fileExtension();
+
+ URI newURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true);
+ String newExtension = newURI.fileExtension();
+
+ if (currentExtension.equals(newExtension))
+ {
+ currentResource.setURI(newURI);
+ }
+ else
+ {
+ Resource newResource = resourceSet.createResource(newURI);
+ newResource.getContents().addAll(currentResource.getContents());
+ resourceSet.getResources().remove(0);
+ resourceSet.getResources().move(0, newResource);
+ }
+
+ IFileEditorInput modelFile = new FileEditorInput(file);
+ setInputWithNotify(modelFile);
+ setPartName(file.getName());
+ doSave(getActionBars().getStatusLineManager().getProgressMonitor());
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void doSaveAs(URI uri, IEditorInput editorInput)
+ {
+ (editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ IProgressMonitor progressMonitor =
+ getActionBars().getStatusLineManager() != null ?
+ getActionBars().getStatusLineManager().getProgressMonitor() :
+ new NullProgressMonitor();
+ doSave(progressMonitor);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void gotoMarker(IMarker marker)
+ {
+ try
+ {
+ if (marker.getType().equals(EValidator.MARKER))
+ {
+ String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
+ if (uriAttribute != null)
+ {
+ URI uri = URI.createURI(uriAttribute);
+ EObject eObject = editingDomain.getResourceSet().getEObject(uri, true);
+ if (eObject != null)
+ {
+ setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));
+ }
+ }
+ }
+ }
+ catch (CoreException exception)
+ {
+ EcoreEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ /**
+ * This is called during startup.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void init(IEditorSite site, IEditorInput editorInput) {
+ setSite(site);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ site.setSelectionProvider(this);
+ site.getPage().addPartListener(partListener);
+ initializeEditingDomain();
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(
+ resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setFocus()
+ {
+ getControl(getActivePage()).setFocus();
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addSelectionChangedListener(ISelectionChangedListener listener)
+ {
+ selectionChangedListeners.add(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeSelectionChangedListener(ISelectionChangedListener listener)
+ {
+ selectionChangedListeners.remove(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ISelection getSelection()
+ {
+ return editorSelection;
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+ * Calling this result will notify the listeners.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelection(ISelection selection)
+ {
+ editorSelection = selection;
+
+ for (ISelectionChangedListener listener : selectionChangedListeners)
+ {
+ listener.selectionChanged(new SelectionChangedEvent(this, selection));
+ }
+ setStatusLineManager(selection);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStatusLineManager(ISelection selection)
+ {
+ IStatusLineManager statusLineManager = EmfComponentsUtil.getStatusLineManager();
+
+ if (statusLineManager != null)
+ {
+ if (selection instanceof IStructuredSelection)
+ {
+ Collection<?> collection = ((IStructuredSelection)selection).toList();
+ switch (collection.size())
+ {
+ case 0:
+ {
+ statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+ break;
+ }
+ case 1:
+ {
+ String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+ statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+ break;
+ }
+ default:
+ {
+ statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+ break;
+ }
+ }
+ }
+ else
+ {
+ statusLineManager.setMessage("");
+ }
+ }
+ }
+
+ /**
+ * This looks up a string in the plugin's plugin.properties file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key)
+ {
+ return EcoreEditorPlugin.INSTANCE.getString(key);
+ }
+
+ /**
+ * This looks up a string in plugin.properties, making a substitution.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key, Object s1)
+ {
+ return EcoreEditorPlugin.INSTANCE.getString(key, new Object [] { s1 });
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void menuAboutToShow(IMenuManager menuManager)
+ {
+ ((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WorkbenchActionBarContributor getActionBarContributor()
+ {
+ return (WorkbenchActionBarContributor)getEditorSite().getActionBarContributor();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IActionBars getActionBars()
+ {
+ return getActionBarContributor().getActionBars();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdapterFactory getAdapterFactory()
+ {
+ return adapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void dispose()
+ {
+ updateProblemIndication = false;
+
+ ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+ getSite().getPage().removePartListener(partListener);
+
+ adapterFactory.dispose();
+
+ if (getActionBarContributor().getActiveEditor() == this)
+ {
+ getActionBarContributor().setActiveEditor(null);
+ }
+
+ if (propertySheetPage != null)
+ {
+ propertySheetPage.dispose();
+ }
+
+ if (contentOutlinePage != null)
+ {
+ contentOutlinePage.dispose();
+ }
+
+ super.dispose();
+ }
+
+ /**
+ * Returns whether the outline view should be presented to the user.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean showOutlineView()
+ {
+ return false;
+ }
+
+ public void setContentOutlineViewer(TreeViewer treeViewer) {
+ contentOutlineViewer = treeViewer;
+ }
+
+ public Viewer getViewer() {
+ return selectionViewer;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorActionBarContributor.java b/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorActionBarContributor.java
new file mode 100644
index 000000000..11c1aae16
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorActionBarContributor.java
@@ -0,0 +1,19 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.editors;
+
+import org.eclipse.emf.parsley.edit.actionbar.WorkbenchActionBarContributor;
+
+/**
+ * @author bettini
+ *
+ */
+public class EmfComponentsEditorActionBarContributor extends
+ WorkbenchActionBarContributor {
+
+ public EmfComponentsEditorActionBarContributor() {
+ super(ADDITIONS_LAST_STYLE);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorsActivator.java b/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorsActivator.java
new file mode 100644
index 000000000..f88ede32f
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorsActivator.java
@@ -0,0 +1,50 @@
+package org.eclipse.emf.parsley.editors;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class EmfComponentsEditorsActivator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.parsley.editors"; //$NON-NLS-1$
+
+ // The shared instance
+ private static EmfComponentsEditorsActivator plugin;
+
+ /**
+ * The constructor
+ */
+ public EmfComponentsEditorsActivator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static EmfComponentsEditorsActivator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorsExecutableExtensionFactory.java b/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorsExecutableExtensionFactory.java
new file mode 100644
index 000000000..362e98b24
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfComponentsEditorsExecutableExtensionFactory.java
@@ -0,0 +1,18 @@
+package org.eclipse.emf.parsley.editors;
+
+import org.eclipse.emf.parsley.EmfComponentsExtensionFactory;
+import org.osgi.framework.Bundle;
+
+
+public class EmfComponentsEditorsExecutableExtensionFactory extends
+ EmfComponentsExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return EmfComponentsEditorsActivator.getDefault().getBundle();
+ }
+
+
+
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfTreeEditor.java b/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfTreeEditor.java
new file mode 100644
index 000000000..2f6044ad5
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/EmfTreeEditor.java
@@ -0,0 +1,105 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.editors;
+
+
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.presentation.EcoreEditorPlugin;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+import org.eclipse.emf.parsley.resource.LoadResourceResponse;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.widgets.Tree;
+
+
+/**
+ * @author bettini
+ *
+ */
+public class EmfTreeEditor extends EmfAbstractEditor {
+
+ /**
+ *
+ */
+ public EmfTreeEditor() {
+
+ }
+
+ @Override
+ public void createPages() {
+ // Create a page for the selection tree view.
+ URI resourceURI = EditUIUtil.getURI(getEditorInput());
+
+ LoadResourceResponse response = resourceLoader.getResource(
+ editingDomain, resourceURI);
+
+ handleProblems(response);
+
+ Tree tree = new Tree(getContainer(), SWT.MULTI);
+ TreeViewer emfTreeViewer = treeViewerFactory.createTreeViewer(tree,
+ editingDomain);
+ selectionViewer = emfTreeViewer;
+ setSelectionOnRoot(selectionViewer);
+
+ new AdapterFactoryTreeEditor(emfTreeViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(selectionViewer);
+
+ selectionViewer.addSelectionChangedListener(createSelectionChangedListener());
+
+ int pageIndex = addPage(tree);
+ setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+
+ setActivePage(0);
+
+ // Ensures that this editor will only display the page's tab
+ // area if there are more than one page
+ //
+ getContainer().addControlListener(new ControlAdapter() {
+ boolean guard = false;
+
+ @Override
+ public void controlResized(ControlEvent event) {
+ if (!guard) {
+ guard = true;
+ hideTabs();
+ guard = false;
+ }
+ }
+ });
+
+ updateProblemIndication();
+ }
+
+ protected void handleProblems(LoadResourceResponse response) {
+ Resource resource = response.getResource();
+ Exception exception = response.getException();
+ Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ resourceToDiagnosticMap.put(resource,
+ analyzeResourceProblems(resource, exception));
+ }
+ editingDomain.getResourceSet().eAdapters()
+ .add(problemIndicationAdapter);
+ }
+
+ /**
+ * This looks up a string in the plugin's plugin.properties file. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static String getString(String key) {
+ return EcoreEditorPlugin.INSTANCE.getString(key);
+ }
+
+ protected boolean showOutlineView() {
+ return true;
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/listeners/ResourceDeltaVisitor.java b/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/listeners/ResourceDeltaVisitor.java
new file mode 100644
index 000000000..3b3d549f1
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/listeners/ResourceDeltaVisitor.java
@@ -0,0 +1,66 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.editors.listeners;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+/**
+ * Extracted and adapted from EmfAbstractEditor
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+ protected ResourceSet resourceSet;
+
+ protected Collection<Resource> savedResources;
+
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ public void init(ResourceSet resourceSet,
+ Collection<Resource> savedResources) {
+ this.resourceSet = resourceSet;
+ this.savedResources = savedResources;
+ }
+
+ public boolean visit(IResourceDelta delta) {
+ if (delta.getResource().getType() == IResource.FILE) {
+ if (delta.getKind() == IResourceDelta.REMOVED
+ || delta.getKind() == IResourceDelta.CHANGED
+ && delta.getFlags() != IResourceDelta.MARKERS) {
+ // see whether it's a resource of our resource set
+ Resource resource = resourceSet.getResource(URI
+ .createPlatformResourceURI(delta.getFullPath()
+ .toString(), true), false);
+ if (resource != null) {
+ if (delta.getKind() == IResourceDelta.REMOVED) {
+ removedResources.add(resource);
+ } else if (!savedResources.remove(resource)) {
+ changedResources.add(resource);
+ }
+ }
+ }
+ }
+
+ return true;
+ }
+
+ public Collection<Resource> getChangedResources() {
+ return changedResources;
+ }
+
+ public Collection<Resource> getRemovedResources() {
+ return removedResources;
+ }
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/outline/EmfEditorContentOutlineFactory.java b/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/outline/EmfEditorContentOutlineFactory.java
new file mode 100644
index 000000000..2934fce26
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/outline/EmfEditorContentOutlineFactory.java
@@ -0,0 +1,30 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.editors.outline;
+
+import org.eclipse.emf.parsley.editors.EmfAbstractEditor;
+import org.eclipse.emf.parsley.viewers.ViewerInitializer;
+
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+/**
+ * @author bettini
+ *
+ */
+public class EmfEditorContentOutlineFactory {
+
+ @Inject
+ protected Provider<ViewerInitializer> emfViewerManagerProvider;
+
+ @Inject
+ protected Provider<EmfEditorContentOutlinePage> outlinePageProvider;
+
+ public EmfEditorContentOutlinePage create(EmfAbstractEditor editor) {
+ EmfEditorContentOutlinePage outlinePage = outlinePageProvider.get();
+ outlinePage.init(editor);
+ return outlinePage;
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/outline/EmfEditorContentOutlinePage.java b/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/outline/EmfEditorContentOutlinePage.java
new file mode 100644
index 000000000..099cb2ac4
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.editors/src/org/eclipse/emf/parsley/editors/outline/EmfEditorContentOutlinePage.java
@@ -0,0 +1,59 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.editors.outline;
+
+
+import org.eclipse.emf.parsley.editors.EmfAbstractEditor;
+import org.eclipse.emf.parsley.viewers.ViewerInitializer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.part.IPageSite;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+
+import com.google.inject.Inject;
+
+/**
+ * @author bettini
+ *
+ */
+public class EmfEditorContentOutlinePage extends ContentOutlinePage {
+
+ protected EmfAbstractEditor editor;
+
+ @Inject
+ protected ViewerInitializer viewerInitializer;
+
+ public void init(EmfAbstractEditor editor) {
+ this.editor = editor;
+ }
+
+ @Override
+ public void createControl(Composite parent) {
+ super.createControl(parent);
+
+ TreeViewer contentOutlineViewer = getTreeViewer();
+ editor.setContentOutlineViewer(contentOutlineViewer);
+
+ // Set up the tree viewer.
+ viewerInitializer.initialize(contentOutlineViewer,
+ editor.getEditingDomain());
+ // Make sure our popups work.
+ editor.createContextMenuFor(contentOutlineViewer);
+ // select the root
+ editor.setSelectionOnRoot(contentOutlineViewer);
+ }
+
+ @Override
+ public void init(IPageSite pageSite) {
+ super.init(pageSite);
+ editor.getActionBarContributor().shareGlobalActions(this,
+ pageSite.getActionBars());
+ }
+
+ @Override
+ public TreeViewer getTreeViewer() {
+ return super.getTreeViewer();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.generator.common/.classpath b/plugins/org.eclipse.emf.parsley.generator.common/.classpath
new file mode 100644
index 000000000..5bb0a9645
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.generator.common/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.parsley.generator.common/.project b/plugins/org.eclipse.emf.parsley.generator.common/.project
new file mode 100644
index 000000000..9ed30d634
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.generator.common/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.generator.common</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.parsley.generator.common/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.parsley.generator.common/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 000000000..99f26c020
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.generator.common/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/plugins/org.eclipse.emf.parsley.generator.common/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.parsley.generator.common/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.generator.common/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.emf.parsley.generator.common/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.emf.parsley.generator.common/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.generator.common/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.emf.parsley.generator.common/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.parsley.generator.common/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..e60ddc5a3
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.generator.common/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Emf Components Generator Common Utilities
+Bundle-SymbolicName: org.eclipse.emf.parsley.generator.common
+Bundle-Version: 0.1.0.qualifier
+Bundle-Activator: org.eclipse.emf.parsley.generator.common.Activator
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",
+ com.google.guava,
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.4.2,2.5.0)"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.parsley.generator.common
+
diff --git a/plugins/org.eclipse.emf.parsley.generator.common/build.properties b/plugins/org.eclipse.emf.parsley.generator.common/build.properties
new file mode 100644
index 000000000..d8e2f0e92
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.generator.common/build.properties
@@ -0,0 +1,5 @@
+source.. = src/,\
+ xtend-gen/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/plugins/org.eclipse.emf.parsley.generator.common/src/org/eclipse/emf/parsley/generator/common/Activator.java b/plugins/org.eclipse.emf.parsley.generator.common/src/org/eclipse/emf/parsley/generator/common/Activator.java
new file mode 100644
index 000000000..164687954
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.generator.common/src/org/eclipse/emf/parsley/generator/common/Activator.java
@@ -0,0 +1,30 @@
+package org.eclipse.emf.parsley.generator.common;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+ private static BundleContext context;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ Activator.context = null;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.generator.common/src/org/eclipse/emf/parsley/generator/common/EmfParsleyProjectFilesGenerator.xtend b/plugins/org.eclipse.emf.parsley.generator.common/src/org/eclipse/emf/parsley/generator/common/EmfParsleyProjectFilesGenerator.xtend
new file mode 100644
index 000000000..156f4121c
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.generator.common/src/org/eclipse/emf/parsley/generator/common/EmfParsleyProjectFilesGenerator.xtend
@@ -0,0 +1,157 @@
+package org.eclipse.emf.parsley.generator.common
+
+class EmfParsleyProjectFilesGenerator {
+
+ def prefixFromProject(String projectName) {
+ var prefixName = projectName
+ val dotIndex = projectName.lastIndexOf(".")
+ if (dotIndex > 0)
+ prefixName = projectName.substring(dotIndex+1)
+ return prefixName.toFirstUpper
+ }
+
+ def activatorName(String projectName)
+ '''«projectName.prefixFromProject»Activator'''
+
+ def moduleName(String projectName)
+ '''«projectName.prefixFromProject»GuiceModule'''
+
+ def extFactoryName(String projectName)
+ '''«projectName.prefixFromProject»ExecutableExtensionFactory'''
+
+ def generateManifest(String projectName)
+'''
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: «projectName»
+Bundle-SymbolicName: «projectName»;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: «projectName».«projectName.activatorName»
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.emf.parsley,
+ org.eclipse.emf.parsley.views
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+'''
+
+ def generateBuildProperties(boolean hasPluginXml)
+'''
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .«IF hasPluginXml»,\
+ plugin.xml«ENDIF»
+'''
+
+ def generateActivator(String projectName)
+'''
+package «projectName»;
+
+import org.osgi.framework.BundleContext;
+
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.ui.EmfComponentsAbstractActivator;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class «projectName.activatorName» extends EmfComponentsAbstractActivator {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "«projectName»"; //$NON-NLS-1$
+
+ // The shared instance
+ private static «projectName.activatorName» plugin;
+
+ public «projectName.activatorName»() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static «projectName.activatorName» getDefault() {
+ return plugin;
+ }
+
+ /**
+ * Creates the EmfComponentsGuiceModule for this this plugin
+ *
+ * @return the EmfComponentsGuiceModule for this this plugin
+ */
+ public EmfComponentsGuiceModule createModule() {
+ return new «projectName.moduleName»(getDefault());
+ }
+}
+'''
+
+ def generateExecutableExtensionFactory(String projectName)
+'''
+package «projectName»;
+
+import org.osgi.framework.Bundle;
+
+import org.eclipse.emf.parsley.EmfComponentsExtensionFactory;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+
+import com.google.inject.Injector;
+
+public class «projectName.extFactoryName» extends
+ EmfComponentsExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return «projectName.activatorName».getDefault().getBundle();
+ }
+
+ @Override
+ protected EmfComponentsGuiceModule getModule() {
+ return «projectName.activatorName».getDefault().createModule();
+ }
+
+ @Override
+ protected Injector getInjector() {
+ return «projectName.activatorName».getDefault().getInjector();
+ }
+}
+'''
+
+ def generateModule(String projectName, String superClass)
+'''
+package «projectName»;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+«IF superClass == "EmfComponentsGuiceModule"»
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+«ENDIF»
+
+public class «projectName.moduleName» extends «superClass» {
+
+ public «projectName.moduleName»(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+}
+'''
+}
diff --git a/plugins/org.eclipse.emf.parsley.generator.common/src/org/eclipse/emf/parsley/generator/common/EmfParsleyViewFilesGenerator.xtend b/plugins/org.eclipse.emf.parsley.generator.common/src/org/eclipse/emf/parsley/generator/common/EmfParsleyViewFilesGenerator.xtend
new file mode 100644
index 000000000..041afd670
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.generator.common/src/org/eclipse/emf/parsley/generator/common/EmfParsleyViewFilesGenerator.xtend
@@ -0,0 +1,85 @@
+package org.eclipse.emf.parsley.generator.common
+
+class EmfParsleyViewFilesGenerator {
+
+ def generateTreeFormView(String projectName, String simpleName)
+'''
+package «projectName»;
+
+import org.eclipse.emf.parsley.views.AbstractSaveableTreeFormView;
+
+import org.eclipse.emf.common.util.URI;
+
+public class «simpleName»TreeFormView extends AbstractSaveableTreeFormView {
+
+ @Override
+ protected URI createResourceURI() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
+'''
+
+ def generateTableView(String projectName, String simpleName)
+'''
+package «projectName»;
+
+import org.eclipse.emf.parsley.views.AbstractSaveableTableView;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.resource.Resource;
+
+public class «simpleName»TableView extends AbstractSaveableTableView {
+
+ @Override
+ protected Object getContents(Resource resource) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ protected EClass getEClass() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ protected URI createResourceURI() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+}
+'''
+
+ def generatePluginXml(String factoryClass, String qualifiedNameView)
+'''
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ class="«factoryClass»:«qualifiedNameView»"
+ id="«qualifiedNameView»"
+ name="Form View"
+ restorable="true"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.perspectiveExtensions">
+ <perspectiveExtension
+ targetID="*">
+ <view
+ id="«qualifiedNameView»"
+ minimized="false"
+ ratio="100"
+ relationship="stack"
+ relative="org.eclipse.ui.editorss"
+ visible="true">
+ </view>
+ </perspectiveExtension>
+ </extension>
+</plugin>
+'''
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.parsley.generator.common/xtend-gen/org/eclipse/emf/parsley/generator/common/EmfParsleyProjectFilesGenerator.java b/plugins/org.eclipse.emf.parsley.generator.common/xtend-gen/org/eclipse/emf/parsley/generator/common/EmfParsleyProjectFilesGenerator.java
new file mode 100644
index 000000000..a27d192a9
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.generator.common/xtend-gen/org/eclipse/emf/parsley/generator/common/EmfParsleyProjectFilesGenerator.java
@@ -0,0 +1,396 @@
+package org.eclipse.emf.parsley.generator.common;
+
+import com.google.common.base.Objects;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.StringExtensions;
+
+@SuppressWarnings("all")
+public class EmfParsleyProjectFilesGenerator {
+ public String prefixFromProject(final String projectName) {
+ String prefixName = projectName;
+ final int dotIndex = projectName.lastIndexOf(".");
+ boolean _greaterThan = (dotIndex > 0);
+ if (_greaterThan) {
+ int _plus = (dotIndex + 1);
+ String _substring = projectName.substring(_plus);
+ prefixName = _substring;
+ }
+ return StringExtensions.toFirstUpper(prefixName);
+ }
+
+ public CharSequence activatorName(final String projectName) {
+ StringConcatenation _builder = new StringConcatenation();
+ String _prefixFromProject = this.prefixFromProject(projectName);
+ _builder.append(_prefixFromProject, "");
+ _builder.append("Activator");
+ return _builder;
+ }
+
+ public CharSequence moduleName(final String projectName) {
+ StringConcatenation _builder = new StringConcatenation();
+ String _prefixFromProject = this.prefixFromProject(projectName);
+ _builder.append(_prefixFromProject, "");
+ _builder.append("GuiceModule");
+ return _builder;
+ }
+
+ public CharSequence extFactoryName(final String projectName) {
+ StringConcatenation _builder = new StringConcatenation();
+ String _prefixFromProject = this.prefixFromProject(projectName);
+ _builder.append(_prefixFromProject, "");
+ _builder.append("ExecutableExtensionFactory");
+ return _builder;
+ }
+
+ public CharSequence generateManifest(final String projectName) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("Manifest-Version: 1.0");
+ _builder.newLine();
+ _builder.append("Bundle-ManifestVersion: 2");
+ _builder.newLine();
+ _builder.append("Bundle-Name: ");
+ _builder.append(projectName, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("Bundle-SymbolicName: ");
+ _builder.append(projectName, "");
+ _builder.append(";singleton:=true");
+ _builder.newLineIfNotEmpty();
+ _builder.append("Bundle-Version: 1.0.0.qualifier");
+ _builder.newLine();
+ _builder.append("Bundle-Activator: ");
+ _builder.append(projectName, "");
+ _builder.append(".");
+ CharSequence _activatorName = this.activatorName(projectName);
+ _builder.append(_activatorName, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("Require-Bundle: org.eclipse.ui,");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("org.eclipse.core.runtime,");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("org.eclipse.emf.parsley,");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("org.eclipse.emf.parsley.views");
+ _builder.newLine();
+ _builder.append("Bundle-ActivationPolicy: lazy");
+ _builder.newLine();
+ _builder.append("Bundle-RequiredExecutionEnvironment: JavaSE-1.6");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence generateBuildProperties(final boolean hasPluginXml) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("source.. = src/");
+ _builder.newLine();
+ _builder.append("output.. = bin/");
+ _builder.newLine();
+ _builder.append("bin.includes = META-INF/,\\");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append(".");
+ {
+ if (hasPluginXml) {
+ _builder.append(",\\");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("plugin.xml");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ public CharSequence generateActivator(final String projectName) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("package ");
+ _builder.append(projectName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("import org.osgi.framework.BundleContext;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.EmfComponentsGuiceModule;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.ui.EmfComponentsAbstractActivator;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("/**");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* The activator class controls the plug-in life cycle");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("public class ");
+ CharSequence _activatorName = this.activatorName(projectName);
+ _builder.append(_activatorName, "");
+ _builder.append(" extends EmfComponentsAbstractActivator {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("// The plug-in ID");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("public static final String PLUGIN_ID = \"");
+ _builder.append(projectName, " ");
+ _builder.append("\"; //$NON-NLS-1$");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("// The shared instance");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("private static ");
+ CharSequence _activatorName_1 = this.activatorName(projectName);
+ _builder.append(_activatorName_1, " ");
+ _builder.append(" plugin;");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("public ");
+ CharSequence _activatorName_2 = this.activatorName(projectName);
+ _builder.append(_activatorName_2, " ");
+ _builder.append("() {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("/*");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("* (non-Javadoc)");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("* @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("public void start(BundleContext context) throws Exception {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("super.start(context);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("plugin = this;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("/*");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("* (non-Javadoc)");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("* @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("public void stop(BundleContext context) throws Exception {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("plugin = null;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("super.stop(context);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("/**");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("* Returns the shared instance");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("*");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("* @return the shared instance");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("public static ");
+ CharSequence _activatorName_3 = this.activatorName(projectName);
+ _builder.append(_activatorName_3, " ");
+ _builder.append(" getDefault() {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("return plugin;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("/**");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("* Creates the EmfComponentsGuiceModule for this this plugin");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("*");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("* @return the EmfComponentsGuiceModule for this this plugin");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("public EmfComponentsGuiceModule createModule() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return new ");
+ CharSequence _moduleName = this.moduleName(projectName);
+ _builder.append(_moduleName, " ");
+ _builder.append("(getDefault());");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence generateExecutableExtensionFactory(final String projectName) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("package ");
+ _builder.append(projectName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("import org.osgi.framework.Bundle;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.EmfComponentsExtensionFactory;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.EmfComponentsGuiceModule;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("import com.google.inject.Injector;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("public class ");
+ CharSequence _extFactoryName = this.extFactoryName(projectName);
+ _builder.append(_extFactoryName, "");
+ _builder.append(" extends");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("EmfComponentsExtensionFactory {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("protected Bundle getBundle() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return ");
+ CharSequence _activatorName = this.activatorName(projectName);
+ _builder.append(_activatorName, " ");
+ _builder.append(".getDefault().getBundle();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("protected EmfComponentsGuiceModule getModule() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return ");
+ CharSequence _activatorName_1 = this.activatorName(projectName);
+ _builder.append(_activatorName_1, " ");
+ _builder.append(".getDefault().createModule();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("protected Injector getInjector() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return ");
+ CharSequence _activatorName_2 = this.activatorName(projectName);
+ _builder.append(_activatorName_2, " ");
+ _builder.append(".getDefault().getInjector();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence generateModule(final String projectName, final String superClass) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("package ");
+ _builder.append(projectName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("import org.eclipse.ui.plugin.AbstractUIPlugin;");
+ _builder.newLine();
+ _builder.newLine();
+ {
+ boolean _equals = Objects.equal(superClass, "EmfComponentsGuiceModule");
+ if (_equals) {
+ _builder.append("import org.eclipse.emf.parsley.EmfComponentsGuiceModule;");
+ _builder.newLine();
+ }
+ }
+ _builder.newLine();
+ _builder.append("public class ");
+ CharSequence _moduleName = this.moduleName(projectName);
+ _builder.append(_moduleName, "");
+ _builder.append(" extends ");
+ _builder.append(superClass, "");
+ _builder.append(" {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("public ");
+ CharSequence _moduleName_1 = this.moduleName(projectName);
+ _builder.append(_moduleName_1, " ");
+ _builder.append("(AbstractUIPlugin plugin) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("super(plugin);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.generator.common/xtend-gen/org/eclipse/emf/parsley/generator/common/EmfParsleyViewFilesGenerator.java b/plugins/org.eclipse.emf.parsley.generator.common/xtend-gen/org/eclipse/emf/parsley/generator/common/EmfParsleyViewFilesGenerator.java
new file mode 100644
index 000000000..fae2f3925
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.generator.common/xtend-gen/org/eclipse/emf/parsley/generator/common/EmfParsleyViewFilesGenerator.java
@@ -0,0 +1,207 @@
+package org.eclipse.emf.parsley.generator.common;
+
+import org.eclipse.xtend2.lib.StringConcatenation;
+
+@SuppressWarnings("all")
+public class EmfParsleyViewFilesGenerator {
+ public CharSequence generateTreeFormView(final String projectName, final String simpleName) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("package ");
+ _builder.append(projectName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.views.AbstractSaveableTreeFormView;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.common.util.URI;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("public class ");
+ _builder.append(simpleName, "");
+ _builder.append("TreeFormView extends AbstractSaveableTreeFormView {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("protected URI createResourceURI() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// TODO Auto-generated method stub");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence generateTableView(final String projectName, final String simpleName) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("package ");
+ _builder.append(projectName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.parsley.views.AbstractSaveableTableView;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.common.util.URI;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.ecore.EClass;");
+ _builder.newLine();
+ _builder.append("import org.eclipse.emf.ecore.resource.Resource;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("public class ");
+ _builder.append(simpleName, "");
+ _builder.append("TableView extends AbstractSaveableTableView {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("protected Object getContents(Resource resource) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// TODO Auto-generated method stub");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("protected EClass getEClass() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// TODO Auto-generated method stub");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("protected URI createResourceURI() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// TODO Auto-generated method stub");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence generatePluginXml(final String factoryClass, final String qualifiedNameView) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+ _builder.newLine();
+ _builder.append("<?eclipse version=\"3.4\"?>");
+ _builder.newLine();
+ _builder.append("<plugin>");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("<extension");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("point=\"org.eclipse.ui.views\">");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("<view");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("class=\"");
+ _builder.append(factoryClass, " ");
+ _builder.append(":");
+ _builder.append(qualifiedNameView, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("id=\"");
+ _builder.append(qualifiedNameView, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("name=\"Form View\"");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("restorable=\"true\"/>");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("</extension>");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("<extension");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("point=\"org.eclipse.ui.perspectiveExtensions\">");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("<perspectiveExtension");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("targetID=\"*\">");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("<view");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("id=\"");
+ _builder.append(qualifiedNameView, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("minimized=\"false\"");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("ratio=\"100\"");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("relationship=\"stack\"");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("relative=\"org.eclipse.ui.editorss\"");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("visible=\"true\">");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("</view>");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("</perspectiveExtension>");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("</extension>");
+ _builder.newLine();
+ _builder.append("</plugin>");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.rap.runtime/.classpath b/plugins/org.eclipse.emf.parsley.rap.runtime/.classpath
new file mode 100644
index 000000000..c83506765
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap.runtime/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.parsley.rap.runtime/.project b/plugins/org.eclipse.emf.parsley.rap.runtime/.project
new file mode 100644
index 000000000..ef508031a
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap.runtime/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.rap.runtime</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.parsley.rap.runtime/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.parsley.rap.runtime/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap.runtime/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.emf.parsley.rap.runtime/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.emf.parsley.rap.runtime/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap.runtime/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.emf.parsley.rap.runtime/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.parsley.rap.runtime/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..30ede43e5
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap.runtime/META-INF/MANIFEST.MF
@@ -0,0 +1,9 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Emf Components RAP Runtime Functionalities
+Bundle-SymbolicName: org.eclipse.emf.parsley.rap.runtime
+Bundle-Version: 0.1.0.qualifier
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: org.eclipse.emf.parsley.runtime.common;bundle-version="0.1.0";visibility:=reexport,
+ org.eclipse.rap.ui;bundle-version="1.5.0"
+Bundle-Vendor: RCP-VISION
diff --git a/plugins/org.eclipse.emf.parsley.rap.runtime/build.properties b/plugins/org.eclipse.emf.parsley.rap.runtime/build.properties
new file mode 100644
index 000000000..7594fab8d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap.runtime/build.properties
@@ -0,0 +1,2 @@
+bin.includes = META-INF/,\
+ .
diff --git a/plugins/org.eclipse.emf.parsley.rap.views/.classpath b/plugins/org.eclipse.emf.parsley.rap.views/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap.views/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.parsley.rap.views/.project b/plugins/org.eclipse.emf.parsley.rap.views/.project
new file mode 100644
index 000000000..90dd4c9b3
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap.views/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.rap.views</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.parsley.rap.views/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.parsley.rap.views/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap.views/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.emf.parsley.rap.views/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.emf.parsley.rap.views/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap.views/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.emf.parsley.rap.views/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.parsley.rap.views/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..388873216
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap.views/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMF Components RAP Views
+Bundle-SymbolicName: org.eclipse.emf.parsley.rap.views
+Bundle-Version: 0.1.0.qualifier
+Bundle-Activator: org.eclipse.emf.parsley.rap.views.EmfComponentsRapViewsActivator
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0";visibility:=reexport,
+ org.eclipse.emf.parsley.views.common;bundle-version="0.1.0";visibility:=reexport,
+ org.eclipse.rap.ui.views;bundle-version="1.5.0";visibility:=reexport,
+ org.eclipse.emf.parsley.rap;bundle-version="0.1.0";visibility:=reexport
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.emf.parsley.rap.views/build.properties b/plugins/org.eclipse.emf.parsley.rap.views/build.properties
new file mode 100644
index 000000000..34d2e4d2d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap.views/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/plugins/org.eclipse.emf.parsley.rap.views/src/org/eclipse/emf/parsley/rap/views/EmfComponentsRapViewsActivator.java b/plugins/org.eclipse.emf.parsley.rap.views/src/org/eclipse/emf/parsley/rap/views/EmfComponentsRapViewsActivator.java
new file mode 100644
index 000000000..45a421d6c
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap.views/src/org/eclipse/emf/parsley/rap/views/EmfComponentsRapViewsActivator.java
@@ -0,0 +1,30 @@
+package org.eclipse.emf.parsley.rap.views;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class EmfComponentsRapViewsActivator implements BundleActivator {
+
+ private static BundleContext context;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ EmfComponentsRapViewsActivator.context = bundleContext;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ EmfComponentsRapViewsActivator.context = null;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.rap/.classpath b/plugins/org.eclipse.emf.parsley.rap/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.parsley.rap/.project b/plugins/org.eclipse.emf.parsley.rap/.project
new file mode 100644
index 000000000..8a5bd6580
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.rap</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.parsley.rap/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.parsley.rap/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.emf.parsley.rap/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.emf.parsley.rap/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.emf.parsley.rap/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.parsley.rap/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..5b08ca589
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Emf Components
+Bundle-SymbolicName: org.eclipse.emf.parsley.rap
+Bundle-Version: 0.1.0.qualifier
+Bundle-Activator: org.eclipse.emf.parsley.rap.EmfComponentsRapActivator
+Require-Bundle: org.eclipse.emf.databinding.edit;bundle-version="1.2.0";visibility:=reexport,
+ org.eclipse.core.databinding.property;bundle-version="1.4.0",
+ org.eclipse.emf.ecore.edit;bundle-version="2.7.0";visibility:=reexport,
+ org.eclipse.core.runtime;bundle-version="3.5.0";visibility:=reexport,
+ org.eclipse.emf.parsley.rap.runtime;bundle-version="0.1.0";visibility:=reexport,
+ org.eclipse.rap.ui;bundle-version="1.5.0";visibility:=reexport,
+ org.eclipse.emf.rap.edit.ui;bundle-version="2.7.0";visibility:=reexport,
+ org.eclipse.rap.ui.forms;bundle-version="1.5.0";visibility:=reexport,
+ org.eclipse.rap.jface.databinding;bundle-version="1.5.0";visibility:=reexport,
+ org.eclipse.emf.parsley.common;bundle-version="0.1.0";visibility:=reexport
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.emf.parsley.rap/build.properties b/plugins/org.eclipse.emf.parsley.rap/build.properties
new file mode 100644
index 000000000..34d2e4d2d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/plugins/org.eclipse.emf.parsley.rap/src/org/eclipse/emf/parsley/rap/EmfComponentsRapActivator.java b/plugins/org.eclipse.emf.parsley.rap/src/org/eclipse/emf/parsley/rap/EmfComponentsRapActivator.java
new file mode 100644
index 000000000..c3a079aeb
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.rap/src/org/eclipse/emf/parsley/rap/EmfComponentsRapActivator.java
@@ -0,0 +1,30 @@
+package org.eclipse.emf.parsley.rap;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class EmfComponentsRapActivator implements BundleActivator {
+
+ private static BundleContext context;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ EmfComponentsRapActivator.context = bundleContext;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ EmfComponentsRapActivator.context = null;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/.classpath b/plugins/org.eclipse.emf.parsley.runtime.common/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/.project b/plugins/org.eclipse.emf.parsley.runtime.common/.project
new file mode 100644
index 000000000..44d11847a
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.runtime.common</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.parsley.runtime.common/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..ff215a9e5
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,95 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.emf.parsley.runtime.common/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.parsley.runtime.common/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..cb82a1a82
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Emf Components Runtime Functionalities
+Bundle-SymbolicName: org.eclipse.emf.parsley.runtime.common
+Bundle-Version: 0.1.0.qualifier
+Bundle-Vendor: RCP-VISION
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: com.google.inject;bundle-version="3.0.0";visibility:=reexport,
+ javax.inject;bundle-version="1.0.0";visibility:=reexport,
+ com.google.guava;bundle-version="10.0.1";visibility:=reexport,
+ org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.emf.common;bundle-version="2.7.0"
+Import-Package: org.apache.log4j;version="1.2.13",
+ org.eclipse.jface.dialogs,
+ org.eclipse.jface.resource,
+ org.eclipse.swt.graphics,
+ org.eclipse.ui.plugin
+Export-Package: org.eclipse.emf.parsley.runtime.service,
+ org.eclipse.emf.parsley.runtime.ui,
+ org.eclipse.emf.parsley.runtime.util
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/build.properties b/plugins/org.eclipse.emf.parsley.runtime.common/build.properties
new file mode 100644
index 000000000..34d2e4d2d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/AbstractGenericModule.java b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/AbstractGenericModule.java
new file mode 100644
index 000000000..d3ac7901a
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/AbstractGenericModule.java
@@ -0,0 +1,88 @@
+package org.eclipse.emf.parsley.runtime.service;
+
+/*******************************************************************************
+ * Copyright (c) 2008 itemis AG (http://www.itemis.eu) and others.
+ * 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
+ *******************************************************************************/
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.Method;
+import java.util.Properties;
+
+import org.apache.log4j.Logger;
+
+import com.google.inject.Binder;
+import com.google.inject.Module;
+import com.google.inject.name.Names;
+
+/**
+ * @author Heiko Behrens - Initial contribution and API
+ * @author Sven Efftinge
+ * @author Sebastian Zarnekow
+ */
+public abstract class AbstractGenericModule implements Module {
+
+ private static Logger LOGGER = Logger.getLogger(AbstractGenericModule.class);
+
+ public void configure(Binder binder) {
+ Module compound = getBindings();
+ compound.configure(binder);
+ }
+
+ public final CompoundModule getBindings() {
+ Method[] methods = this.getClass().getMethods();
+ CompoundModule result = new CompoundModule();
+ for (Method method : methods) {
+ try {
+ if (method.getName().startsWith("bind")) {
+ result.add(new BindModule(method, this));
+ } else if (method.getName().startsWith("provide")) {
+ result.add(new ProviderModule(method, this));
+ } else if (method.getName().startsWith("configure")) {
+ if (!method.getName().equals("configure") && method.getParameterTypes().length == 1
+ && method.getParameterTypes()[0].equals(Binder.class)) {
+ result.add(new FreeModule(method, this));
+
+ }
+ }
+ } catch (Exception e) {
+ LOGGER.warn("Trying to use method " + method.toGenericString() + " for configuration failed", e);
+ }
+ }
+ return result;
+ }
+
+ protected void bindProperties(Binder binder, String propertyFilePath) {
+ try {
+ InputStream in = getClass().getClassLoader().getResourceAsStream(propertyFilePath);
+ if (in != null) {
+ Properties properties = new Properties();
+ properties.load(in);
+ Names.bindProperties(binder, properties);
+ } else {
+ throw new IllegalStateException("Couldn't find property file : " + propertyFilePath);
+ }
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ protected Properties tryBindProperties(Binder binder, String propertyFilePath) {
+ try {
+ InputStream in = getClass().getClassLoader().getResourceAsStream(propertyFilePath);
+ if (in != null) {
+ Properties properties = new Properties();
+ properties.load(in);
+ Names.bindProperties(binder, properties);
+ return properties;
+ } else
+ return null;
+ } catch (IOException e) {
+ return null;
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/BindModule.java b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/BindModule.java
new file mode 100644
index 000000000..f01903de2
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/BindModule.java
@@ -0,0 +1,18 @@
+/*******************************************************************************
+ * Copyright (c) 2009 itemis AG (http://www.itemis.eu) and others.
+ * 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
+ *******************************************************************************/
+package org.eclipse.emf.parsley.runtime.service;
+
+import java.lang.reflect.Method;
+
+public class BindModule extends MethodBasedModule {
+
+ public BindModule(Method method, Object owner) {
+ super(method, owner);
+ }
+
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/CompoundModule.java b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/CompoundModule.java
new file mode 100644
index 000000000..69591ed87
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/CompoundModule.java
@@ -0,0 +1,58 @@
+package org.eclipse.emf.parsley.runtime.service;
+
+/*******************************************************************************
+ * Copyright (c) 2009 itemis AG (http://www.itemis.eu) and others.
+ * 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
+ *******************************************************************************/
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+
+import com.google.common.collect.Lists;
+import com.google.inject.Binder;
+import com.google.inject.Module;
+
+/**
+ * @author Sebastian Zarnekow - Initial contribution and API
+ */
+public class CompoundModule implements Module {
+
+ private static Logger LOGGER = Logger.getLogger(CompoundModule.class);
+
+ private List<Module> modules;
+
+ public CompoundModule() {
+ modules = Lists.newArrayList();
+ }
+
+ public void configure(Binder binder) {
+ for (Module module : modules) {
+ try {
+ module.configure(binder);
+ } catch(Exception e) {
+ LOGGER.error(e.getMessage(), e);
+ }
+ }
+ }
+
+ public void add(Module module) {
+ modules.add(module);
+ }
+
+ public void remove(Module module) {
+ modules.remove(module);
+ }
+
+ public List<Module> getModules() {
+ return modules;
+ }
+
+ public int size() {
+ return modules.size();
+ }
+}
+
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/FreeModule.java b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/FreeModule.java
new file mode 100644
index 000000000..4aa9ef078
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/FreeModule.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2009 itemis AG (http://www.itemis.eu) and others.
+ * 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
+ *******************************************************************************/
+package org.eclipse.emf.parsley.runtime.service;
+
+import java.lang.reflect.Method;
+
+import com.google.inject.Binder;
+
+public class FreeModule extends MethodBasedModule {
+
+ public FreeModule(Method method, Object owner) {
+ super(method, owner);
+ }
+
+ @Override
+ public void configure(Binder binder) {
+ invokeMethod(binder);
+ }
+
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/MethodBasedModule.java b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/MethodBasedModule.java
new file mode 100644
index 000000000..f8a759b86
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/MethodBasedModule.java
@@ -0,0 +1,140 @@
+/*******************************************************************************
+ * Copyright (c) 2009 itemis AG (http://www.itemis.eu) and others.
+ * 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
+ *******************************************************************************/
+package org.eclipse.emf.parsley.runtime.service;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.lang.reflect.WildcardType;
+
+import org.apache.log4j.Logger;
+
+import com.google.inject.Binder;
+import com.google.inject.Key;
+import com.google.inject.Module;
+import com.google.inject.Scopes;
+import com.google.inject.binder.LinkedBindingBuilder;
+
+/**
+ * @author Sebastian Zarnekow - Initial contribution and API
+ * @author Sven Efftinge
+ */
+public abstract class MethodBasedModule implements Module {
+ private static Logger LOGGER = Logger.getLogger(BindModule.class);
+ private final Method method;
+ private final Object owner;
+
+ protected MethodBasedModule(Method method, Object owner) {
+ this.method = method;
+ this.owner = owner;
+ }
+
+ public Method getMethod() {
+ return method;
+ }
+
+ public Object getOwner() {
+ return owner;
+ }
+
+ @SuppressWarnings("unchecked")
+ public void configure(Binder binder) {
+ Type key = getKeyType();
+ if (isClassBinding()) {
+ Class<?> value = (Class<?>) invokeMethod();
+ if (LOGGER.isTraceEnabled())
+ LOGGER.trace("Adding binding from " + key + " to " + value.getName()
+ + ". Declaring Method was '" + getMethod().toGenericString() + "' in Module "
+ + this.getClass().getName());
+ if (value != null && !Void.class.equals(value)) {
+ LinkedBindingBuilder<Object> bind = binder.bind((Key<Object>)Key.get(key));
+ if (!key.equals(value)) {
+ bindToClass(bind, value);
+ }
+ if (isEager()) {
+ bind.asEagerSingleton();
+ } else if (isSingleton()) {
+ bind.in(Scopes.SINGLETON);
+ }
+ }
+ } else {
+ Object instance = invokeMethod();
+ if (LOGGER.isTraceEnabled())
+ LOGGER.trace(
+ "Adding binding from " + getMethod().getReturnType().getName() +
+ " to instance " + instance.toString()
+ + ". Declaring Method was '" + getMethod().toGenericString() + "' in Module "
+ + this.getClass().getName());
+ LinkedBindingBuilder<Object> bind = binder.bind((Key<Object>)Key.get(key));
+ bindToInstance(bind, instance);
+ }
+ }
+
+ protected void bindToClass(LinkedBindingBuilder<Object> bind, Class<?> value) {
+ bind.to(value);
+ }
+
+ protected void bindToInstance(LinkedBindingBuilder<Object> bind, Object instance) {
+ bind.toInstance(instance);
+ }
+
+ protected boolean isSame(Type typeA, Type typeB) {
+ return typeA.equals(typeB);
+ }
+
+ public Type getKeyType() {
+ Type genericReturnType = getMethod().getGenericReturnType();
+ if (isClassBinding()) {
+ Type type = genericReturnType;
+ if (!(type instanceof ParameterizedType)) {
+ throw throwIllegalReturnTypeDeclaration(getMethod());
+ }
+ return getFirstTypeParameter((ParameterizedType) type);
+ } else {
+ return genericReturnType;
+ }
+ }
+
+ protected Type getFirstTypeParameter(ParameterizedType type) {
+ Type firstParam = type.getActualTypeArguments()[0];
+ if (firstParam instanceof WildcardType) {
+ return ((WildcardType)firstParam).getUpperBounds()[0];
+ }
+ return firstParam;
+ }
+
+ protected IllegalStateException throwIllegalReturnTypeDeclaration(Method method) {
+ return new IllegalStateException("return type of "+method.getName()+" should be declared with wildcard and upperbound (i.e. Class<? extends IScopeProvider>)");
+ }
+
+ public boolean isClassBinding() {
+ return Class.class.equals(getMethod().getReturnType());
+ }
+
+ public boolean isEager() {
+ SingletonBinding binding = getMethod().getAnnotation(SingletonBinding.class);
+ if (binding != null) {
+ return binding.eager();
+ }
+ return false;
+ }
+
+ public boolean isSingleton() {
+ return getMethod().getAnnotation(SingletonBinding.class) != null;
+ }
+
+ public Object invokeMethod(Object... parameters) {
+ try {
+ getMethod().setAccessible(true);
+ return getMethod().invoke(owner, parameters);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/MinimalModule.java b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/MinimalModule.java
new file mode 100644
index 000000000..4151be107
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/MinimalModule.java
@@ -0,0 +1,30 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.runtime.service;
+
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+import com.google.inject.Binder;
+
+/**
+ * @author bettini
+ *
+ */
+public class MinimalModule extends AbstractGenericModule {
+
+ private final AbstractUIPlugin plugin;
+
+ public MinimalModule(AbstractUIPlugin plugin) {
+ this.plugin = plugin;
+ }
+
+ @Override
+ public void configure(Binder binder) {
+ super.configure(binder);
+ binder.bind(AbstractUIPlugin.class).toInstance(plugin);
+ binder.bind(IDialogSettings.class).toInstance(
+ plugin.getDialogSettings());
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/ProviderModule.java b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/ProviderModule.java
new file mode 100644
index 000000000..974e504fe
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/ProviderModule.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2009 itemis AG (http://www.itemis.eu) and others.
+ * 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
+ *******************************************************************************/
+package org.eclipse.emf.parsley.runtime.service;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+
+import com.google.inject.Provider;
+import com.google.inject.binder.LinkedBindingBuilder;
+import com.google.inject.internal.MoreTypes;
+
+public class ProviderModule extends MethodBasedModule {
+
+ public ProviderModule(Method method, Object owner) {
+ super(method, owner);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ protected void bindToInstance(LinkedBindingBuilder<Object> bind, Object instance) {
+ if (instance != null) // provider may not be null
+ bind.toProvider((Provider<? extends Object>) instance);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ protected void bindToClass(LinkedBindingBuilder<Object> bind, Class<?> value) {
+ bind.toProvider((Class<? extends Provider<?>>)value);
+ }
+
+ @Override
+ public Type getKeyType() {
+ Type keyType = super.getKeyType();
+ if (!(isInstanceOf(keyType, Provider.class)))
+ throw new IllegalStateException("The method "+getMethod().getName()+" is expected to return a Class<? extends Provider<Something>> or directly Provider<Something>.");
+ return getFirstTypeParameter((ParameterizedType) keyType);
+ }
+
+ protected boolean isInstanceOf(Type keyType, Class<?> class1) {
+ return class1.isAssignableFrom(MoreTypes.getRawType(keyType));
+ }
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/SingletonBinding.java b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/SingletonBinding.java
new file mode 100644
index 000000000..21bf73c83
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/service/SingletonBinding.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2008 itemis AG (http://www.itemis.eu) and others.
+ * 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
+ *******************************************************************************/
+package org.eclipse.emf.parsley.runtime.service;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ ElementType.METHOD})
+public @interface SingletonBinding {
+ boolean eager() default false;
+}
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/ui/AbstractGuiceAwareExecutableExtensionFactory.java b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/ui/AbstractGuiceAwareExecutableExtensionFactory.java
new file mode 100644
index 000000000..7e5cd3e41
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/ui/AbstractGuiceAwareExecutableExtensionFactory.java
@@ -0,0 +1,65 @@
+package org.eclipse.emf.parsley.runtime.ui;
+
+/*******************************************************************************
+ * Copyright (c) 2009 itemis AG (http://www.itemis.eu) and others.
+ * 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
+ *******************************************************************************/
+
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExecutableExtension;
+import org.eclipse.core.runtime.IExecutableExtensionFactory;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.osgi.framework.Bundle;
+
+import com.google.inject.Injector;
+
+/**
+ * @author Sven Efftinge - Initial contribution and API
+ */
+public abstract class AbstractGuiceAwareExecutableExtensionFactory implements IExecutableExtensionFactory, IExecutableExtension {
+ public static final String GUICEKEY = "guicekey";
+ protected Logger log = Logger.getLogger(getClass());
+ protected String clazzName;
+ protected IConfigurationElement config;
+
+ @SuppressWarnings({ "unchecked" })
+ public void setInitializationData(IConfigurationElement config, String propertyName, Object data)
+ throws CoreException {
+ if (data instanceof String) {
+ clazzName = (String) data;
+ } else if (data instanceof Map<?, ?>) {
+ clazzName = ((Map<String, String>)data).get(GUICEKEY);
+ }
+ if (clazzName == null) {
+ throw new IllegalArgumentException("couldn't handle passed data : "+data);
+ }
+ this.config = config;
+ }
+
+ public Object create() throws CoreException {
+ try {
+ final Class<?> clazz = getBundle().loadClass(clazzName);
+ final Injector injector = getInjector();
+ final Object result = injector.getInstance(clazz);
+ if (result instanceof IExecutableExtension)
+ ((IExecutableExtension) result).setInitializationData(config, null, null);
+ return result;
+ }
+ catch (Exception e) {
+ log.error(e);
+ throw new CoreException(new Status(IStatus.ERROR, getBundle().getSymbolicName(), e.getMessage() + " ExtensionFactory: "+ getClass().getName(), e));
+ }
+ }
+
+ protected abstract Bundle getBundle();
+ protected abstract Injector getInjector();
+}
+
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/ui/IImageHelper.java b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/ui/IImageHelper.java
new file mode 100644
index 000000000..78991a380
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/ui/IImageHelper.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2008 itemis AG (http://www.itemis.eu) and others.
+ * 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
+ *******************************************************************************/
+package org.eclipse.emf.parsley.runtime.ui;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+
+import com.google.inject.ImplementedBy;
+
+/**
+ * @author Sebastian Zarnekow
+ * @author Michael Clay
+ */
+@ImplementedBy(IImageHelper.NullImageHelper.class)
+public interface IImageHelper {
+
+ Image getImage(String name);
+
+ Image getImage(ImageDescriptor imageDescriptor);
+
+ class NullImageHelper implements IImageHelper {
+
+ public Image getImage(String name) {
+ return null;
+ }
+
+ public Image getImage(ImageDescriptor imageDescriptor) {
+ return null;
+ }
+
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/ui/MinimalExecutableExtensionFactory.java b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/ui/MinimalExecutableExtensionFactory.java
new file mode 100644
index 000000000..ec4570808
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/ui/MinimalExecutableExtensionFactory.java
@@ -0,0 +1,24 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.runtime.ui;
+
+import org.eclipse.emf.parsley.runtime.service.AbstractGenericModule;
+
+import com.google.inject.Injector;
+import static com.google.inject.Guice.createInjector;
+
+/**
+ * @author bettini
+ *
+ */
+public abstract class MinimalExecutableExtensionFactory extends
+ AbstractGuiceAwareExecutableExtensionFactory {
+
+ protected Injector getInjector() {
+ return createInjector(getModule());
+ }
+
+ protected abstract AbstractGenericModule getModule();
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/ui/PluginImageHelper.java b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/ui/PluginImageHelper.java
new file mode 100644
index 000000000..43d460902
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/ui/PluginImageHelper.java
@@ -0,0 +1,151 @@
+/*******************************************************************************
+ * Copyright (c) 2008 itemis AG (http://www.itemis.eu) and others.
+ * 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
+ *******************************************************************************/
+package org.eclipse.emf.parsley.runtime.ui;
+
+import java.net.URL;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.SynchronousBundleListener;
+
+import com.google.common.collect.Maps;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import com.google.inject.name.Named;
+
+/**
+ * @author Sebastian Zarnekow
+ */
+@Singleton
+public class PluginImageHelper implements IImageHelper, SynchronousBundleListener {
+ private Map<ImageDescriptor, Image> registry = Maps.newHashMapWithExpectedSize(10);
+
+ @Inject
+ private AbstractUIPlugin plugin;
+
+ @Inject(optional = true)
+ @Named("org.eclipse.xtext.ui.PluginImageHelper.pathSuffix")
+ private String pathSuffix = "icons/"; //$NON-NLS-1$
+
+ @Inject(optional = true)
+ @Named("org.eclipse.xtext.ui.PluginImageHelper.defaultImage")
+ private String defaultImage = "default.gif"; //$NON-NLS-1$
+
+ @Inject(optional = true)
+ @Named("org.eclipse.xtext.ui.PluginImageHelper.notFound")
+ private String notFound = "notFound.gif"; //$NON-NLS-1$
+
+ /**
+ * Returns the image associated with the given image descriptor.
+ *
+ * @param descriptor
+ * the image descriptor for which the helper manages an image, or <code>null</code> for a missing image
+ * descriptor
+ * @return the image associated with the image descriptor or <code>null</code> if the image descriptor can't create
+ * the requested image.
+ */
+ public Image getImage(ImageDescriptor descriptor) {
+ if (descriptor == null) {
+ descriptor = ImageDescriptor.getMissingImageDescriptor();
+ }
+
+ Image result = registry.get(descriptor);
+ if (result != null) {
+ return result;
+ }
+ result = descriptor.createImage();
+ if (result != null) {
+ registry.put(descriptor, result);
+ }
+ return result;
+ }
+
+ /**
+ * Disposes all images managed by this image helper.
+ */
+ public void dispose() {
+ for (Iterator<Image> iter = registry.values().iterator(); iter.hasNext();) {
+ Image image = iter.next();
+ image.dispose();
+ }
+ registry.clear();
+ }
+
+ @Inject
+ public void hookBundleListener(AbstractUIPlugin plugin) {
+ plugin.getBundle().getBundleContext().addBundleListener(this);
+ }
+
+ public Image getImage(String imageName) {
+ String imgname = imageName == null ? defaultImage : imageName;
+ if (imgname != null) {
+ Image result = null;
+ URL imgUrl = getPlugin().getBundle().getEntry(getPathSuffix() + imgname);
+ if (imgUrl != null) {
+ ImageDescriptor id = null;
+ result = getPlugin().getImageRegistry().get(imgUrl.toExternalForm());
+ if (result == null) {
+ id = ImageDescriptor.createFromURL(imgUrl);
+ if (id != null) {
+ result = id.createImage();
+ getPlugin().getImageRegistry().put(imgUrl.toExternalForm(), result);
+ }
+ }
+ return result;
+ }
+ if (!imgname.equals(notFound)) {
+ return getImage(notFound);
+ }
+ }
+ return null;
+ }
+
+ public void setPathSuffix(String pathSuffix) {
+ this.pathSuffix = pathSuffix;
+ }
+
+ public String getPathSuffix() {
+ return pathSuffix;
+ }
+
+ public void setPlugin(AbstractUIPlugin plugin) {
+ this.plugin = plugin;
+ }
+
+ public AbstractUIPlugin getPlugin() {
+ return plugin;
+ }
+
+ public void setNotFound(String notFound) {
+ this.notFound = notFound;
+ }
+
+ public String getNotFound() {
+ return notFound;
+ }
+
+ public String getDefaultImage() {
+ return defaultImage;
+ }
+
+ public void setDefaultImage(String defaultImage) {
+ this.defaultImage = defaultImage;
+ }
+
+ public void bundleChanged(BundleEvent event) {
+ if (event.getType() == BundleEvent.STOPPING
+ && event.getBundle().getBundleId() == getPlugin().getBundle().getBundleId()) {
+ dispose();
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/util/Exceptions.java b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/util/Exceptions.java
new file mode 100644
index 000000000..87d23f65b
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/util/Exceptions.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2010 itemis AG (http://www.itemis.eu) and others.
+ * 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
+ *******************************************************************************/
+package org.eclipse.emf.parsley.runtime.util;
+
+import org.eclipse.emf.common.util.WrappedException;
+
+/**
+ * @author Jan Koehnlein - Initial contribution and API
+ */
+public class Exceptions {
+
+ public static <T> T throwUncheckedException(Throwable e) {
+ if (e instanceof RuntimeException)
+ throw (RuntimeException) e;
+ if (e instanceof Error)
+ throw (Error) e;
+ if (e instanceof Exception)
+ throw new WrappedException((Exception) e);
+ throw new RuntimeException(e);
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/util/PolymorphicDispatcher.java b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/util/PolymorphicDispatcher.java
new file mode 100644
index 000000000..5954ae82c
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/util/PolymorphicDispatcher.java
@@ -0,0 +1,376 @@
+/*******************************************************************************
+ * Copyright (c) 2008 itemis AG (http://www.itemis.eu) and others.
+ * 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
+ *
+ *******************************************************************************/
+package org.eclipse.emf.parsley.runtime.util;
+
+import static org.eclipse.emf.parsley.runtime.util.ReflectionUtil.*;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+
+import com.google.common.base.Function;
+import com.google.common.base.Predicate;
+
+/**
+ * @author Sven Efftinge - Initial contribution and API
+ */
+public class PolymorphicDispatcher<RT> {
+
+ @SuppressWarnings("unused")
+ private static final Logger log = Logger.getLogger(PolymorphicDispatcher.class);
+ private final List<? extends Object> targets;
+ private final Predicate<Method> methodFilter;
+
+ private List<MethodDesc> declaredMethodsOrderedBySpecificParameterType;
+
+ public static class DefaultErrorHandler<RT> implements ErrorHandler<RT> {
+ public RT handle(Object[] params, Throwable e) {
+ return Exceptions.throwUncheckedException(e);
+ }
+ }
+
+ public static class NullErrorHandler<RT> implements ErrorHandler<RT> {
+
+ public static <RT> ErrorHandler<RT> get() {
+ return new NullErrorHandler<RT>();
+ }
+
+ public RT handle(Object[] params, Throwable throwable) {
+ // ignore
+ return null;
+ }
+ }
+
+ public static class WarningErrorHandler<RT> implements ErrorHandler<RT> {
+
+ private Logger logger;
+
+ public WarningErrorHandler(Logger logger) {
+ this.logger = logger;
+ }
+
+ public static <RT> ErrorHandler<RT> get(Logger logger) {
+ return new WarningErrorHandler<RT>(logger);
+ }
+
+ public RT handle(Object[] params, Throwable throwable) {
+ logger.warn("Error in polymorphic dispatcher : "+throwable.getMessage(), throwable);
+ return null;
+ }
+ }
+
+ public static class MethodNameFilter implements Predicate<Method> {
+
+ protected final int maxParams;
+
+ protected final String methodName;
+
+ protected final int minParams;
+
+ public MethodNameFilter(String methodName, int minParams, int maxParams) {
+ this.maxParams = maxParams;
+ this.methodName = methodName;
+ this.minParams = minParams;
+ }
+
+ public boolean apply(Method param) {
+ return param.getName().equals(methodName) && param.getParameterTypes().length >= minParams
+ && param.getParameterTypes().length <= maxParams;
+ }
+
+ @Override
+ public String toString() {
+ return "'" + methodName + "'";
+ }
+
+ public int getMaxParams() {
+ return maxParams;
+ }
+
+ public int getMinParams() {
+ return minParams;
+ }
+ }
+
+ public static class Predicates {
+
+ public static Predicate<Method> forName(String name) {
+ return new MethodNameFilter(name, 1, 1);
+ }
+
+ public static Predicate<Method> forName(String name, int params) {
+ return new MethodNameFilter(name, params, params);
+ }
+
+ }
+
+ public static interface ErrorHandler<P> {
+ P handle(Object[] params, Throwable throwable);
+ }
+
+ private final ErrorHandler<RT> handler;
+
+ public static <T> PolymorphicDispatcher<T> createForSingleTarget(final String methodName, final Object singleTarget) {
+ return new PolymorphicDispatcher<T>(methodName, Collections.singletonList(singleTarget));
+ }
+
+ public static <T> PolymorphicDispatcher<T> createForSingleTarget(final String methodName, int min, int max, final Object singleTarget) {
+ return new PolymorphicDispatcher<T>(methodName, min, max, Collections.singletonList(singleTarget));
+ }
+
+ public static <T> PolymorphicDispatcher<T> createForSingleTarget(Predicate<Method> methodFilter, Object singleTarget) {
+ return new PolymorphicDispatcher<T>(Collections.singletonList(singleTarget), methodFilter);
+ }
+
+ public static <T> PolymorphicDispatcher<T> createForVarTarget(final String methodName, final Object... targets) {
+ return new PolymorphicDispatcher<T>(methodName, Arrays.asList(targets));
+ }
+
+ public PolymorphicDispatcher(final String methodName, final List<? extends Object> targets) {
+ this(methodName, 1, 1, targets);
+ }
+
+ public PolymorphicDispatcher(final String methodName, final int minParams, final int maxParams, final List<? extends Object> targets) {
+ this(methodName, minParams, maxParams, targets, new DefaultErrorHandler<RT>());
+ }
+
+ public PolymorphicDispatcher(final String methodName, final int minParams, final int maxParams, final List<? extends Object> targets,
+ ErrorHandler<RT> handler) {
+ this(targets, new MethodNameFilter(methodName, minParams, maxParams), handler);
+ }
+
+ public PolymorphicDispatcher(final List<? extends Object> targets, Predicate<Method> methodFilter) {
+ this(targets, methodFilter, new DefaultErrorHandler<RT>());
+ }
+
+ public PolymorphicDispatcher(final List<? extends Object> targets, Predicate<Method> methodFilter, ErrorHandler<RT> handler) {
+ this.targets = targets;
+ this.methodFilter = methodFilter;
+ this.handler = handler;
+ declaredMethodsOrderedBySpecificParameterType = getDeclaredMethodsOrderedBySpecificParameterType();
+ }
+
+ protected class MethodDesc {
+ private final Object target;
+ private final Method method;
+
+ protected MethodDesc(Object target, Method method) {
+ super();
+ this.target = target;
+ this.method = method;
+ }
+
+ public Class<?> getDeclaringClass() {
+ return method.getDeclaringClass();
+ }
+
+ public Class<?>[] getParameterTypes() {
+ return method.getParameterTypes();
+ }
+
+ public Method getMethod() {
+ return method;
+ }
+
+ public Object getTarget() {
+ return target;
+ }
+
+ public boolean isInvokeable(final List<Class<?>> paramTypes) {
+ if (getParameterTypes().length != paramTypes.size())
+ return false;
+ for (int i = 0; i < paramTypes.size(); i++) {
+ Class<?> paramClass = paramTypes.get(i);
+ if (paramClass!=null && !Void.class.equals(paramClass) && !(getObjectType(getParameterTypes()[i]).isAssignableFrom(getObjectType(paramClass))))
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public String toString() {
+ return this.method.toString();
+ }
+ }
+
+ protected int compare(MethodDesc o1, MethodDesc o2) {
+ final List<Class<?>> paramTypes1 = Arrays.asList(o1.getParameterTypes());
+ final List<Class<?>> paramTypes2 = Arrays.asList(o2.getParameterTypes());
+
+ // sort by number of parameters
+ if (paramTypes1.size() > paramTypes2.size())
+ return 1;
+ if (paramTypes2.size() > paramTypes1.size())
+ return -1;
+
+ // sort by parameter types from left to right
+ for (int i = 0; i < paramTypes1.size(); i++) {
+ final Class<?> class1 = paramTypes1.get(i);
+ final Class<?> class2 = paramTypes2.get(i);
+
+ if (class1.equals(class2))
+ continue;
+ if (class1.isAssignableFrom(class2) || Void.class.equals(class2))
+ return -1;
+ if (class2.isAssignableFrom(class1) || Void.class.equals(class1))
+ return 1;
+ }
+
+ // sort by declaring class (more specific comes first).
+ if (!o1.getDeclaringClass().equals(o2.getDeclaringClass())) {
+ if (o1.getDeclaringClass().isAssignableFrom(o2.getDeclaringClass()))
+ return 1;
+ if (o2.getDeclaringClass().isAssignableFrom(o1.getDeclaringClass()))
+ return -1;
+ }
+
+ // sort by target
+ final int compareTo = ((Integer) targets.indexOf(o2.target)).compareTo(targets.indexOf(o1.target));
+ return compareTo;
+ }
+
+ private final SimpleCache<List<Class<?>>, List<MethodDesc>> cache =
+ new SimpleCache<List<Class<?>>, List<MethodDesc>>(
+ new Function<List<Class<?>>, List<MethodDesc>>() {
+ public List<MethodDesc> apply(List<Class<?>> paramTypes) {
+ List<MethodDesc> result = new ArrayList<MethodDesc>();
+ Iterator<MethodDesc> iterator = declaredMethodsOrderedBySpecificParameterType.iterator();
+ while (iterator.hasNext()) {
+ MethodDesc methodDesc = iterator.next();
+ if (methodDesc.isInvokeable(paramTypes)) {
+ if (result.isEmpty()) {
+ result.add(methodDesc);
+ } else {
+ int compare = compare(result.get(0), methodDesc);
+ if (compare < 0) {
+ result.clear();
+ result.add(methodDesc);
+ } else if (compare == 0) {
+ result.add(methodDesc);
+ }
+ }
+ }
+ }
+ return result;
+ }
+ }
+ );
+
+ @SuppressWarnings("unchecked")
+ public RT invoke(Object... params) {
+ if (methodFilter instanceof MethodNameFilter) {
+ MethodNameFilter filter = (MethodNameFilter) methodFilter;
+ if (params.length<filter.getMinParams() || params.length > filter.getMaxParams()) {
+ throw new IllegalArgumentException("Wrong number of arguments. Expected "+filter.getMinParams()+" to "+filter.getMaxParams()+".");
+ }
+ }
+ List<MethodDesc> result = cache.get(getTypes(params));
+ // check if ambiguous
+ if (result.size()>1)
+ return handleAmbigousMethods(result, params);
+
+ if (result.isEmpty())
+ return handleNoSuchMethod(params);
+
+ try {
+ MethodDesc current = result.get(0);
+ current.method.setAccessible(true);
+ return (RT) current.method.invoke(current.target, params);
+ } catch (InvocationTargetException e) {
+ if (e.getTargetException() instanceof Error)
+ throw (Error) e.getTargetException();
+ return handler.handle(params, e.getTargetException());
+ } catch (IllegalArgumentException e) {
+ return handler.handle(params, e);
+ } catch (IllegalAccessException e) {
+ return handler.handle(params, e);
+ }
+ }
+
+ protected RT handleNoSuchMethod(Object... params) {
+ return handler.handle(params, new NoSuchMethodException(methodFilter, params));
+ }
+
+ protected RT handleAmbigousMethods(List<MethodDesc> result, Object... params) {
+ throw new IllegalStateException("Ambiguous methods " + result + " for params " + Arrays.toString(params));
+ }
+
+ /**
+ * @param params
+ * @return
+ */
+ private List<Class<?>> getTypes(Object[] params) {
+ List<Class<?>> result = new ArrayList<Class<?>>(params.length);
+ for (int i = 0; i < params.length; i++) {
+ if (params[i]!=null) {
+ result.add(params[i].getClass());
+ } else {
+ result.add(getDefaultClass(i));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @return
+ */
+ protected Class<?> getDefaultClass(int paramIndex) {
+ return Void.class;
+ }
+
+ private List<MethodDesc> getDeclaredMethodsOrderedBySpecificParameterType() {
+ ArrayList<MethodDesc> cachedDescriptors = new ArrayList<MethodDesc>();
+ for (Object target : targets) {
+ Class<?> current = target.getClass();
+ while (current != Object.class) {
+ Method[] methods = current.getDeclaredMethods();
+ for (Method method : methods) {
+ if (methodFilter.apply(method)) {
+ cachedDescriptors.add(createMethodDesc(target, method));
+ }
+ }
+ current = current.getSuperclass();
+ }
+ }
+ Collections.sort(cachedDescriptors, new Comparator<MethodDesc>() {
+ public int compare(MethodDesc o1, MethodDesc o2) {
+ return PolymorphicDispatcher.this.compare(o1, o2);
+ }
+ });
+ return cachedDescriptors;
+ }
+
+ protected MethodDesc createMethodDesc(Object target, Method method) {
+ return new MethodDesc(target, method);
+ }
+
+ private static class NoSuchMethodException extends java.lang.NoSuchMethodException {
+
+ private static final long serialVersionUID = 1L;
+ private final Predicate<Method> methodFilter;
+ private final Object[] params;
+
+ public NoSuchMethodException(Predicate<Method> methodFilter, Object[] params) {
+ this.methodFilter = methodFilter;
+ this.params = params;
+ }
+
+ @Override
+ public String getMessage() {
+ return "Couldn't find method '" + methodFilter.toString() + "' for objects " + Arrays.toString(params);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/util/ReflectionUtil.java b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/util/ReflectionUtil.java
new file mode 100644
index 000000000..26f8ae8b2
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/util/ReflectionUtil.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2010 itemis AG (http://www.itemis.eu) and others.
+ * 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
+ *******************************************************************************/
+package org.eclipse.emf.parsley.runtime.util;
+
+/**
+ * @author Jan Koehnlein - Initial contribution and API
+ */
+public class ReflectionUtil {
+
+ public static Class<?> getObjectType(Class<?> clazzA) {
+ if (clazzA != null && clazzA.isPrimitive()) {
+ if (clazzA == Boolean.TYPE) {
+ return Boolean.class;
+ } else if (clazzA == Integer.TYPE) {
+ return Integer.class;
+ } else if (clazzA == Float.TYPE) {
+ return Float.class;
+ } else if (clazzA == Byte.TYPE) {
+ return Byte.class;
+ } else if (clazzA == Character.TYPE) {
+ return Character.class;
+ } else if (clazzA == Double.TYPE) {
+ return Double.class;
+ } else if (clazzA == Short.TYPE) {
+ return Short.class;
+ } else if (clazzA == Long.TYPE) {
+ return Long.class;
+ }
+ }
+ return clazzA;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/util/SimpleCache.java b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/util/SimpleCache.java
new file mode 100644
index 000000000..2b029eaf2
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime.common/src/org/eclipse/emf/parsley/runtime/util/SimpleCache.java
@@ -0,0 +1,136 @@
+/*******************************************************************************
+ * Copyright (c) 2008 itemis AG (http://www.itemis.eu) and others.
+ * 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
+ *******************************************************************************/
+package org.eclipse.emf.parsley.runtime.util;
+
+import java.util.Map;
+import java.util.WeakHashMap;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock;
+import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock;
+
+import com.google.common.base.Function;
+
+/**
+ * A primitive cache implementation. The SimpleCache allows to cache
+ * lazily computable values. Subsequent calls to the computation algorithm with equal
+ * parameters have to yield equal results.
+ * Attention: The algorithm may not depend on itself in a circular manner. E.g. the following will lead
+ * to a stack overflow:
+ * <pre>
+ * SimpleCache<K, V> cache = new SimpleCache<K, V>(new Function<K, V>() {
+ * public V apply(K k) {
+ * // DON'T DO THIS
+ * if (k == k1) {
+ * return cache.get(k2).method();
+ * } else if (k == k2) {
+ * return cache.get(k1).method();
+ * }
+ * return null;
+ * }
+ * });
+ * </pre>
+ * The cache uses weak references to the keys but the values are strongly referenced. This leads
+ * to the conclusion, that the computed values should not refer to the keys because no cache entry
+ * will be reclaimend automatically. In such cases, clients have to discard the values for a key explicitly.
+ *
+ * Please note that {@link Function#apply(Object)} may be invoked concurrently while the cache
+ * itself is threadsafe.
+ *
+ * @author Sebastian Zarnekow - Initial contribution and API
+ */
+public class SimpleCache<Key, Value> {
+
+ private final Map<Key, Value> content;
+ private final ReentrantReadWriteLock readWriteLock;
+ private final ReadLock readLock;
+ private final WriteLock writeLock;
+ private final Function<Key, Value> f;
+
+ public SimpleCache(Function<Key, Value> f) {
+ if (f == null) {
+ throw new IllegalArgumentException("function may not be null");
+ }
+ this.readWriteLock = new ReentrantReadWriteLock();
+ this.readLock = readWriteLock.readLock();
+ this.writeLock = readWriteLock.writeLock();
+ this.f = f;
+ this.content = new WeakHashMap<Key, Value>();
+ }
+
+ public Value get(Key k) {
+ Value result = null;
+ try {
+ readLock.lock();
+ result = content.get(k);
+ if (result != null || content.containsKey(k))
+ return result;
+ } finally {
+ readLock.unlock();
+ }
+ result = f.apply(k);
+ try {
+ writeLock.lock();
+ // f.apply(k) should produce equal results for equal keys
+ // it is save to put the new result without checking for a
+ // value that has been set meanwhile
+ content.put(k, result);
+ } finally {
+ writeLock.unlock();
+ }
+ return result;
+ }
+
+ public void clear() {
+ try {
+ writeLock.lock();
+ if (!content.isEmpty())
+ content.clear();
+ } finally {
+ writeLock.unlock();
+ }
+ }
+
+ public void discard(Key k) {
+ try {
+ writeLock.lock();
+ content.remove(k);
+ } finally {
+ writeLock.unlock();
+ }
+ }
+
+ // for testing purpose
+
+ public boolean hasCachedValue(Key key) {
+ try {
+ readLock.lock();
+ return content.containsKey(key);
+ } finally {
+ readLock.unlock();
+ }
+ }
+
+ public int getSize() {
+ try {
+ readLock.lock();
+ return content.size();
+ } finally {
+ readLock.unlock();
+ }
+ }
+
+ public boolean isEmpty() {
+ try {
+ readLock.lock();
+ return content.isEmpty();
+ } finally {
+ readLock.unlock();
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.runtime/.classpath b/plugins/org.eclipse.emf.parsley.runtime/.classpath
new file mode 100644
index 000000000..c83506765
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.parsley.runtime/.project b/plugins/org.eclipse.emf.parsley.runtime/.project
new file mode 100644
index 000000000..44ab87f6d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.runtime</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.parsley.runtime/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.parsley.runtime/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..ff215a9e5
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,95 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.emf.parsley.runtime/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.emf.parsley.runtime/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.emf.parsley.runtime/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.parsley.runtime/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..5e6235c86
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Emf Components Runtime Functionalities
+Bundle-SymbolicName: org.eclipse.emf.parsley.runtime
+Bundle-Version: 0.1.0.qualifier
+Bundle-Vendor: RCP-VISION
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: com.google.inject;bundle-version="3.0.0";visibility:=reexport,
+ javax.inject;bundle-version="1.0.0";visibility:=reexport,
+ com.google.guava;bundle-version="10.0.1";visibility:=reexport,
+ org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.emf.common;bundle-version="2.7.0",
+ org.eclipse.ui;bundle-version="3.5.0",
+ org.eclipse.emf.parsley.runtime.common;bundle-version="0.1.0";visibility:=reexport
+Import-Package: org.apache.log4j;version="1.2.13"
diff --git a/plugins/org.eclipse.emf.parsley.runtime/build.properties b/plugins/org.eclipse.emf.parsley.runtime/build.properties
new file mode 100644
index 000000000..7594fab8d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.runtime/build.properties
@@ -0,0 +1,2 @@
+bin.includes = META-INF/,\
+ .
diff --git a/plugins/org.eclipse.emf.parsley.views.common/.classpath b/plugins/org.eclipse.emf.parsley.views.common/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.parsley.views.common/.project b/plugins/org.eclipse.emf.parsley.views.common/.project
new file mode 100644
index 000000000..33cac4e9d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.views.common</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.parsley.views.common/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.parsley.views.common/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.emf.parsley.views.common/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.emf.parsley.views.common/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.emf.parsley.views.common/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.parsley.views.common/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..b6e1bba9e
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/META-INF/MANIFEST.MF
@@ -0,0 +1,53 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMF Components Views Common
+Bundle-SymbolicName: org.eclipse.emf.parsley.views.common
+Bundle-Version: 0.1.0.qualifier
+Bundle-Activator: org.eclipse.emf.parsley.views.EmfComponentsViewsActivator
+Bundle-Vendor: RCP Vision
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.emf.parsley.common;bundle-version="0.1.0";visibility:=reexport
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emf.parsley.views
+Import-Package: org.eclipse.emf.common.ui,
+ org.eclipse.emf.common.ui.action,
+ org.eclipse.emf.common.ui.dialogs,
+ org.eclipse.emf.common.ui.editor,
+ org.eclipse.emf.common.ui.viewer,
+ org.eclipse.emf.edit.ui,
+ org.eclipse.emf.edit.ui.action,
+ org.eclipse.emf.edit.ui.celleditor,
+ org.eclipse.emf.edit.ui.dnd,
+ org.eclipse.emf.edit.ui.provider,
+ org.eclipse.emf.edit.ui.util,
+ org.eclipse.emf.edit.ui.view,
+ org.eclipse.jface.action,
+ org.eclipse.jface.bindings,
+ org.eclipse.jface.bindings.keys,
+ org.eclipse.jface.databinding.swt,
+ org.eclipse.jface.databinding.viewers,
+ org.eclipse.jface.dialogs,
+ org.eclipse.jface.fieldassist,
+ org.eclipse.jface.operation,
+ org.eclipse.jface.resource,
+ org.eclipse.jface.viewers,
+ org.eclipse.jface.window,
+ org.eclipse.jface.wizard,
+ org.eclipse.swt,
+ org.eclipse.swt.custom,
+ org.eclipse.swt.dnd,
+ org.eclipse.swt.events,
+ org.eclipse.swt.graphics,
+ org.eclipse.swt.layout,
+ org.eclipse.swt.widgets,
+ org.eclipse.ui;ui.workbench=split,
+ org.eclipse.ui.actions;ui.workbench=split,
+ org.eclipse.ui.application,
+ org.eclipse.ui.forms,
+ org.eclipse.ui.forms.widgets,
+ org.eclipse.ui.part;ui.workbench=split,
+ org.eclipse.ui.plugin,
+ org.eclipse.ui.views,
+ org.eclipse.ui.views.contentoutline,
+ org.eclipse.ui.views.properties;ui.views=split
diff --git a/plugins/org.eclipse.emf.parsley.views.common/build.properties b/plugins/org.eclipse.emf.parsley.views.common/build.properties
new file mode 100644
index 000000000..34d2e4d2d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractOnSelectionTableFormView.java b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractOnSelectionTableFormView.java
new file mode 100644
index 000000000..fb36e364d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractOnSelectionTableFormView.java
@@ -0,0 +1,91 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.views;
+
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.factories.TableFormFactory;
+import org.eclipse.emf.parsley.factories.ViewerFactory;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+import org.eclipse.emf.parsley.widgets.TableFormComposite;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.ui.IWorkbenchPart;
+
+import com.google.inject.Inject;
+
+/**
+ * A View that visualizes the list of elements of an EObject (it also acts as a
+ * selection provider), filtered by the specified type.
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public abstract class AbstractOnSelectionTableFormView extends
+ AbstractOnSelectionView {
+
+ @Inject
+ protected ViewerFactory viewerFactory;
+
+ @Inject
+ protected FeaturesProvider featuresProvider;
+
+ @Inject
+ protected TableFormFactory tableFormFactory;
+
+ protected TableFormComposite tableFormDetailComposite;
+
+ @Override
+ public void createPartControl(Composite parent) {
+ super.createPartControl(parent);
+
+ tableFormDetailComposite = tableFormFactory.createTableFormMasterDetailComposite(parent,
+ SWT.BORDER, getEClass());
+ }
+
+ @Override
+ protected void updateOnSelection(IWorkbenchPart sourcepart,
+ ISelection selection) {
+
+ EObject eObject = getFirstSelectedEObject(selection);
+ tableFormDetailComposite.update(null);
+ if (eObject != null) {
+ update(eObject);
+ }
+ }
+
+ protected void update(EObject eObject) {
+ EStructuralFeature feature = getEStructuralFeature();
+ List<EStructuralFeature> allowedFeatures= featuresProvider.getFeatures(eObject);
+ if (!allowedFeatures.contains(feature))
+ return;
+
+ Object value = eObject.eGet(feature);
+ tableFormDetailComposite.update(value);
+ }
+
+
+ public void setFocus() {
+ tableFormDetailComposite.getViewer().getControl().setFocus();
+ }
+
+ /**
+ * @return the {@link EStructuralFeature} to retrieve the values of the
+ * selected {@link EObject} to show on the table
+ */
+ protected abstract EStructuralFeature getEStructuralFeature();
+
+ /**
+ * @return the {@link EClass} to build the table columns
+ */
+ protected abstract EClass getEClass();
+}
diff --git a/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractOnSelectionTableView.java b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractOnSelectionTableView.java
new file mode 100644
index 000000000..96a6da568
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractOnSelectionTableView.java
@@ -0,0 +1,106 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.views;
+
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.factories.ViewerFactory;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.ui.IWorkbenchPart;
+
+import com.google.inject.Inject;
+
+/**
+ * A View that visualizes the list of elements of an EObject (it also acts as a
+ * selection provider), filtered by the specified type.
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public abstract class AbstractOnSelectionTableView extends
+ AbstractOnSelectionView {
+
+ @Inject
+ protected ViewerFactory viewerFactory;
+
+ @Inject
+ protected FeaturesProvider featuresProvider;
+
+ protected Composite parent;
+
+ protected TableViewer tableViewer;
+
+ public AbstractOnSelectionTableView() {
+ }
+
+ @Override
+ public void createPartControl(Composite parent) {
+ super.createPartControl(parent);
+
+ this.parent = parent;
+ createTableViewer();
+ getSite().setSelectionProvider(tableViewer);
+ parent.layout(true, true);
+ }
+
+ @Override
+ protected void updateOnSelection(IWorkbenchPart sourcepart,
+ ISelection selection) {
+ if (tableViewer == null)
+ return;
+ EObject eObject = getFirstSelectedEObject(selection);
+ tableViewer.setInput(null);
+ if (eObject != null) {
+ update(eObject);
+ }
+ }
+
+ protected void update(EObject eObject) {
+ EStructuralFeature feature = getEStructuralFeature();
+
+ if (!eObject.eClass().getEAllStructuralFeatures().contains(feature))
+ return;
+
+ Object value = eObject.eGet(feature);
+ tableViewer.setInput(value);
+ }
+
+ protected void createTableViewer() {
+ ScrolledComposite scrolledComposite = new ScrolledComposite(parent,
+ SWT.V_SCROLL | SWT.BORDER);
+ scrolledComposite.setExpandHorizontal(true);
+ scrolledComposite.setExpandVertical(true);
+
+ tableViewer = viewerFactory.createTableViewer(scrolledComposite,
+ SWT.BORDER | SWT.FULL_SELECTION, null, getEClass());
+
+ Table table = tableViewer.getTable();
+ scrolledComposite.setContent(table);
+ scrolledComposite.setMinSize(table
+ .computeSize(SWT.DEFAULT, SWT.DEFAULT));
+ }
+
+ public void setFocus() {
+ tableViewer.getTable().setFocus();
+ }
+
+ /**
+ * @return the {@link EStructuralFeature} to retrieve the values of the
+ * selected {@link EObject} to show on the table
+ */
+ protected abstract EStructuralFeature getEStructuralFeature();
+
+ /**
+ * @return the {@link EClass} to build the table columns
+ */
+ protected abstract EClass getEClass();
+}
diff --git a/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractOnSelectionView.java b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractOnSelectionView.java
new file mode 100644
index 000000000..ccc839cea
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractOnSelectionView.java
@@ -0,0 +1,64 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.views;
+
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.parsley.util.EmfSelectionHelper;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.ISelectionListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.part.ViewPart;
+
+import com.google.inject.Inject;
+
+/**
+ * An abstract View that reacts on selection (it should show something related
+ * to an emf resource or object).
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public abstract class AbstractOnSelectionView extends ViewPart {
+
+ @Inject
+ protected EmfSelectionHelper selectionHelper;
+
+ // the listener we register with the selection service
+ private ISelectionListener listener = new ISelectionListener() {
+ public void selectionChanged(IWorkbenchPart sourcepart,
+ ISelection selection) {
+ // we ignore our own selections
+ if (sourcepart != AbstractOnSelectionView.this) {
+ updateOnSelection(sourcepart, selection);
+ }
+ }
+ };
+
+ protected abstract void updateOnSelection(IWorkbenchPart sourcepart,
+ ISelection selection);
+
+ @Override
+ public void createPartControl(Composite parent) {
+ getSite().getWorkbenchWindow().getSelectionService()
+ .addSelectionListener(listener);
+ }
+
+ protected Object getFirstSelectedElement(ISelection selection) {
+ return selectionHelper.getFirstSelectedElement(selection);
+ }
+
+ protected EObject getFirstSelectedEObject(ISelection selection) {
+ return selectionHelper.getFirstSelectedEObject(selection);
+ }
+
+ public void dispose() {
+ // important: We need do unregister our listener when the view is
+ // disposed
+ getSite().getWorkbenchWindow().getSelectionService()
+ .removeSelectionListener(listener);
+ super.dispose();
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableTableFormView.java b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableTableFormView.java
new file mode 100644
index 000000000..6d055e7b7
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableTableFormView.java
@@ -0,0 +1,58 @@
+package org.eclipse.emf.parsley.views;
+
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.parsley.factories.TableFormFactory;
+import org.eclipse.emf.parsley.factories.TreeFormFactory;
+import org.eclipse.emf.parsley.widgets.TableFormComposite;
+import org.eclipse.emf.parsley.widgets.TreeFormComposite;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+
+import com.google.inject.Inject;
+
+public abstract class AbstractSaveableTableFormView extends AbstractSaveableView
+ {
+
+ @Inject
+ protected TableFormFactory tableFormFactory;
+
+ protected TableFormComposite tableFormComposite;
+
+ protected Object getContents(Resource resource) {
+ return resource;
+ }
+
+ @Override
+ public void createPartControl(Composite parent) {
+ super.createPartControl(parent);
+
+ tableFormComposite = tableFormFactory
+ .createTableFormMasterDetailComposite(parent, SWT.BORDER,getEClass());
+
+ tableFormComposite.update(getContents(getResource()));
+
+ addContextMenu(tableFormComposite.getViewer());
+ }
+
+ @Override
+ public void setFocus() {
+ tableFormComposite.setFocus();
+ }
+
+ public StructuredViewer getViewer() {
+ return tableFormComposite.getViewer();
+ }
+
+ protected abstract EClass getEClass();
+
+ @Override
+ protected void mostRecentCommandAffectsResource(Command mostRecentCommand) {
+ super.mostRecentCommandAffectsResource(mostRecentCommand);
+ // for TableViewer the refresh does not seem to be automatic
+ tableFormComposite.getViewer().refresh();
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableTableView.java b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableTableView.java
new file mode 100644
index 000000000..27c11377f
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableTableView.java
@@ -0,0 +1,65 @@
+package org.eclipse.emf.parsley.views;
+
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.parsley.builders.TableViewerBuilder;
+import org.eclipse.emf.parsley.resource.ResourceLoader;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+
+import com.google.inject.Inject;
+
+public abstract class AbstractSaveableTableView extends AbstractSaveableView {
+
+ @Inject
+ protected TableViewerBuilder tableViewerBuilder;
+
+ @Inject
+ protected ResourceLoader resourceLoader;
+
+ protected TableViewer tableViewer;
+
+ @Override
+ public void createPartControl(Composite parent) {
+ super.createPartControl(parent);
+
+ tableViewer = new TableViewer(parent, SWT.BORDER | SWT.FULL_SELECTION);
+
+ tableViewerBuilder.buildAndFill(tableViewer,
+ getContents(getResource()), getEClass());
+
+ addContextMenu(tableViewer);
+
+ getSite().setSelectionProvider(tableViewer);
+ }
+
+ /**
+ * @param resource
+ * @return the contents from the passed resource to be shown in the table
+ */
+ protected abstract Object getContents(Resource resource);
+
+ /**
+ * @return the {@link EClass} for objects to be shown in the table
+ */
+ protected abstract EClass getEClass();
+
+ @Override
+ public void setFocus() {
+ tableViewer.getTable().setFocus();
+ }
+
+ public TableViewer getViewer() {
+ return tableViewer;
+ }
+
+ @Override
+ protected void mostRecentCommandAffectsResource(Command mostRecentCommand) {
+ super.mostRecentCommandAffectsResource(mostRecentCommand);
+ // for TableViewer the refresh does not seem to be automatic
+ tableViewer.refresh();
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableTreeFormView.java b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableTreeFormView.java
new file mode 100644
index 000000000..500fce170
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableTreeFormView.java
@@ -0,0 +1,46 @@
+package org.eclipse.emf.parsley.views;
+
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.parsley.factories.TreeFormFactory;
+import org.eclipse.emf.parsley.widgets.TreeFormComposite;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+
+import com.google.inject.Inject;
+
+public abstract class AbstractSaveableTreeFormView extends AbstractSaveableView
+ {
+
+ @Inject
+ protected TreeFormFactory treeFormFactory;
+
+ protected TreeFormComposite treeFormComposite;
+
+ protected Object getContents(Resource resource) {
+ return resource;
+ }
+
+ @Override
+ public void createPartControl(Composite parent) {
+ super.createPartControl(parent);
+
+ treeFormComposite = treeFormFactory
+ .createTreeFormMasterDetailComposite(parent, SWT.BORDER);
+
+ treeFormComposite.update(getContents(getResource()));
+
+ addContextMenu(treeFormComposite.getViewer());
+ }
+
+ @Override
+ public void setFocus() {
+ treeFormComposite.setFocus();
+ }
+
+ public StructuredViewer getViewer() {
+ return treeFormComposite.getViewer();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableTreeView.java b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableTreeView.java
new file mode 100644
index 000000000..35263cc06
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableTreeView.java
@@ -0,0 +1,44 @@
+package org.eclipse.emf.parsley.views;
+
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.parsley.viewers.ViewerInitializer;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.Composite;
+
+import com.google.inject.Inject;
+
+public abstract class AbstractSaveableTreeView extends AbstractSaveableView {
+
+ @Inject
+ protected ViewerInitializer viewerInitializer;
+
+ protected TreeViewer treeViewer;
+
+ protected Object getContents(Resource resource) {
+ return resource;
+ }
+
+ @Override
+ public void createPartControl(Composite parent) {
+ super.createPartControl(parent);
+
+ treeViewer = new TreeViewer(parent);
+ viewerInitializer.initialize(treeViewer, getResource());
+
+ addContextMenu(treeViewer);
+
+ getSite().setSelectionProvider(treeViewer);
+ }
+
+ @Override
+ public void setFocus() {
+ treeViewer.getTree().setFocus();
+ }
+
+ public StructuredViewer getViewer() {
+ return treeViewer;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableView.java b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableView.java
new file mode 100644
index 000000000..eb415821b
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/AbstractSaveableView.java
@@ -0,0 +1,204 @@
+package org.eclipse.emf.parsley.views;
+
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.EventObject;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.edit.command.CreateChildCommand;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.parsley.edit.ResourceSaveManager;
+import org.eclipse.emf.parsley.edit.actionbar.WorkbenchActionBarContributor;
+import org.eclipse.emf.parsley.resource.ResourceLoader;
+import org.eclipse.emf.parsley.util.EmfCommandsUtil;
+import org.eclipse.emf.parsley.viewers.ViewerInitializer;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.ISaveablePart;
+import org.eclipse.ui.part.ViewPart;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public abstract class AbstractSaveableView extends ViewPart implements
+ ISaveablePart, IEditingDomainProvider, IMenuListener, IViewerProvider {
+ @Inject
+ protected Provider<AdapterFactoryEditingDomain> editingDomainProvider;
+
+ @Inject
+ protected ResourceLoader resourceLoader;
+
+ @Inject
+ protected ResourceSaveManager resourceSaveManager;
+
+ @Inject
+// private TreeActionBarContributor actionBarContributor;
+ private WorkbenchActionBarContributor actionBarContributor;
+
+ @Inject
+ private ViewerInitializer viewerInitializer;
+
+ private Resource resource;
+
+ private boolean dirty;
+
+ protected AdapterFactoryEditingDomain editingDomain;
+
+ @Override
+ public void createPartControl(Composite parent) {
+ initializeEditingDomain();
+
+ URI uri = createResourceURI();
+ loadResource(uri);
+ }
+
+ protected abstract URI createResourceURI();
+
+ protected void loadResource(URI uri) {
+ resource = resourceLoader.getResource(editingDomain, uri).getResource();
+ }
+
+ protected void initializeEditingDomain() {
+ editingDomain = editingDomainProvider.get();
+ editingDomain.getCommandStack().addCommandStackListener(
+ new CommandStackListener() {
+ public void commandStackChanged(final EventObject event) {
+ getSite().getWorkbenchWindow().getShell().getDisplay()
+ .asyncExec(new Runnable() {
+ public void run() {
+ // Try to select the affected objects.
+ Command mostRecentCommand = EmfCommandsUtil
+ .mostRecentCommand(event);
+
+ if (EmfCommandsUtil.affectsResource(
+ mostRecentCommand,
+ getResource())) {
+ mostRecentCommandAffectsResource(mostRecentCommand);
+ }
+
+ postCommandStackChanged(mostRecentCommand);
+ }
+
+ });
+ }
+ });
+ }
+
+ /**
+ * This is called after mostRecentCommandAffectsResource, so that you can
+ * perform additional custom actions.
+ *
+ * The default implementation is to select in the viewer the possible new
+ * added child; this will also make context menu work seamlessly (if the
+ * selection stays in the parent element, then it will not obviously change
+ * and the context menu actions will not be recreated and they will be
+ * stale).
+ *
+ * @param mostRecentCommand
+ */
+ protected void postCommandStackChanged(Command mostRecentCommand) {
+ if (mostRecentCommand != null
+ && mostRecentCommand instanceof CreateChildCommand) {
+ setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+ }
+ }
+
+ protected void setSelectionToViewer(Collection<?> collection) {
+ final Collection<?> theSelection = collection;
+ if (theSelection != null && !theSelection.isEmpty()) {
+ Runnable runnable = new Runnable() {
+ public void run() {
+ // Try to select the items in the current viewer.
+ if (getViewer() != null) {
+ getViewer()
+ .setSelection(
+ new StructuredSelection(
+ theSelection.toArray()), true);
+ }
+ }
+ };
+ getSite().getShell().getDisplay().asyncExec(runnable);
+ }
+ }
+
+ /**
+ * It is called when the {@link CommandStack} changed and the change
+ * concerns something which is in this {@link Resource}.
+ *
+ * @param mostRecentCommand
+ */
+ protected void mostRecentCommandAffectsResource(Command mostRecentCommand) {
+ setDirtyAndFirePropertyChange(true);
+ }
+
+ protected void setDirtyAndFirePropertyChange(boolean dirtyState) {
+ setDirty(dirtyState);
+ firePropertyChange(PROP_DIRTY);
+ }
+
+ protected void addContextMenu(StructuredViewer viewer) {
+// viewerInitializer.addContextMenu(viewer, actionBarContributor,
+// editingDomain, this);
+ viewerInitializer.addContextMenu(viewer, actionBarContributor,
+ editingDomain, this, this);
+ }
+
+ protected Resource getResource() {
+ return resource;
+ }
+
+ public EditingDomain getEditingDomain() {
+ return editingDomain;
+ }
+
+ public void menuAboutToShow(IMenuManager menuManager) {
+ actionBarContributor.menuAboutToShow(menuManager);
+ }
+
+ public void doSave(IProgressMonitor monitor) {
+ try {
+ saveResourceAndUpdateDirtyState();
+ } catch (IOException e) {
+ // TODO Serious log!
+ e.printStackTrace();
+ }
+ }
+
+ protected void saveResourceAndUpdateDirtyState() throws IOException {
+ if (resourceSaveManager.save(resource)) {
+ setDirtyAndFirePropertyChange(false);
+ }
+ }
+
+ public boolean isDirty() {
+ return dirty;
+ }
+
+ public void setDirty(boolean dirty) {
+ this.dirty = dirty;
+ }
+
+ public void doSaveAs() {
+ }
+
+ public boolean isSaveAsAllowed() {
+ return false;
+ }
+
+ public boolean isSaveOnCloseNeeded() {
+ return false;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/EmfComponentsViewsActivator.java b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/EmfComponentsViewsActivator.java
new file mode 100644
index 000000000..187decad3
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/EmfComponentsViewsActivator.java
@@ -0,0 +1,50 @@
+package org.eclipse.emf.parsley.views;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class EmfComponentsViewsActivator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.parsley.views"; //$NON-NLS-1$
+
+ // The shared instance
+ private static EmfComponentsViewsActivator plugin;
+
+ /**
+ * The constructor
+ */
+ public EmfComponentsViewsActivator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static EmfComponentsViewsActivator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionFormView.java b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionFormView.java
new file mode 100644
index 000000000..8c82b205d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionFormView.java
@@ -0,0 +1,73 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.views;
+
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.parsley.factories.FormFactory;
+import org.eclipse.emf.parsley.widgets.FormDetailComposite;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IWorkbenchPart;
+
+import com.google.inject.Inject;
+
+/**
+ * A View that visualizes the list of elements of an emf selected resource (it
+ * also acts as a selection provider).
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class OnSelectionFormView extends AbstractOnSelectionView {
+
+ @Inject
+ protected FormFactory formFactory;
+
+ protected Composite parent;
+
+ protected FormDetailComposite formComposite;
+
+ public OnSelectionFormView() {
+ }
+
+ @Override
+ public void createPartControl(Composite parent) {
+ super.createPartControl(parent);
+ this.parent = parent;
+ }
+
+ @Override
+ protected void updateOnSelection(IWorkbenchPart sourcepart,
+ ISelection selection) {
+
+ EObject eObject = getFirstSelectedEObject(selection);
+ if (eObject != null) {
+ resetFormComposite();
+
+ formComposite = formFactory.createFormDetailComposite(
+ parent, SWT.NONE);
+ formComposite.init(eObject);
+
+ parent.layout(true, true);
+ }
+ }
+
+ protected void resetFormComposite() {
+ if (formComposite != null) {
+ formComposite.dispose();
+ parent.layout(true, true);
+ }
+ }
+
+ @Override
+ public void setFocus() {
+ if (formComposite != null)
+ formComposite.setFocus();
+ else
+ parent.setFocus();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionListView.java b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionListView.java
new file mode 100644
index 000000000..045a46867
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionListView.java
@@ -0,0 +1,26 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.views;
+
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * A View that visualizes the list of elements of an emf selected resource (it also acts as
+ * a selection provider).
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class OnSelectionListView extends OnSelectionStructuredViewerAbstractView {
+
+ public OnSelectionListView() {
+ }
+
+ @Override
+ protected StructuredViewer createViewer(Composite parent) {
+ return new ListViewer(parent);
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionShowAllTableView.java b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionShowAllTableView.java
new file mode 100644
index 000000000..0b73566a5
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionShowAllTableView.java
@@ -0,0 +1,138 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.views;
+
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.factories.ViewerFactory;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.ui.IWorkbenchPart;
+
+import com.google.inject.Inject;
+
+/**
+ * A View that visualizes the list of elements of an emf selected resource (it
+ * also acts as a selection provider).
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class OnSelectionShowAllTableView extends AbstractOnSelectionView {
+
+ @Inject
+ protected ViewerFactory viewerFactory;
+
+ @Inject
+ protected FeaturesProvider featuresProvider;
+
+ protected Composite parent;
+
+ protected ScrolledComposite scrolledComposite;
+
+ public OnSelectionShowAllTableView() {
+ }
+
+ @Override
+ public void createPartControl(Composite parent) {
+ super.createPartControl(parent);
+
+ this.parent = parent;
+ resetView();
+ }
+
+ @Override
+ protected void updateOnSelection(IWorkbenchPart sourcepart,
+ ISelection selection) {
+ resetView();
+
+ EObject eObject = getFirstSelectedEObject(selection);
+ if (eObject != null) {
+ Composite composite = new Composite(scrolledComposite, SWT.BORDER);
+ scrolledComposite.setContent(composite);
+ composite.setLayout(new GridLayout(1, false));
+ composite.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+ buildTableForSelectedObject(eObject, composite);
+
+ composite.setSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+ parent.layout(true, true);
+ }
+ }
+
+ /**
+ * Builds many tables: the first one with the features of the passed eObject
+ * and, in turn, a table for each single multi feature of the eObject (each
+ * such table with the contents of the multi feature)
+ *
+ * @param eObject
+ * @param composite
+ */
+ protected void buildTableForSelectedObject(EObject eObject,
+ Composite composite) {
+ EClass eObjectEClass = eObject.eClass();
+ buildTable(eObject, eObjectEClass, composite, eObjectEClass.getName());
+ List<EStructuralFeature> features = featuresProvider
+ .getFeatures(eObjectEClass);
+ for (EStructuralFeature eStructuralFeature : features) {
+ if (eStructuralFeature.isMany()) {
+ EClassifier eType = eStructuralFeature.getEType();
+ if (eType instanceof EClass) {
+ EClass eClass = (EClass) eType;
+ buildTable(eObject.eGet(eStructuralFeature), eClass,
+ composite, eStructuralFeature.getName());
+ }
+ }
+ }
+ }
+
+ /**
+ * @param object
+ * the contents to show in the table
+ * @param eClass
+ * the EClass of the contents (that is, the EClass of the object
+ * if the contents is a single object, or the EClass of the
+ * objects in the list, if the contents is a list)
+ * @param composite
+ * @param label
+ */
+ protected void buildTable(Object object, EClass eClass,
+ Composite composite, String label) {
+ Label lblNewLabel = new Label(composite, SWT.NONE);
+ lblNewLabel.setText(label);
+
+ TableViewer tableViewer = viewerFactory.createTableViewer(composite,
+ SWT.BORDER | SWT.FULL_SELECTION, object, eClass);
+
+ Table table = tableViewer.getTable();
+ table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+ }
+
+ private void resetView() {
+ if (scrolledComposite != null)
+ scrolledComposite.dispose();
+
+ scrolledComposite = new ScrolledComposite(parent, SWT.V_SCROLL
+ | SWT.BORDER);
+ scrolledComposite.setExpandHorizontal(true);
+ }
+
+ public void setFocus() {
+ scrolledComposite.setFocus();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionStructuredViewerAbstractView.java b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionStructuredViewerAbstractView.java
new file mode 100644
index 000000000..40784811f
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionStructuredViewerAbstractView.java
@@ -0,0 +1,147 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.views;
+
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.parsley.viewers.ViewerInitializer;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.part.PageBook;
+
+import com.google.inject.Inject;
+
+/**
+ * An abstract View that visualizes the emf selected resource (it also acts as a
+ * selection provider).
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public abstract class OnSelectionStructuredViewerAbstractView extends AbstractOnSelectionView {
+
+ private PageBook pagebook;
+
+ private Label label;
+
+ private StructuredViewer viewer;
+
+ @Inject
+ protected ViewerInitializer viewerInitializer;
+
+ public OnSelectionStructuredViewerAbstractView() {
+ }
+
+ public StructuredViewer getViewer() {
+ return viewer;
+ }
+
+ /**
+ * Sets the viewer and makes the pagebook show it
+ *
+ * @param viewer
+ */
+ public void setViewer(StructuredViewer viewer) {
+ this.viewer = viewer;
+ pagebook.showPage(viewer.getControl());
+ }
+
+ protected void updateOnSelection(IWorkbenchPart sourcepart,
+ ISelection selection) {
+ Object element = getFirstSelectedElement(selection);
+// if (element instanceof IResource) {
+// IResource resource = (IResource) element;
+// performUpdateOnSelection(resource);
+// // viewer.expandAll();
+// showEmfViewer();
+// return;
+// } else
+ if (element instanceof Resource) {
+ Resource resource = (Resource) element;
+ performUpdateOnSelection(resource);
+ showEmfViewer();
+ return;
+ } else if (element instanceof EObject) {
+ EObject eObject = (EObject) element;
+ performUpdateOnSelection(eObject);
+ showEmfViewer();
+ return;
+ }
+
+ showText();
+ }
+
+ /**
+ * @param eObject
+ */
+ protected void performUpdateOnSelection(EObject eObject) {
+ viewerInitializer.initialize(viewer, eObject);
+ }
+
+ /**
+ * @param resource
+ */
+ protected void performUpdateOnSelection(Resource resource) {
+ viewerInitializer.initialize(viewer, resource);
+ }
+
+// /**
+// * @param resource
+// */
+// protected void performUpdateOnSelection(IResource resource) {
+// URI uri = URI.createPlatformResourceURI(resource.getFullPath()
+// .toString(), true);
+// viewerInitializer.initialize(viewer, uri);
+// }
+
+ @Override
+ public void createPartControl(Composite parent) {
+ super.createPartControl(parent);
+
+ // the PageBook allows simple switching between two viewers
+ pagebook = new PageBook(parent, SWT.NONE);
+
+ label = new Label(pagebook, SWT.H_SCROLL | SWT.V_SCROLL);
+ label
+ .setText(
+ "Select one XMI resource in the explorer or any EObject in a view");
+
+ viewer = createViewer(pagebook);
+
+ showText();
+
+ getSite().setSelectionProvider(viewer);
+ }
+
+ /**
+ * Subclasses should implement this.
+ *
+ * @param parent
+ * @return
+ */
+ protected abstract StructuredViewer createViewer(Composite parent);
+
+ protected void showText() {
+ pagebook.showPage(label);
+ }
+
+ protected void showEmfViewer() {
+ pagebook.showPage(viewer.getControl());
+ }
+
+ @Override
+ public void setFocus() {
+ pagebook.setFocus();
+ }
+
+ public void init(URI resourceURI) {
+ viewerInitializer.initialize(viewer, resourceURI);
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionTableFormView.java b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionTableFormView.java
new file mode 100644
index 000000000..0101a6e59
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionTableFormView.java
@@ -0,0 +1,142 @@
+package org.eclipse.emf.parsley.views;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.factories.TableFormFactory;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+import org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider;
+import org.eclipse.emf.parsley.widgets.TableFormComposite;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.IWorkbenchPart;
+
+import com.google.inject.Inject;
+
+public class OnSelectionTableFormView extends AbstractOnSelectionView {
+
+ @Inject
+ protected TableFormFactory tableFormFactory;
+
+ @Inject
+ protected ILabelProvider labelProvider;
+
+ @Inject
+ protected FeaturesProvider featuresProvider;
+
+ protected TableFormComposite tableFormDetailComposite;
+
+ private Label featureSelectionlabel;
+
+ private Composite featureSelectionContainer;
+
+ private EObject currentEObject;
+
+ private ComboViewer featuresViewer;
+
+ @Override
+ public void createPartControl(Composite parent) {
+ parent.setLayout(new GridLayout());
+ createFeatureSelectionPart(parent);
+ super.createPartControl(parent);
+ tableFormDetailComposite = tableFormFactory.createTableFormMasterDetailComposite(parent,
+ SWT.BORDER);
+ tableFormDetailComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
+ }
+
+ private void createFeatureSelectionPart(Composite parent) {
+ featureSelectionContainer=new Composite(parent, SWT.NONE);
+ featureSelectionContainer.setLayout(new GridLayout(2,false));
+ featureSelectionContainer.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ featureSelectionlabel=new Label(featureSelectionContainer,SWT.NONE);
+ featuresViewer=new ComboViewer(featureSelectionContainer);
+ featuresViewer.setLabelProvider(labelProvider);
+ featuresViewer.setContentProvider(new ArrayContentProvider());
+ featuresViewer.getControl().setLayoutData(new GridData(300,-1));
+ featuresViewer.addSelectionChangedListener(new ISelectionChangedListener() {
+
+ public void selectionChanged(SelectionChangedEvent event) {
+ if(!event.getSelection().isEmpty() && ((IStructuredSelection)event.getSelection()).getFirstElement()instanceof EStructuralFeature){
+ EStructuralFeature feature=(EStructuralFeature) ((IStructuredSelection)event.getSelection()).getFirstElement();
+ List elements= (List) currentEObject.eGet(feature);
+ if(elements.size()>0){
+ tableFormDetailComposite.update(elements);
+ }else{
+ tableFormDetailComposite.buildTable((EClass)feature.getEType());
+ }
+ }else{
+ tableFormDetailComposite.update(null);
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void updateOnSelection(IWorkbenchPart sourcepart,
+ ISelection selection) {
+ if(getFirstSelectedElement(selection)instanceof EObject){
+ currentEObject=(EObject) getFirstSelectedElement(selection);
+ List<EStructuralFeature> allowedFeatures = selectNotEmptyReferences(extractAllowedReferences(),currentEObject);
+ featuresViewer.setInput(allowedFeatures);
+ if(allowedFeatures.size()>1){
+ featureSelectionlabel.setText("Select a feature for object "+labelProvider.getText(currentEObject));
+ featureSelectionContainer.setVisible(true);
+ featureSelectionContainer.layout(true,true);
+ }else{
+ featureSelectionlabel.setText("");
+ featureSelectionContainer.setVisible(false);
+ featureSelectionContainer.layout(true,true);
+ }
+
+ }else{
+ currentEObject=null;
+ featureSelectionlabel.setText("");
+ featureSelectionContainer.setVisible(false);
+ featureSelectionContainer.layout(true,true);
+ }
+ }
+
+ private List<EStructuralFeature> selectNotEmptyReferences(List<EStructuralFeature> references,
+ EObject eobj) {
+ List<EStructuralFeature> notEmptyReferences=new ArrayList<EStructuralFeature>();
+ for (EStructuralFeature eStructuralFeature : references) {
+ if(((List) eobj.eGet(eStructuralFeature)).size()>0){
+ notEmptyReferences.add(eStructuralFeature);
+ }
+ }
+ return notEmptyReferences;
+ }
+
+ private List<EStructuralFeature> extractAllowedReferences() {
+ List<EStructuralFeature> allowedFeatures= featuresProvider.getFeatures(currentEObject);
+ List<EStructuralFeature> contaimnedReferences=new ArrayList<EStructuralFeature>();
+ for (EStructuralFeature eStructuralFeature : allowedFeatures) {
+ if(eStructuralFeature instanceof EReference && ((EReference)eStructuralFeature).isContainment()){
+ contaimnedReferences.add(eStructuralFeature);
+ }
+ }
+ return contaimnedReferences;
+ }
+
+
+ @Override
+ public void setFocus() {
+ tableFormDetailComposite.setFocus();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionTreeFormView.java b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionTreeFormView.java
new file mode 100644
index 000000000..fd92db3fa
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionTreeFormView.java
@@ -0,0 +1,39 @@
+package org.eclipse.emf.parsley.views;
+
+
+import org.eclipse.emf.parsley.factories.TreeFormFactory;
+import org.eclipse.emf.parsley.widgets.TreeFormComposite;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IWorkbenchPart;
+
+import com.google.inject.Inject;
+
+public class OnSelectionTreeFormView extends AbstractOnSelectionView {
+
+ @Inject
+ protected TreeFormFactory treeFormFactory;
+
+ protected TreeFormComposite treeFormDetailComposite;
+
+ @Override
+ public void createPartControl(Composite parent) {
+ super.createPartControl(parent);
+
+ treeFormDetailComposite = treeFormFactory.createTreeFormMasterDetailComposite(parent,
+ SWT.BORDER);
+ }
+
+ @Override
+ protected void updateOnSelection(IWorkbenchPart sourcepart,
+ ISelection selection) {
+ treeFormDetailComposite.update(getFirstSelectedElement(selection));
+ }
+
+ @Override
+ public void setFocus() {
+ treeFormDetailComposite.setFocus();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionTreeView.java b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionTreeView.java
new file mode 100644
index 000000000..61de0e981
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views.common/src/org/eclipse/emf/parsley/views/OnSelectionTreeView.java
@@ -0,0 +1,27 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.views;
+
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * A View that visualizes the tree of an emf selected resource (it also acts as
+ * a selection provider).
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class OnSelectionTreeView extends OnSelectionStructuredViewerAbstractView {
+
+ public OnSelectionTreeView() {
+ }
+
+ @Override
+ protected StructuredViewer createViewer(Composite parent) {
+ return new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.views/.classpath b/plugins/org.eclipse.emf.parsley.views/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.parsley.views/.project b/plugins/org.eclipse.emf.parsley.views/.project
new file mode 100644
index 000000000..0a52c2618
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.views</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.parsley.views/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.parsley.views/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.emf.parsley.views/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.emf.parsley.views/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.emf.parsley.views/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.parsley.views/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..3d79d86d2
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMF Components Views
+Bundle-SymbolicName: org.eclipse.emf.parsley.views
+Bundle-Version: 0.1.0.qualifier
+Bundle-Activator: org.eclipse.emf.parsley.views.EmfComponentsViewsActivator
+Bundle-Vendor: RCP Vision
+Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.emf.parsley;bundle-version="0.1.0";visibility:=reexport,
+ org.eclipse.ui;bundle-version="3.5.0",
+ org.eclipse.ui.views;bundle-version="3.5.0",
+ org.eclipse.emf.parsley.views.common;bundle-version="0.1.0";visibility:=reexport
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emf.parsley.views
diff --git a/plugins/org.eclipse.emf.parsley.views/build.properties b/plugins/org.eclipse.emf.parsley.views/build.properties
new file mode 100644
index 000000000..34d2e4d2d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/plugins/org.eclipse.emf.parsley.views/src/org/eclipse/emf/parsley/views/EmfComponentsViewsActivator.java b/plugins/org.eclipse.emf.parsley.views/src/org/eclipse/emf/parsley/views/EmfComponentsViewsActivator.java
new file mode 100644
index 000000000..effbed984
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.views/src/org/eclipse/emf/parsley/views/EmfComponentsViewsActivator.java
@@ -0,0 +1,52 @@
+package org.eclipse.emf.parsley.views;
+
+
+import org.eclipse.emf.parsley.views.EmfComponentsViewsActivator;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class EmfComponentsViewsActivator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.parsley.views"; //$NON-NLS-1$
+
+ // The shared instance
+ private static EmfComponentsViewsActivator plugin;
+
+ /**
+ * The constructor
+ */
+ public EmfComponentsViewsActivator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static EmfComponentsViewsActivator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.wizards/.classpath b/plugins/org.eclipse.emf.parsley.wizards/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.parsley.wizards/.project b/plugins/org.eclipse.emf.parsley.wizards/.project
new file mode 100644
index 000000000..22a12f8ec
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.wizards</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.parsley.wizards/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.parsley.wizards/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 000000000..6d19eee37
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Tue Jan 31 18:05:48 CET 2012
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/plugins/org.eclipse.emf.parsley.wizards/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.parsley.wizards/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.emf.parsley.wizards/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.emf.parsley.wizards/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.emf.parsley.wizards/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.parsley.wizards/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..9764cb2f8
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Emf Components Wizards
+Bundle-SymbolicName: org.eclipse.emf.parsley.wizards;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-Activator: org.eclipse.emf.parsley.wizards.Activator
+Bundle-Vendor: RCP-VISION
+Require-Bundle: org.eclipse.jdt.core;bundle-version="3.7.1",
+ org.eclipse.jdt.launching;bundle-version="3.6.1",
+ org.eclipse.jdt.ui;bundle-version="3.7.1",
+ org.eclipse.pde.ui;bundle-version="3.6.0",
+ org.eclipse.emf.parsley;bundle-version="0.1.0",
+ org.eclipse.ui.ide;bundle-version="3.7.0",
+ org.eclipse.core.runtime;bundle-version="3.5.0",
+ org.eclipse.core.resources;bundle-version="3.5.0",
+ org.eclipse.emf.parsley.generator.common;bundle-version="0.1.0"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emf.parsley.wizards
diff --git a/plugins/org.eclipse.emf.parsley.wizards/build.properties b/plugins/org.eclipse.emf.parsley.wizards/build.properties
new file mode 100644
index 000000000..f1b3cbf0b
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/build.properties
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/,\
+ templates_3.4/
+src.includes = icons/
diff --git a/plugins/org.eclipse.emf.parsley.wizards/icons/component.jpg b/plugins/org.eclipse.emf.parsley.wizards/icons/component.jpg
new file mode 100644
index 000000000..d0ebf00f0
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/icons/component.jpg
Binary files differ
diff --git a/plugins/org.eclipse.emf.parsley.wizards/icons/sample.gif b/plugins/org.eclipse.emf.parsley.wizards/icons/sample.gif
new file mode 100644
index 000000000..34fb3c9d8
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/icons/sample.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.parsley.wizards/plugin.xml b/plugins/org.eclipse.emf.parsley.wizards/plugin.xml
new file mode 100644
index 000000000..30d8a4341
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/plugin.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <category
+ id="org.eclipse.emf.parsley.wizards"
+ name="Emf Parsley">
+ </category>
+ </extension>
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <wizard
+ category="org.eclipse.emf.parsley.wizards"
+ class="org.eclipse.emf.parsley.wizards.NewEmfParsleyProjectWizard"
+ icon="icons/sample.gif"
+ id="org.eclipse.emf.parsley.wizards.NewEmfComponentsProject"
+ name="Emf Parsley Project"
+ project="true">
+ </wizard>
+ </extension>
+ <extension
+ point="org.eclipse.pde.ui.pluginContent">
+ <wizard
+ class="org.eclipse.emf.parsley.wizards.TablePluginContentWizard"
+ icon="icons/component.jpg"
+ id="org.eclipse.emf.parsley.masterdetail.tablewizard"
+ java="true"
+ name="Table Master Detail Wizard"
+ pureOSGi="false"
+ rcp="false"
+ requiresActivator="false"
+ ui-content="true">
+ </wizard>
+ </extension>
+ <extension
+ point="org.eclipse.pde.ui.templates">
+ <template
+ class="org.eclipse.emf.parsley.wizards.TableViewTemplateSection"
+ contributingId="org.eclipse.ui.views"
+ icon="icons/component.jpg"
+ id="org.eclipse.emf.parsley.masterdetail.tabletemplate"
+ name="Table Master Detail View"/>
+ </extension>
+</plugin>
diff --git a/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/Activator.java b/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/Activator.java
new file mode 100644
index 000000000..5fd6057a0
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/Activator.java
@@ -0,0 +1,50 @@
+package org.eclipse.emf.parsley.wizards;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.parsley.wizards"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/EmfParsleyChoiceTemplate.java b/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/EmfParsleyChoiceTemplate.java
new file mode 100644
index 000000000..1ef9a1c5e
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/EmfParsleyChoiceTemplate.java
@@ -0,0 +1,70 @@
+package org.eclipse.emf.parsley.wizards;
+
+import org.eclipse.jdt.ui.wizards.NewElementWizardPage;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
+
+@SuppressWarnings("restriction")
+public class EmfParsleyChoiceTemplate extends NewElementWizardPage {
+
+ public enum Choice { NONE, TREEFORM, TABLEFORM };
+
+ private Choice choice = Choice.NONE;
+
+ public EmfParsleyChoiceTemplate(String name) {
+ super(name);
+ }
+
+ public void createControl(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NULL);
+
+ initializeDialogUnits(parent);
+
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(composite,
+ IIDEHelpContextIds.NEW_PROJECT_WIZARD_PAGE);
+
+ composite.setLayout(new GridLayout());
+ composite.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+ Button choiceTree = new Button(composite, SWT.RADIO);
+ choiceTree.setText("Create a TreeFormView");
+ choiceTree.setSelection(false);
+ choiceTree.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ choice = Choice.TREEFORM;
+ }
+ });
+
+ Button choiceTable = new Button(composite, SWT.RADIO);
+ choiceTable.setText("Create a TableView");
+ choiceTable.setSelection(false);
+ choiceTable.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ choice = Choice.TABLEFORM;
+ }
+ });
+
+ // Show description on opening
+ setErrorMessage(null);
+ setMessage(null);
+ setControl(composite);
+ Dialog.applyDialogFont(composite);
+ }
+
+ public Choice getChoice() {
+ return choice;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/NewEmfParsleyProjectSupport.java b/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/NewEmfParsleyProjectSupport.java
new file mode 100644
index 000000000..cbf665d04
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/NewEmfParsleyProjectSupport.java
@@ -0,0 +1,348 @@
+package org.eclipse.emf.parsley.wizards;
+
+import org.eclipse.emf.parsley.generator.common.EmfParsleyProjectFilesGenerator;
+import org.eclipse.emf.parsley.generator.common.EmfParsleyViewFilesGenerator;
+
+import java.io.ByteArrayInputStream;
+import java.net.URI;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.emf.common.util.UniqueEList;
+import org.eclipse.emf.parsley.wizards.EmfParsleyChoiceTemplate.Choice;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.pde.core.project.IBundleProjectDescription;
+
+/**
+ * @author Lorenzo Bettini
+ */
+public class NewEmfParsleyProjectSupport {
+
+ static EmfParsleyProjectFilesGenerator filesGenerator = new EmfParsleyProjectFilesGenerator();
+
+ static EmfParsleyViewFilesGenerator viewGenerator = new EmfParsleyViewFilesGenerator();
+
+ /**
+ * We need to: - create the default Eclipse project - add the java and
+ * plugin natures - create the folder structure
+ *
+ * @param projectName
+ * @param location
+ * @param progressMonitor
+ * @param natureId
+ * @return
+ */
+ public static IProject createProject(String projectName, URI location,
+ Choice viewType, IProgressMonitor progressMonitor) {
+ Assert.isNotNull(projectName);
+ Assert.isTrue(projectName.trim().length() > 0);
+
+ progressMonitor.beginTask("Creating project " + projectName, 10);
+
+ String srcFolder = "src";
+ String metaInfPath = "META-INF";
+ String projectPackagePath = srcFolder + "/"
+ + projectName.replaceAll("\\.", "/");
+
+ IProject project = createBaseProject(projectName, location,
+ createSubProgressMonitor(progressMonitor));
+ try {
+ String[] paths = { srcFolder, projectPackagePath, metaInfPath };
+ addToProjectStructure(project, paths, progressMonitor);
+
+ createActivator(project, projectName, projectPackagePath,
+ progressMonitor);
+ createExecutableExtensionFactory(project, projectName,
+ projectPackagePath, progressMonitor);
+ createModule(project, projectName, projectPackagePath,
+ "EmfComponentsGuiceModule", progressMonitor);
+
+ createProjectFile(project, metaInfPath + "/MANIFEST.MF",
+ filesGenerator.generateManifest(projectName).toString(),
+ createSubProgressMonitor(progressMonitor));
+ createProjectFile(project, "/build.properties", filesGenerator
+ .generateBuildProperties(shouldGeneratePluginXml(viewType))
+ .toString(), createSubProgressMonitor(progressMonitor));
+
+ String simpleClassName = getSimpleNameProject(projectPackagePath);
+ String qualifiedNameView = null;
+ switch (viewType) {
+ case TREEFORM:
+ qualifiedNameView = simpleClassName + "TreeFormView";
+ createProjectFile(project, projectPackagePath + "/"
+ + qualifiedNameView.concat(".java"), viewGenerator
+ .generateTreeFormView(projectName, simpleClassName)
+ .toString(), createSubProgressMonitor(progressMonitor));
+ break;
+ case TABLEFORM:
+ qualifiedNameView = simpleClassName + "TableView";
+ createProjectFile(project, projectPackagePath + "/"
+ + qualifiedNameView.concat(".java"), viewGenerator
+ .generateTableView(projectName, simpleClassName)
+ .toString(), createSubProgressMonitor(progressMonitor));
+ break;
+ default:
+ // OK, no additional views to create
+ }
+
+ if (qualifiedNameView != null) {
+ createProjectFile(
+ project,
+ "/plugin.xml",
+ viewGenerator.generatePluginXml(
+ projectName
+ .concat(".").
+ concat(filesGenerator.extFactoryName(projectName).toString()),
+ projectName.concat(".").concat(
+ qualifiedNameView)).toString(),
+ createSubProgressMonitor(progressMonitor));
+ }
+
+ addNatures(project, createSubProgressMonitor(progressMonitor));
+ } catch (CoreException e) {
+ e.printStackTrace();
+ project = null;
+ }
+
+ progressMonitor.done();
+
+ return project;
+ }
+
+ public static void createActivator(IProject project, String projectName,
+ String projectPackagePath, IProgressMonitor progressMonitor)
+ throws CoreException {
+ createProjectFile(project, projectPackagePath + "/"
+ + filesGenerator.activatorName(projectName) + ".java",
+ filesGenerator.generateActivator(projectName).toString(),
+ createSubProgressMonitor(progressMonitor));
+ }
+
+ public static void createExecutableExtensionFactory(IProject project,
+ String projectName, String projectPackagePath,
+ IProgressMonitor progressMonitor) throws CoreException {
+ createProjectFile(project, projectPackagePath
+ + "/"
+ + filesGenerator.extFactoryName(projectName)
+ + ".java", filesGenerator
+ .generateExecutableExtensionFactory(projectName).toString(),
+ createSubProgressMonitor(progressMonitor));
+ }
+
+ public static void createModule(IProject project, String projectName,
+ String projectPackagePath, String superClass,
+ IProgressMonitor progressMonitor) throws CoreException {
+ createProjectFile(project, projectPackagePath
+ + "/"
+ + filesGenerator.moduleName(projectName)
+ + ".java", filesGenerator
+ .generateModule(projectName, superClass).toString(),
+ createSubProgressMonitor(progressMonitor));
+ }
+
+ private static boolean shouldGeneratePluginXml(Choice viewType) {
+ return viewType != Choice.NONE;
+ }
+
+ private static String getSimpleNameProject(String projectName) {
+ String simpleNameProject = null;
+ if (projectName.contains(".")) {
+ simpleNameProject = projectName.substring(projectName
+ .lastIndexOf(".") + 1);
+ } else {
+ simpleNameProject = projectName.substring(projectName
+ .lastIndexOf("/") + 1);
+ }
+ simpleNameProject = simpleNameProject.substring(0, 1).toUpperCase()
+ .concat(simpleNameProject.substring(1));
+ return simpleNameProject;
+ }
+
+ /**
+ * @param progressMonitor
+ * @return
+ */
+ public static IProgressMonitor createSubProgressMonitor(
+ IProgressMonitor progressMonitor) {
+ return new SubProgressMonitor(progressMonitor, 1);
+ }
+
+ /**
+ * Just do the basics: create a basic project.
+ *
+ * @param location
+ * @param projectName
+ * @param progressMonitor
+ */
+ private static IProject createBaseProject(String projectName, URI location,
+ IProgressMonitor progressMonitor) {
+ progressMonitor.subTask("Creating project resource");
+
+ // it is acceptable to use the ResourcesPlugin class
+ IProject newProject = ResourcesPlugin.getWorkspace().getRoot()
+ .getProject(projectName);
+
+ if (!newProject.exists()) {
+ URI projectLocation = location;
+ IProjectDescription desc = newProject.getWorkspace()
+ .newProjectDescription(newProject.getName());
+ if (location != null
+ && ResourcesPlugin.getWorkspace().getRoot()
+ .getLocationURI().equals(location)) {
+ projectLocation = null;
+ }
+
+ desc.setLocationURI(projectLocation);
+ try {
+ newProject.create(desc,
+ createSubProgressMonitor(progressMonitor));
+ if (!newProject.isOpen()) {
+ newProject.open(createSubProgressMonitor(progressMonitor));
+ }
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ }
+
+ progressMonitor.done();
+
+ return newProject;
+ }
+
+ /**
+ * Create a folder structure with a parent root, overlay, and a few child
+ * folders.
+ *
+ * @param newProject
+ * @param paths
+ * @param progressMonitor
+ * TODO
+ * @throws CoreException
+ */
+ public static void addToProjectStructure(IProject newProject,
+ String[] paths, IProgressMonitor monitor) throws CoreException {
+ IProgressMonitor progressMonitor = createSubProgressMonitor(monitor);
+ progressMonitor.subTask("Creating project folders");
+ for (String path : paths) {
+ IFolder etcFolders = newProject.getFolder(path);
+ createFolder(etcFolders);
+ }
+ progressMonitor.done();
+ }
+
+ private static void createFolder(IFolder folder) throws CoreException {
+ IContainer parent = folder.getParent();
+ if (parent instanceof IFolder) {
+ createFolder((IFolder) parent);
+ }
+ if (!folder.exists()) {
+ folder.create(false, true, null);
+ }
+ }
+
+ /**
+ * @param project
+ * @param fileName
+ * @param contents
+ * @param progressMonitor
+ * TODO
+ * @throws CoreException
+ */
+ public static void createProjectFile(IProject project, String fileName,
+ String contents, IProgressMonitor progressMonitor)
+ throws CoreException {
+ progressMonitor.subTask("Creating file " + fileName);
+ IFile iFile = project.getFile(fileName);
+ iFile.create(new ByteArrayInputStream(contents.getBytes()), true, null);
+ progressMonitor.done();
+ }
+
+ private static void addNatures(IProject project,
+ IProgressMonitor progressMonitor) throws CoreException {
+ progressMonitor.subTask("Adding natures");
+ List<IClasspathEntry> classpathEntries = new UniqueEList<IClasspathEntry>();
+
+ IJavaProject javaProject = JavaCore.create(project);
+ IProjectDescription projectDescription = project.getDescription();
+
+ projectDescription.setNatureIds(new String[] { JavaCore.NATURE_ID,
+ IBundleProjectDescription.PLUGIN_NATURE });
+
+ IProgressMonitor monitor = null;
+ project.setDescription(projectDescription, monitor);
+
+ IPath projectPath = project.getFullPath();
+ IPath javaSource = projectPath.append("src");
+
+ IClasspathEntry sourceClasspathEntry = JavaCore
+ .newSourceEntry(javaSource);
+ for (Iterator<IClasspathEntry> i = classpathEntries.iterator(); i
+ .hasNext();) {
+ IClasspathEntry classpathEntry = i.next();
+ if (classpathEntry.getPath().isPrefixOf(javaSource)) {
+ i.remove();
+ }
+ }
+ classpathEntries.add(0, sourceClasspathEntry);
+
+ classpathEntries.add(JavaRuntime.getDefaultJREContainerEntry());
+
+ classpathEntries.add(JavaCore.newContainerEntry(new Path(
+ "org.eclipse.pde.core.requiredPlugins")));
+
+ javaProject.setRawClasspath(classpathEntries
+ .toArray(new IClasspathEntry[classpathEntries.size()]),
+ createSubProgressMonitor(progressMonitor));
+
+ progressMonitor.done();
+
+ /*
+ * String[] prevNatures = description.getNatureIds(); String[]
+ * newNatures = new String[prevNatures.length + 1];
+ * System.arraycopy(prevNatures, 0, newNatures, 0, prevNatures.length);
+ * newNatures[prevNatures.length] = JavaCore.NATURE_ID;
+ * description.setNatureIds(newNatures);
+ *
+ * IProgressMonitor monitor = null; project.setDescription(description,
+ * monitor);
+ *
+ * IJavaProject javaProject = JavaCore.create(project);
+ * Set<IClasspathEntry> classPathEntries = new
+ * HashSet<IClasspathEntry>(); IClasspathEntry[] rawClasspath =
+ * javaProject.getRawClasspath();
+ * classPathEntries.addAll(Arrays.asList(rawClasspath));
+ *
+ * classPathEntries.add(JavaRuntime.getDefaultJREContainerEntry());
+ *
+ * /* IResource srcFolder; IPreferenceStore store=
+ * PreferenceConstants.getPreferenceStore(); String sourceFolderName=
+ * store.getString(PreferenceConstants.SRCBIN_SRCNAME); if
+ * (store.getBoolean(PreferenceConstants.SRCBIN_FOLDERS_IN_NEWPROJ) &&
+ * sourceFolderName.length() > 0) { srcFolder=
+ * javaProject.getProject().getFolder(sourceFolderName); } else {
+ * srcFolder= javaProject.getProject(); }
+ * classPathEntries.add(JavaCore.newSourceEntry
+ * (srcFolder.getLocation()));
+ *
+ * javaProject .setRawClasspath(classPathEntries .toArray(new
+ * IClasspathEntry[classPathEntries.size()]), monitor);
+ */
+
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/NewEmfParsleyProjectWizard.java b/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/NewEmfParsleyProjectWizard.java
new file mode 100644
index 000000000..7e9500170
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/NewEmfParsleyProjectWizard.java
@@ -0,0 +1,97 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.wizards;
+
+import java.lang.reflect.InvocationTargetException;
+import java.net.URI;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+public class NewEmfParsleyProjectWizard extends Wizard implements INewWizard {
+
+ protected static final String WIZARD_PAGE = "Emf Parsley Project Wizard";
+
+ protected static final String WIZARD_CHOICE_PAGE = "Emf Parsley Project Wizard Template";
+
+ protected static final String WIZARD_NAME = "New Emf Parsley Project";
+
+ private WizardNewProjectCreationPage _pageOne;
+
+ private EmfParsleyChoiceTemplate _pageTwo;
+
+ /**
+ *
+ */
+ public NewEmfParsleyProjectWizard() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench,
+ * org.eclipse.jface.viewers.IStructuredSelection)
+ */
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ setNeedsProgressMonitor(true);
+ setWindowTitle(WIZARD_NAME);
+ }
+
+ public void addPages() {
+ super.addPages();
+
+ _pageOne = new WizardNewProjectCreationPage(WIZARD_PAGE);
+ _pageOne.setTitle("Emf Component Project");
+ _pageOne.setDescription("Create a plugin project for Emf Parsley.");
+
+ _pageTwo = new EmfParsleyChoiceTemplate(WIZARD_CHOICE_PAGE);
+ _pageTwo.setTitle("View type choice");
+ _pageTwo.setDescription("Choose a View type.");
+
+ addPage(_pageOne);
+ addPage(_pageTwo);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.wizard.Wizard#performFinish()
+ */
+ @Override
+ public boolean performFinish() {
+ final String name = _pageOne.getProjectName();
+ URI _location = null;
+ if (!_pageOne.useDefaults()) {
+ _location = _pageOne.getLocationURI();
+ } // else location == null
+ final URI location = _location;
+
+ IRunnableWithProgress op = new IRunnableWithProgress() {
+ public void run(IProgressMonitor monitor)
+ throws InvocationTargetException {
+ NewEmfParsleyProjectSupport.createProject(name, location, _pageTwo.getChoice(),
+ monitor);
+ }
+ };
+
+ try {
+ getContainer().run(true, false, op);
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ return false;
+ }
+
+ return true;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/TablePluginContentWizard.java b/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/TablePluginContentWizard.java
new file mode 100644
index 000000000..b9e6262e7
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/TablePluginContentWizard.java
@@ -0,0 +1,23 @@
+package org.eclipse.emf.parsley.wizards;
+
+
+import org.eclipse.pde.ui.IFieldData;
+import org.eclipse.pde.ui.templates.ITemplateSection;
+import org.eclipse.pde.ui.templates.NewPluginTemplateWizard;
+
+public class TablePluginContentWizard extends NewPluginTemplateWizard {
+
+ protected IFieldData fData;
+
+ public void init(IFieldData data) {
+ super.init(data);
+ fData = data;
+ // not available in Indigo
+ // setWindowTitle("Simple View Wizard");
+ }
+
+ public ITemplateSection[] createTemplateSections() {
+ return new ITemplateSection[] {new TableViewTemplateSection()};
+ }
+
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/TableViewTemplateSection.java b/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/TableViewTemplateSection.java
new file mode 100644
index 000000000..8e769cc94
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/src/org/eclipse/emf/parsley/wizards/TableViewTemplateSection.java
@@ -0,0 +1,164 @@
+package org.eclipse.emf.parsley.wizards;
+
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.ResourceBundle;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.pde.core.plugin.IPluginBase;
+import org.eclipse.pde.core.plugin.IPluginElement;
+import org.eclipse.pde.core.plugin.IPluginExtension;
+import org.eclipse.pde.core.plugin.IPluginModelFactory;
+import org.eclipse.pde.core.plugin.IPluginReference;
+import org.eclipse.pde.internal.ui.IHelpContextIds;
+import org.eclipse.pde.ui.templates.OptionTemplateSection;
+import org.eclipse.pde.ui.templates.PluginReference;
+
+@SuppressWarnings("restriction")
+public class TableViewTemplateSection extends OptionTemplateSection {
+
+ public TableViewTemplateSection() {
+ setPageCount(1);
+ createOptions();
+ }
+
+ private static final String KEY_PROJECT_NAME = "packageName";
+ private static final String KEY_PREFIX_CLASSESNAME = "prefixClassesname";
+ private static final String KEY_EDITABLE = "editableView";
+
+ private static final String MASTERDETAIL_VIEWNAME = "org.eclipse.emf.parsley.view.masterdetail.TableMasterDetailView";
+
+ public String getUsedExtensionPoint() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public URL getTemplateLocation() {
+ // TODO Auto-generated method stub
+ return super.getTemplateLocation();
+ }
+
+ public String[] getNewFiles() {
+ return new String[] { "icons/" };
+ }
+
+ @Override
+ public String getSectionId() {
+ return "viewtemplate";
+ }
+
+ @Override
+ protected URL getInstallURL() {
+ return Activator.getDefault().getBundle().getEntry("/");
+ }
+
+ @Override
+ protected ResourceBundle getPluginResourceBundle() {
+ return Platform.getResourceBundle(Activator.getDefault().getBundle());
+ }
+
+ public void addPages(Wizard wizard) {
+ WizardPage page = createPage(0, IHelpContextIds.TEMPLATE_INTRO);
+ page.setTitle("Table Master Detail Template");
+ page.setDescription("Creates a Table Master Detail view");
+ wizard.addPage(page);
+ markPagesAdded();
+ }
+
+ private void createOptions() {
+ addOption(KEY_PREFIX_CLASSESNAME, "Prefix classes name", "", 0);
+ addOption(KEY_EDITABLE, "Is editable", true, 0);
+ }
+
+ protected void updateModel(IProgressMonitor monitor) throws CoreException {
+ String projectId = project.getDescription().getName();
+ addOption(KEY_PROJECT_NAME, "Project Name", projectId, 0);
+
+ IPluginModelFactory factory = model.getPluginFactory();
+ IPluginExtension extensionView = createExtensionView(factory);
+ IPluginExtension extensionMenu = createExtensionMenu(factory);
+
+ IPluginBase plugin = model.getPluginBase();
+ plugin.add(extensionView);
+ plugin.add(extensionMenu);
+ }
+
+ private IPluginExtension createExtensionMenu(IPluginModelFactory factory)
+ throws CoreException {
+ IPluginExtension extensionMenu = createExtension("org.eclipse.ui.menus", true);
+
+ IPluginElement elementMenu = factory.createElement(extensionMenu);
+ elementMenu.setName("menuContribution");
+ elementMenu.setAttribute("locationURI", "menu:org.eclipse.ui.main.menu");
+ elementMenu.setAttribute("allPopups", "false");
+
+ IPluginElement elementSubMenu = factory.createElement(elementMenu);
+ elementSubMenu.setName("command");
+ elementSubMenu.setAttribute("commandId", "org.eclipse.ui.views.showView");
+ elementSubMenu.setAttribute("label", getStringOption(KEY_PREFIX_CLASSESNAME));
+ elementSubMenu.setAttribute("tooltip", "Open the Master Detail");
+ elementSubMenu.setAttribute("style", "push");
+
+ IPluginElement elementSubMenuParameter = factory.createElement(elementSubMenu);
+ elementSubMenuParameter.setName("parameter");
+ elementSubMenuParameter.setAttribute("name", "org.eclipse.ui.views.showView.viewId");
+ elementSubMenuParameter.setAttribute("value", getViewId());
+
+ extensionMenu.add(elementMenu);
+ elementMenu.add(elementSubMenu);
+ elementSubMenu.add(elementSubMenuParameter);
+
+ return extensionMenu;
+ }
+
+ private IPluginExtension createExtensionView(IPluginModelFactory factory)
+ throws CoreException {
+ IPluginExtension extensionView = createExtension("org.eclipse.ui.views", true);
+
+ IPluginElement elementView = factory.createElement(extensionView);
+ elementView.setName("view");
+ elementView.setAttribute("id", getViewId());
+ elementView.setAttribute("name", getStringOption(KEY_PREFIX_CLASSESNAME));
+
+ String fullClassName = getAbstractDispatcherPath() + MASTERDETAIL_VIEWNAME;
+ elementView.setAttribute("class", fullClassName);
+ elementView.setAttribute("icon", "icons/table.jpg");
+
+ extensionView.add(elementView);
+
+ return extensionView;
+ }
+
+ private String getAbstractDispatcherPath() {
+ return getStringOption(KEY_PROJECT_NAME) + ".internal.guice." + getStringOption(KEY_PREFIX_CLASSESNAME) + "ExecutableExtensionFactory:";
+ }
+
+ private String getViewId() {
+ return getStringOption(KEY_PROJECT_NAME) + "." + getStringOption(KEY_PREFIX_CLASSESNAME);
+ }
+
+ @Override
+ public IPluginReference[] getDependencies(String schemaVersion) {
+ List<IPluginReference> result = new ArrayList<IPluginReference>();
+ result.addAll(Arrays.asList(super.getDependencies(schemaVersion)));
+ result.add(new PluginReference("org.eclipse.core.runtime", null, 0)); //$NON-NLS-1$
+ result.add(new PluginReference("org.eclipse.emf.cdo", null, 0)); //$NON-NLS-1$
+ result.add(new PluginReference("org.eclipse.emf.cdo.net4j", null, 0)); //$NON-NLS-1$
+ result.add(new PluginReference("org.eclipse.net4j.tcp", null, 0)); //$NON-NLS-1$
+ result.add(new PluginReference("org.eclipse.xtext", null, 0)); //$NON-NLS-1$
+ result.add(new PluginReference("org.eclipse.ui.forms", null, 0)); //$NON-NLS-1$
+ result.add(new PluginReference("org.eclipse.core.databinding.property", null, 0)); //$NON-NLS-1$
+ result.add(new PluginReference("org.eclipse.emf.parsley", null, 0)); //$NON-NLS-1$
+ result.add(new PluginReference("org.eclipse.emf.parsley.cdo", null, 0)); //$NON-NLS-1$
+ return result.toArray(new IPluginReference[result.size()]);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/.gitignore b/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/.gitignore
new file mode 100644
index 000000000..08eb0a07a
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/.gitignore
@@ -0,0 +1 @@
+!bin/ \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/bin/a.java b/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/bin/a.java
new file mode 100644
index 000000000..0ad1a0c73
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/bin/a.java
@@ -0,0 +1,18 @@
+package it.rcpvision.cdo04.editor.labeling;
+
+import org.eclipse.emf.parsley.binding.ControlObservablePair;
+import org.eclipse.emf.parsley.binding.FormControlFactory;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.DateTime;
+
+public class DemoBindingFactory extends EmfSwtBindingFactory {
+
+ public ControlObservablePair control_Order_date(EStructuralFeature feature) {
+ DateTime dateTime= new DateTime(getParent(), SWT.DROP_DOWN);
+ getToolkit().adapt(dateTime);
+ return new ControlObservablePair(dateTime, SWTObservables.observeSelection(dateTime));
+ }
+}
diff --git a/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/$prefixClassesname$CDOSessionManager.java b/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/$prefixClassesname$CDOSessionManager.java
new file mode 100644
index 000000000..8b6fd009e
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/$prefixClassesname$CDOSessionManager.java
@@ -0,0 +1,24 @@
+package $packageName$;
+
+import org.eclipse.emf.parsley.cdo.CDOSessionManager;
+
+import org.eclipse.emf.cdo.eresource.CDOResource;
+import org.eclipse.emf.cdo.session.CDOSession;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+public class $prefixClassesname$CDOSessionManager extends CDOSessionManager {
+
+ @Override
+ public CDOSession getSession(EObject obj) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public CDOResource getTransactionalResourceFor(EClass eReferenceType) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/$prefixClassesname$ViewConfigurator.java b/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/$prefixClassesname$ViewConfigurator.java
new file mode 100644
index 000000000..9a54f4b33
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/$prefixClassesname$ViewConfigurator.java
@@ -0,0 +1,32 @@
+package $packageName$;
+
+import org.eclipse.emf.parsley.view.masterdetail.ViewConfigurator;
+
+import org.eclipse.emf.cdo.session.CDOSession;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+
+public class $prefixClassesname$ViewConfigurator extends ViewConfigurator {
+
+ @Override
+ public EObject getContainer() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public EReference getListFeature() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Boolean isEditable(){
+%if editableView
+ return true;
+%else
+ return false;
+%endif
+ }
+
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/internal/guice/$prefixClassesname$BindingFactory.java b/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/internal/guice/$prefixClassesname$BindingFactory.java
new file mode 100644
index 000000000..0dc906985
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/internal/guice/$prefixClassesname$BindingFactory.java
@@ -0,0 +1,22 @@
+package $packageName$.internal.guice;
+
+import org.eclipse.emf.parsley.binding.ControlObservablePair;
+import org.eclipse.emf.parsley.binding.FormControlFactory;
+
+//import org.eclipse.emf.ecore.EStructuralFeature;
+//import org.eclipse.jface.databinding.swt.SWTObservables;
+//import org.eclipse.swt.SWT;
+//import org.eclipse.swt.widgets.DateTime;
+
+public class $prefixClassesname$BindingFactory extends EmfSwtBindingFactory {
+
+ /*
+ * Example: manage "date" fields with a date picker.
+ *
+ public ControlObservablePair control_$prefixClassesname$_date(EStructuralFeature feature) {
+ DateTime dateTime= new DateTime(getParent(), SWT.DROP_DOWN);
+ getToolkit().adapt(dateTime);
+ return new ControlObservablePair(dateTime, SWTObservables.observeSelection(dateTime));
+ }
+ */
+}
diff --git a/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/internal/guice/$prefixClassesname$ExecutableExtensionFactory.java b/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/internal/guice/$prefixClassesname$ExecutableExtensionFactory.java
new file mode 100644
index 000000000..c0d89c399
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/internal/guice/$prefixClassesname$ExecutableExtensionFactory.java
@@ -0,0 +1,22 @@
+package $packageName$.internal.guice;
+
+import $packageName$.Activator;
+import org.eclipse.emf.parsley.EmfComponentsExtensionFactory;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+
+import org.osgi.framework.Bundle;
+
+public class $prefixClassesname$ExecutableExtensionFactory extends
+ EmfComponentsExtensionFactory {
+
+ @Override
+ protected Bundle getBundle() {
+ return Activator.getDefault().getBundle();
+ }
+
+ @Override
+ protected EmfComponentsGuiceModule getModule() {
+ return new $prefixClassesname$Module(Activator.getDefault());
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/internal/guice/$prefixClassesname$FeatureLabelProvider.java b/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/internal/guice/$prefixClassesname$FeatureLabelProvider.java
new file mode 100644
index 000000000..e2f7496e0
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/internal/guice/$prefixClassesname$FeatureLabelProvider.java
@@ -0,0 +1,34 @@
+package $packageName$.internal.guice;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+import org.eclipse.emf.parsley.ui.provider.FormPropertyDescriptionProvider;
+
+public class $prefixClassesname$FeatureLabelProvider extends FeatureLabelProvider{
+
+ /**
+ *
+ * @param feature
+ * @return
+ */
+ public String text_$prefixClassesname$_code(EStructuralFeature feature) {
+ // TODO Auto-generated method stub
+ return "Code: ";
+ }
+
+ /**
+ *
+ * @param parent
+ * @param feature
+ * @return
+ */
+ public Label label_$prefixClassesname$_description(Composite parent, EStructuralFeature feature) {
+ // TODO Auto-generated method stub
+ return new Label(parent, SWT.NONE);
+ }
+
+
+}
diff --git a/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/internal/guice/$prefixClassesname$Module.java b/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/internal/guice/$prefixClassesname$Module.java
new file mode 100644
index 000000000..e98335abe
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley.wizards/templates_3.4/viewtemplate/java/internal/guice/$prefixClassesname$Module.java
@@ -0,0 +1,38 @@
+package $packageName$.internal.guice;
+
+
+import $packageName$.$prefixClassesname$ViewConfigurator;
+import $packageName$.$prefixClassesname$CDOSessionManager;
+import org.eclipse.emf.parsley.cdo.CDOEmfComponentsModule;
+import org.eclipse.emf.parsley.cdo.CDOSessionManager;
+import org.eclipse.emf.parsley.view.masterdetail.ViewConfigurator;
+import org.eclipse.emf.parsley.binding.FormControlFactory;
+import org.eclipse.emf.parsley.ui.provider.FormPropertyDescriptionProvider;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+public class $prefixClassesname$Module extends CDOEmfComponentsModule {
+
+ public $prefixClassesname$Module(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ public Class<? extends ViewConfigurator> bindViewConfigurator(){
+ return $prefixClassesname$ViewConfigurator.class;
+ }
+
+ public Class<? extends CDOSessionManager> bindCDOSessionManager(){
+ return $prefixClassesname$CDOSessionManager.class;
+ }
+
+ @Override
+ public Class<? extends FeatureLabelProvider> bindFormFeatureLabelProvider() {
+ return $prefixClassesname$FeatureLabelProvider.class;
+ }
+
+ @Override
+ public Class<? extends EmfSwtBindingFactory> bindEmfSwtBindingFactory() {
+ return $prefixClassesname$BindingFactory.class;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.parsley/.classpath b/plugins/org.eclipse.emf.parsley/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.parsley/.project b/plugins/org.eclipse.emf.parsley/.project
new file mode 100644
index 000000000..8e3b65405
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.parsley/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.parsley/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.emf.parsley/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.emf.parsley/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/plugins/org.eclipse.emf.parsley/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.parsley/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..52402de54
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Emf Components
+Bundle-SymbolicName: org.eclipse.emf.parsley;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-Activator: org.eclipse.emf.parsley.EmfComponentsActivator
+Bundle-Vendor: RCP-VISION
+Require-Bundle: org.eclipse.emf.databinding.edit;bundle-version="1.2.0";visibility:=reexport,
+ org.eclipse.core.databinding.property;bundle-version="1.4.0",
+ org.eclipse.emf.ecore.edit;bundle-version="2.7.0";visibility:=reexport,
+ org.eclipse.core.runtime;bundle-version="3.5.0";visibility:=reexport,
+ org.eclipse.emf.parsley.runtime;bundle-version="0.1.0";visibility:=reexport,
+ org.eclipse.ui;bundle-version="3.5.0";visibility:=reexport,
+ org.eclipse.emf.edit.ui;bundle-version="2.7.0";visibility:=reexport,
+ org.eclipse.ui.forms;bundle-version="3.5.0";visibility:=reexport,
+ org.eclipse.jface.databinding;bundle-version="1.2.0";visibility:=reexport,
+ org.eclipse.emf.parsley.common;bundle-version="0.1.0";visibility:=reexport
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.emf.parsley
+Import-Package: org.apache.log4j;version="1.2.13"
diff --git a/plugins/org.eclipse.emf.parsley/build.properties b/plugins/org.eclipse.emf.parsley/build.properties
new file mode 100644
index 000000000..34d2e4d2d
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/plugins/org.eclipse.emf.parsley/src/org/eclipse/emf/parsley/EmfComponentsActivator.java b/plugins/org.eclipse.emf.parsley/src/org/eclipse/emf/parsley/EmfComponentsActivator.java
new file mode 100644
index 000000000..60a455db6
--- /dev/null
+++ b/plugins/org.eclipse.emf.parsley/src/org/eclipse/emf/parsley/EmfComponentsActivator.java
@@ -0,0 +1,73 @@
+package org.eclipse.emf.parsley;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class EmfComponentsActivator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.parsley"; //$NON-NLS-1$
+
+ // The shared instance
+ private static EmfComponentsActivator plugin;
+
+ /**
+ * The constructor
+ */
+ public EmfComponentsActivator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
+ * )
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
+ * )
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static EmfComponentsActivator getDefault() {
+ return plugin;
+ }
+
+ public static void log(Status status) {
+ getDefault().getLog().log(status);
+ }
+
+ public static void logError(String errorMessage) {
+ log(new Status(IStatus.ERROR, EmfComponentsActivator.PLUGIN_ID,
+ errorMessage));
+ }
+
+ public static void log(Throwable exception) {
+ log(new Status(IStatus.ERROR, EmfComponentsActivator.PLUGIN_ID,
+ exception.getMessage(),
+ exception));
+ }
+
+}
diff --git a/releng/org.eclipse.emf.parsley.buckminster.common/.project b/releng/org.eclipse.emf.parsley.buckminster.common/.project
new file mode 100644
index 000000000..530988926
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster.common/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.buckminster.common</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ </natures>
+</projectDescription>
diff --git a/releng/org.eclipse.emf.parsley.buckminster.common/buckminster.cspec b/releng/org.eclipse.emf.parsley.buckminster.common/buckminster.cspec
new file mode 100644
index 000000000..2b78cde15
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster.common/buckminster.cspec
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cs:cspec xmlns:cs="http://www.eclipse.org/buckminster/CSpec-1.0" name="org.eclipse.emf.parsley.buckminster.common" componentType="buckminster" version="1.0.0"/>
diff --git a/releng/org.eclipse.emf.parsley.buckminster.common/common.ant b/releng/org.eclipse.emf.parsley.buckminster.common/common.ant
new file mode 100644
index 000000000..7295606d3
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster.common/common.ant
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Buckminster Headless - build
+
+ buckminster.home defaults to ${user.home}/buckminster
+ but it can be specified on the command line, e.g.,
+ ant -Dbuckminster.home=/home/bettini/buckminster -f build.ant
+
+ Properties:
+ WORKSPACE Eclipse workspace location, or hudson job workspace
+ build.root Where to build? WARNING: This folder will be cleaned up, so do not point to user.home or something important
+ Default: ${WORKSPACE}/buildroot
+ buckminster.home Buckminster headless to use. See http://www.eclipse.org/buckminster/downloads.html
+ projects.location Where to find projects to build?
+ Default: ${WORKSPACE}
+ eclipse.download The base URL for all the repositories in the RMAP
+ Default: http://download.eclipse.org
+-->
+<project name="common" >
+ <property name="WORKSPACE" location="${ant.file}/../../../" />
+ <property name="build.root" location="${WORKSPACE}/buildroot" />
+ <property name="projects.location" location="${WORKSPACE}" />
+ <property name="target.platform" value="target.platform" />
+ <property name="eclipse.download" value="http://download.eclipse.org" />
+
+ <property name="buckminster.home" location="${user.home}/buckminster" />
+ <property name="b3.home" location="${user.home}/b3" />
+
+ <property name="director.install.dest" location="${user.home}" />
+ <property name="director.dir" location="${director.install.dest}/director" />
+ <property name="director.url" value="http://download.eclipse.org/tools/buckminster/products/director_latest.zip" />
+
+ <property name="eclipse.p2.mirrors" value="true" />
+ <property name="java.net.preferIPv4Stack" value="true" />
+
+ <!-- = = = = = = = = = = = = = = = = =
+ macrodef: replace_win_slashes
+ = = = = = = = = = = = = = = = = = -->
+ <macrodef name="replace_win_slashes">
+ <attribute name="property.to.process" default="default" />
+ <attribute name="output.property" default="default" />
+ <sequential>
+ <echo message="@{property.to.process}" file="some.tmp.file" />
+ <loadfile property="@{output.property}" srcFile="some.tmp.file">
+ <filterchain>
+ <tokenfilter>
+ <replaceregex pattern="\\" replace="/" flags="g" />
+ <replaceregex pattern=" " replace="\\ " flags="g" />
+ </tokenfilter>
+ </filterchain>
+ </loadfile>
+ <delete file="some.tmp.file" />
+ </sequential>
+ </macrodef>
+
+ <replace_win_slashes property.to.process="${eclipse.download}" output.property="eclipse-download" />
+
+ <!-- = = = = = = = = = = = = = = = = =
+ macrodef: run_buckminster
+ pass the commandsfile to execute
+ = = = = = = = = = = = = = = = = = -->
+ <macrodef name="run_buckminster">
+ <attribute name="commandsfile" default="default" />
+ <attribute name="propertiesfile" default="default" />
+ <sequential>
+ <java fork="true" dir="${buckminster.home}" logError="true" classname="org.eclipse.core.launcher.Main" failonerror="true">
+ <classpath>
+ <fileset dir="${buckminster.home}/plugins">
+ <include name="org.eclipse.equinox.launcher_*.jar" />
+ </fileset>
+ </classpath>
+ <arg line='-update' />
+ <arg line='-data "${build.root}/buckminster.workspace"' />
+ <arg line='-configuration "${build.root}/configuration"' />
+ <arg line='--properties "@{propertiesfile}"' />
+ <arg line='--script "@{commandsfile}"' />
+ <!-- <arg line='-L DEBUG' /> -->
+ <sysproperty key="projects.location" value="${projects.location}" />
+ <sysproperty key="buckminster.output.root" value="${build.root}/buckminster.output" />
+ <sysproperty key="buckminster.temp.root" value="${build.root}/buckminster.temp" />
+ <sysproperty key="target.platform" value="${build.root}/${target.platform}" />
+ <sysproperty key="eclipse.download" value="${eclipse-download}" />
+ <sysproperty key="eclipse.p2.mirrors" value="${eclipse.p2.mirrors}" />
+ <sysproperty key="java.net.preferIPv4Stack" value="${java.net.preferIPv4Stack}" />
+ <jvmarg line=" -Xms256m -Xmx512m" />
+ </java>
+ </sequential>
+ </macrodef>
+
+ <!-- = = = = = = = = = = = = = = = = =
+ macrodef: run_b3_aggregator
+ pass the commandsfile to execute
+ = = = = = = = = = = = = = = = = = -->
+ <macrodef name="run_b3_aggregator">
+ <attribute name="buildmodel" default="default" />
+ <sequential>
+ <java fork="true" dir="${b3.home}" logError="true" classname="org.eclipse.core.launcher.Main" failonerror="true">
+ <classpath>
+ <fileset dir="${b3.home}/plugins">
+ <include name="org.eclipse.equinox.launcher_*.jar" />
+ </fileset>
+ </classpath>
+ <arg line='aggregate' />
+ <arg line='--buildModel "@{buildmodel}"' />
+ <!-- <arg line='-L DEBUG' /> -->
+ <jvmarg line=" -Xms256m -Xmx512m" />
+ </java>
+ </sequential>
+ </macrodef>
+
+ <target name="cleanup">
+ <delete failonerror="false" includeemptydirs="true">
+ <fileset dir="${build.root}" defaultexcludes="false">
+ <exclude name="**/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/" />
+ <exclude name="**/${target.platform}/" />
+ </fileset>
+ </delete>
+ </target>
+
+ <target name="reset.target-platform">
+ <delete includeemptydirs="true">
+ <fileset dir="${build.root}" defaultexcludes="false">
+ <include name="**/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/" />
+ <include name="**/${target.platform}/" />
+ </fileset>
+ </delete>
+ </target>
+
+
+ <target name="install.buckminster.headless">
+ <condition property="buckminster.headless.installed">
+ <available file="${buckminster.home}/buckminster" />
+ </condition>
+ <antcall target="install.buckminster.headless.internal" />
+ </target>
+
+ <target name="install.buckminster.headless.internal" unless="buckminster.headless.installed" >
+ <antcall target="install.p2.director" />
+ <echo message="" />
+ <echo message="Installing Buckminster Headless into ${buckminster.home}..." />
+ <java fork="true" dir="${director.dir}" logError="true" classname="org.eclipse.core.launcher.Main" failonerror="true">
+ <sysproperty key="eclipse.p2.mirrors" value="false" />
+ <classpath>
+ <fileset dir="${director.dir}/plugins">
+ <include name="org.eclipse.equinox.launcher_*.jar" />
+ </fileset>
+ </classpath>
+ <arg line='-data "${director.dir}/workspace"' />
+ <arg line="-r ${eclipse-download}/tools/buckminster/headless-4.2,${eclipse-download}/releases/juno/" />
+ <arg line='-d "${buckminster.home}"' />
+ <arg line="-p Buckminster" />
+ <arg line="-i org.eclipse.buckminster.cmdline.product" />
+ <arg line="-i org.eclipse.buckminster.core.headless.feature.feature.group" />
+ <arg line="-i org.eclipse.buckminster.pde.headless.feature.feature.group" />
+ <arg line="-i org.eclipse.buckminster.git.headless.feature.feature.group" />
+ </java>
+ </target>
+
+ <target name="install.b3.headless">
+ <condition property="b3.headless.installed">
+ <available file="${b3.home}/b3" />
+ </condition>
+ <antcall target="install.b3.headless.internal" />
+ </target>
+
+ <target name="install.b3.headless.internal" unless="b3.headless.installed" >
+ <antcall target="install.p2.director" />
+ <echo message="" />
+ <echo message="Installing B3 Headless into ${b3.home}..." />
+ <java fork="true" dir="${director.dir}" logError="true" classname="org.eclipse.core.launcher.Main" failonerror="true">
+ <sysproperty key="eclipse.p2.mirrors" value="false" />
+ <classpath>
+ <fileset dir="${director.dir}/plugins">
+ <include name="org.eclipse.equinox.launcher_*.jar" />
+ </fileset>
+ </classpath>
+ <arg line='-data "${director.dir}/workspace"' />
+ <arg line="-r ${eclipse-download}/modeling/emft/b3/headless-4.2" />
+ <arg line='-d "${b3.home}"' />
+ <arg line="-p b3" />
+ <arg line="-i org.eclipse.b3.cli.product" />
+ <arg line="-i org.eclipse.b3.aggregator.engine.feature.feature.group" />
+ </java>
+ </target>
+
+ <target name="install.p2.director">
+ <condition property="p2.director.installed">
+ <available file="${director.dir}" />
+ </condition>
+ <antcall target="install.p2.director.internal" />
+ </target>
+
+ <target name="install.p2.director.internal" unless="p2.director.installed">
+ <echo message="" />
+ <echo message="Installing director from ${director.url}..." />
+ <tempfile destdir="${java.io.tmpdir}"
+ prefix="director-"
+ suffix=".zip"
+ property="director.zip"
+ deleteonexit="true" />
+ <get src="${director.url}" dest="${director.zip}" />
+ <unzip src="${director.zip}" dest="${director.install.dest}" />
+ <delete file="${director.zip}" />
+ </target>
+
+ <target name="install.p2.director.from.local" unless="p2.director.installed">
+ <echo message="" />
+ <echo message="Installing director..." />
+ <unzip dest="${director.install.dest}" src="tools/director_latest.zip" />
+ </target>
+
+</project>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/.project b/releng/org.eclipse.emf.parsley.buckminster/.project
new file mode 100644
index 000000000..7ea851088
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.buckminster</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ </natures>
+</projectDescription>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/README.txt b/releng/org.eclipse.emf.parsley.buckminster/README.txt
new file mode 100644
index 000000000..7ceac52e4
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/README.txt
@@ -0,0 +1,23 @@
+The build.cquery is used to materialize the target platform and the
+projects in the workspace.
+
+The build-local.cquery is an example to materialize the target platform
+using a local eclipse mirror obtained using the b3 aggregator on the
+file aggregator/target-platform-mirror.b3aggr;
+
+it relies on build-local.properties which maps
+the URLs for eclipse repositories (used in the RMAP) to the
+local aggregated mirror which by default is stored into
+file:/${user.home}/mirror/emf-parsley-tp/final
+
+build.ant can be used to run an headless build, together with all the test suites.
+You must pass the location of your buckminster headless installation, e.g.,
+
+-Dbuckminster.home=/path/to/buckminster
+
+You can also pass additional properties as -D<key>=<value>, for instance, if you
+want to use the local aggregated mirror, you must pass
+
+-Dbuild.properties=file:/path/to/build-local.properties
+
+Happy building with Bucky! :)
diff --git a/releng/org.eclipse.emf.parsley.buckminster/aggregator/juno-cdo-xtext-swtbot-mirror.b3aggr b/releng/org.eclipse.emf.parsley.buckminster/aggregator/juno-cdo-xtext-swtbot-mirror.b3aggr
new file mode 100644
index 000000000..9892b1269
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/aggregator/juno-cdo-xtext-swtbot-mirror.b3aggr
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<aggregator:Aggregation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:aggregator="http://www.eclipse.org/b3/2011/aggregator/1.1.0" description="Mirror for EMF Parsley Target Platform" label="Mirror for EMF Parsley Target Platform" buildRoot="${user.home}/mirror/juno-cdo-xtext-swtbot">
+ <validationSets label="main">
+ <contributions label="Juno RCP">
+ <repositories location="http://download.eclipse.org/releases/juno">
+ <features name="org.eclipse.emf.sdk.feature.group"/>
+ <features name="org.eclipse.emf.cdo.sdk.feature.group"/>
+ <features name="org.eclipse.emf.query.sdk.feature.group"/>
+ <features name="org.eclipse.net4j.sdk.feature.group"/>
+ <features name="org.eclipse.rcp.feature.group"/>
+ <features name="org.eclipse.rcp.source.feature.group"/>
+ <features name="org.eclipse.equinox.executable.feature.group"/>
+ <features name="org.eclipse.sdk.feature.group"/>
+ </repositories>
+ </contributions>
+ <contributions description="Xtext Releases" label="Xtext Releases">
+ <repositories location="http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases">
+ <features name="org.eclipse.xtext.sdk.feature.group" versionRange="[2.3.1,2.4.0)"/>
+ <features name="org.eclipse.xtend.sdk.feature.group" versionRange="[2.3.1,2.4.0)"/>
+ <features name="org.eclipse.xpand.sdk.feature.group" versionRange="[1.2.1,1.3.0)"/>
+ <features name="org.eclipse.emf.mwe.sdk.feature.group" versionRange="[1.2.1,1.3.0)"/>
+ <features name="org.eclipse.emf.mwe2.runtime.sdk.feature.group" versionRange="[2.3.0,2.4.0)"/>
+ </repositories>
+ </contributions>
+ <contributions description="SwtBot" label="SwtBot">
+ <repositories location="http://download.eclipse.org/technology/swtbot/releases/latest">
+ <features name="org.eclipse.swtbot.eclipse.feature.group"/>
+ <features name="org.eclipse.swtbot.ide.feature.group"/>
+ </repositories>
+ </contributions>
+ </validationSets>
+ <configurations/>
+ <configurations architecture="x86_64"/>
+ <configurations operatingSystem="linux" windowSystem="gtk"/>
+ <configurations operatingSystem="linux" windowSystem="gtk" architecture="x86_64"/>
+ <configurations operatingSystem="linux" windowSystem="gtk" architecture="ppc"/>
+ <configurations operatingSystem="linux" windowSystem="gtk" architecture="ppc64"/>
+ <configurations operatingSystem="linux" windowSystem="gtk" architecture="s390"/>
+ <configurations operatingSystem="linux" windowSystem="gtk" architecture="s390x"/>
+ <configurations operatingSystem="solaris" windowSystem="gtk" architecture="sparc"/>
+ <configurations operatingSystem="solaris" windowSystem="gtk"/>
+ <configurations operatingSystem="macosx" windowSystem="cocoa"/>
+ <configurations operatingSystem="macosx" windowSystem="cocoa" architecture="x86_64"/>
+ <configurations operatingSystem="aix" windowSystem="gtk" architecture="ppc64"/>
+ <configurations operatingSystem="aix" windowSystem="gtk" architecture="ppc"/>
+ <configurations operatingSystem="hpux" windowSystem="gtk" architecture="ia64_32"/>
+ <customCategories identifier="custom.rcp.components" label="Custom RCP Components"/>
+</aggregator:Aggregation>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/aggregator/kepler-cdo-xtext-swtbot-mirror.b3aggr b/releng/org.eclipse.emf.parsley.buckminster/aggregator/kepler-cdo-xtext-swtbot-mirror.b3aggr
new file mode 100644
index 000000000..8120bb77e
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/aggregator/kepler-cdo-xtext-swtbot-mirror.b3aggr
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<aggregator:Aggregation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:aggregator="http://www.eclipse.org/b3/2011/aggregator/1.1.0" description="Mirror for EMF Parsley Target Platform" label="Mirror for EMF Parsley Target Platform" buildRoot="${user.home}/mirror/kepler-cdo-xtext-swtbot">
+ <validationSets label="main">
+ <contributions label="Kepler RCP">
+ <repositories location="http://download.eclipse.org/releases/kepler">
+ <features name="org.eclipse.emf.sdk.feature.group"/>
+ <features name="org.eclipse.emf.cdo.sdk.feature.group"/>
+ <features name="org.eclipse.emf.query.sdk.feature.group"/>
+ <features name="org.eclipse.net4j.sdk.feature.group"/>
+ <features name="org.eclipse.rcp.feature.group"/>
+ <features name="org.eclipse.rcp.source.feature.group"/>
+ <features name="org.eclipse.equinox.executable.feature.group"/>
+ <features name="org.eclipse.sdk.feature.group"/>
+ <features name="org.eclipse.xtext.sdk.feature.group" versionRange="[2.4.2,2.5.0)"/>
+ <features name="org.eclipse.xtend.sdk.feature.group" versionRange="[2.4.2,2.5.0)"/>
+ <features name="org.eclipse.xpand.sdk.feature.group" versionRange="[1.4.0,1.5.0)"/>
+ <features name="org.eclipse.emf.mwe.sdk.feature.group" versionRange="[1.2.1,1.4.0)"/>
+ <features name="org.eclipse.emf.mwe2.runtime.sdk.feature.group" versionRange="[2.4.0,2.5.0)"/>
+ </repositories>
+ </contributions>
+ <contributions description="SwtBot" label="SwtBot">
+ <repositories location="http://download.eclipse.org/technology/swtbot/snapshots">
+ <features name="org.eclipse.swtbot.eclipse.feature.group"/>
+ <features name="org.eclipse.swtbot.ide.feature.group"/>
+ </repositories>
+ </contributions>
+ </validationSets>
+ <configurations/>
+ <configurations architecture="x86_64"/>
+ <configurations operatingSystem="linux" windowSystem="gtk"/>
+ <configurations operatingSystem="linux" windowSystem="gtk" architecture="x86_64"/>
+ <configurations operatingSystem="linux" windowSystem="gtk" architecture="ppc"/>
+ <configurations operatingSystem="linux" windowSystem="gtk" architecture="ppc64"/>
+ <configurations operatingSystem="linux" windowSystem="gtk" architecture="s390"/>
+ <configurations operatingSystem="linux" windowSystem="gtk" architecture="s390x"/>
+ <configurations operatingSystem="solaris" windowSystem="gtk" architecture="sparc"/>
+ <configurations operatingSystem="solaris" windowSystem="gtk"/>
+ <configurations operatingSystem="macosx" windowSystem="cocoa"/>
+ <configurations operatingSystem="macosx" windowSystem="cocoa" architecture="x86_64"/>
+ <configurations operatingSystem="aix" windowSystem="gtk" architecture="ppc64"/>
+ <configurations operatingSystem="aix" windowSystem="gtk" architecture="ppc"/>
+ <configurations operatingSystem="hpux" windowSystem="gtk" architecture="ia64_32"/>
+ <configurations operatingSystem="hpux" windowSystem="gtk" architecture="ia64"/>
+ <customCategories identifier="custom.rcp.components" label="Custom RCP Components"/>
+</aggregator:Aggregation>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/buckminster.cspec b/releng/org.eclipse.emf.parsley.buckminster/buckminster.cspec
new file mode 100644
index 000000000..813cb1e6c
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/buckminster.cspec
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cs:cspec xmlns:cs="http://www.eclipse.org/buckminster/CSpec-1.0" name="org.eclipse.emf.parsley.buckminster" componentType="buckminster" version="1.0.0">
+ <cs:dependencies>
+ <cs:dependency name="org.eclipse.emf.cdo.sdk" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.emf.parsley.buckminster.common" componentType="buckminster"/>
+ <cs:dependency name="org.eclipse.emf.parsley.site" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.emf.query.sdk" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.emf.sdk" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.equinox.executable" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.net4j.sdk" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.rcp" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.rcp.source" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.sdk" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.swtbot.eclipse" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.swtbot.ide" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.xtend.sdk" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.xtext.sdk" componentType="eclipse.feature"/>
+ </cs:dependencies>
+</cs:cspec>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/build-examples-rcp.ant b/releng/org.eclipse.emf.parsley.buckminster/build-examples-rcp.ant
new file mode 100644
index 000000000..d7d0c240e
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/build-examples-rcp.ant
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Buckminster Headless - build
+
+ buckminster.home must be specified on the command line, e.g.,
+ ant -Dbuckminster.home=/home/bettini/buckminster -f build.ant
+
+ Properties:
+ WORKSPACE Eclipse workspace location, or hudson job workspace
+ build.root Where to build? WARNING: This folder will be cleaned up, so do not point to user.home or something important
+ Default: ${WORKSPACE}/buildroot
+ buckminster.home Buckminster headless to use. See http://www.eclipse.org/buckminster/downloads.html
+ projects.location Where to find projects to build?
+ Default: ${WORKSPACE}
+ eclipse.download The base URL for all the repositories in the RMAP
+ Default: http://download.eclipse.org
+-->
+<project name="Buckminster Headless" default="buckminster">
+ <import file="${ant.file}/../../org.eclipse.emf.parsley.buckminster.common/common.ant" as="common" />
+
+ <property name="products.commands.file" location="${projects.location}/releng/org.eclipse.emf.parsley.buckminster/headless-perform-examples-rcp.txt" />
+
+ <target name="buckminster" depends="common.cleanup" description="description">
+
+ <fail unless="buckminster.home" message="buckminster.home must be specified." />
+
+ <property name="resolve.commands.file" location="${projects.location}/releng/org.eclipse.emf.parsley.buckminster/headless-resolve-commands.txt" />
+ <property name="perform.commands.file" location="${projects.location}/releng/org.eclipse.emf.parsley.buckminster/headless-perform-examples-rcp.txt" />
+ <property name="build.properties" location="${projects.location}/releng/org.eclipse.emf.parsley.buckminster/build.properties" />
+
+ <echo message="IMPORTANT: Populating an empty target platform may took over 10 minutes." />
+ <echo message="eclipse.download: ${eclipse.download}" />
+ <echo message="build.properties: ${build.properties}" />
+
+ <run_buckminster commandsfile="${resolve.commands.file}" propertiesfile="${build.properties}" />
+ <run_buckminster commandsfile="${products.commands.file}" propertiesfile="${build.properties}" />
+
+ <echo message=" " />
+ <echo message="Updatesite output in: ${build.root}/buckminster.output/org.eclipse.emf.parsley.examples.mail.product.site_*-eclipse.feature/site.p2/" />
+ <echo message="Products output in: ${build.root}/buckminster.output/org.eclipse.emf.parsley.examples.mail.product.site_*-eclipse.feature/EmfComponentsMail.OS.WS.ARCH/" />
+ </target>
+</project>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/build-juno.cquery b/releng/org.eclipse.emf.parsley.buckminster/build-juno.cquery
new file mode 100644
index 000000000..fb14bedae
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/build-juno.cquery
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cq:componentQuery xmlns:cq="http://www.eclipse.org/buckminster/CQuery-1.0" resourceMap="build-juno.rmap">
+ <cq:rootRequest name="org.eclipse.emf.parsley.buckminster" componentType="buckminster"/>
+ <cq:property key="target.arch" value="*"/>
+ <cq:property key="target.os" value="*"/>
+ <cq:property key="target.ws" value="*"/>
+ <cq:advisorNode namePattern="^org\.eclipse\.rap\..*$" skipComponent="true"/>
+ <cq:advisorNode namePattern="^org\.eclipse\.emf\.rap\..*$" skipComponent="true"/>
+ <cq:advisorNode namePattern="org\.eclipse\.xtext\.xdoc(?:\..+)?" versionOverride="0.1.0"/>
+ <cq:advisorNode namePattern="org\.eclipse\.xtext\.logging(?:\..+)?" versionOverride="1.2.15"/>
+ <cq:advisorNode namePattern="org\.eclipse\.xtext(?:\..+)?" versionOverride="[2.3.1,2.4.0)"/>
+ <cq:advisorNode namePattern="org\.eclipse\.emf\.mwe2(?:\..+)?" versionOverride="[2.3.0,2.4.0)"/>
+ <cq:advisorNode namePattern="org\.eclipse\.emf\.mwe(?:\..+)?" versionOverride="[1.2.1,1.3.0)"/>
+ <cq:advisorNode namePattern="org\.hamcrest(?:\..+)\.source?" skipComponent="true"/>
+ <cq:advisorNode namePattern=".*" useTargetPlatform="false"/>
+</cq:componentQuery>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/build-juno.rmap b/releng/org.eclipse.emf.parsley.buckminster/build-juno.rmap
new file mode 100644
index 000000000..34d5147cc
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/build-juno.rmap
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rm:rmap xmlns:rm="http://www.eclipse.org/buckminster/RMap-1.0"
+ xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0">
+
+ <rm:property key="projects.location" value="${workspace.root}" />
+
+ <rm:property key="git.clone.dest" value="${user.home}/git/emf-components" />
+
+ <rm:property key="eclipse.download" value="http://download.eclipse.org" />
+ <rm:property key="xtext.p2.repository"
+ value="${eclipse.download}/modeling/tmf/xtext/updates/composite/releases" />
+ <rm:property key="eclipse.target.platform" value="${eclipse.download}/releases/juno" />
+ <rm:property key="swtbot.repository"
+ value="${eclipse.download}/technology/swtbot/releases/latest" />
+
+ <rm:locator pattern="^org\.eclipse\.emf\.parsley(?:\..+)?$"
+ searchPathRef="emfparsley" />
+ <rm:locator pattern="^org\.eclipse\.emf\.examples\.library(?:\..+)?$"
+ searchPathRef="emfparsley" />
+ <rm:locator pattern="^org\.eclipse\.xtext\.xdoc(?:\..+)?$"
+ searchPathRef="xdoc" />
+
+ <rm:locator
+ pattern="^org\.eclipse\.(?:xtext|xpand|xtend|xtend2|emf\.mwe|emf\.mwe2)(?:\..+)?$"
+ searchPathRef="xtext" />
+ <rm:locator pattern="^com\.google.*" searchPathRef="xtext" />
+ <rm:locator pattern="^org\.antlr.*" searchPathRef="xtext" />
+ <rm:locator pattern="javax.inject" searchPathRef="xtext" />
+ <rm:locator pattern="^org\.hamcrest*" searchPathRef="swtbot" />
+ <rm:locator pattern="^org\.eclipse\.(?:swtbot)(?:\..+)?$"
+ searchPathRef="swtbot" />
+ <rm:locator searchPathRef="eclipse" />
+
+ <rm:searchPath name="emfparsley">
+ <rm:provider componentTypes="eclipse.feature,buckminster"
+ readerType="local" mutable="false">
+ <rm:uri format="{0}/releng/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/plugins/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/dsl/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="eclipse.feature" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/features/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/doc/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/examples/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/tests/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+
+ <!-- if not found locally, take it from git -->
+
+ <rm:provider componentTypes="eclipse.feature,buckminster"
+ readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},releng/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},plugins/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="eclipse.feature" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},features/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},tests/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},dsl/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},examples/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},doc/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+ <rm:searchPath name="xdoc">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <!-- if we're inside the IDE, make sure to refer to project location since
+ they might not be in the same directory of the workspace -->
+ <rm:uri format="file:/{0}/../../devtools/xdoc/site">
+ <!-- in Windows we must make sure there are no \ characters otherwise
+ the p2 materializer will complain with a java.net.URISyntaxException -->
+ <bc:replace pattern="\\" quotePattern="false"
+ replacement="/">
+ <bc:propertyRef
+ key="project_loc:org.eclipse.emf.parsley.buckminster" />
+ </bc:replace>
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <!-- if we're headless, then we can refer to ${workspace.root} since projects
+ are in the same directory of the workspace -->
+ <rm:uri format="file:/{0}/devtools/xdoc/site">
+ <bc:replace pattern="\\" quotePattern="false"
+ replacement="/">
+ <bc:propertyRef key="projects.location" />
+ </bc:replace>
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:uri
+ format="http://master.dl.sourceforge.net/project/xtext-xdoc/updates-2.3">
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+ <rm:searchPath name="xtext">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:uri format="{0}">
+ <bc:propertyRef key="xtext.p2.repository" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+ <rm:searchPath name="swtbot">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:uri format="{0}">
+ <bc:propertyRef key="swtbot.repository" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+ <rm:searchPath name="eclipse">
+ <rm:provider componentTypes="eclipse.feature,osgi.bundle"
+ readerType="p2" source="false" mutable="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:property key="buckminster.mutable" value="false" />
+ <rm:uri format="{0}">
+ <bc:propertyRef key="eclipse.target.platform" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+
+</rm:rmap>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/build-local.cquery b/releng/org.eclipse.emf.parsley.buckminster/build-local.cquery
new file mode 100644
index 000000000..d330da96e
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/build-local.cquery
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cq:componentQuery xmlns:cq="http://www.eclipse.org/buckminster/CQuery-1.0" resourceMap="build.rmap" properties="build-local.properties">
+ <cq:rootRequest name="org.eclipse.emf.parsley.buckminster" componentType="buckminster"/>
+ <cq:property key="target.arch" value="*"/>
+ <cq:property key="target.os" value="*"/>
+ <cq:property key="target.ws" value="*"/>
+ <cq:advisorNode namePattern="^org\.eclipse\.rap\..*$" skipComponent="true"/>
+ <cq:advisorNode namePattern="^org\.eclipse\.emf\.rap\..*$" skipComponent="true"/>
+ <cq:advisorNode namePattern=".*" useTargetPlatform="false"/>
+</cq:componentQuery>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/build-local.properties b/releng/org.eclipse.emf.parsley.buckminster/build-local.properties
new file mode 100644
index 000000000..b964c5f21
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/build-local.properties
@@ -0,0 +1,11 @@
+# the base of the local eclipse mirrors
+# eclipse.download=file:${user.home}/eclipsemirror
+
+# aggregated mirrored repositories
+xtext.p2.repository=file:/${user.home}/mirror/kepler-cdo-xtext-swtbot/final
+eclipse.target.platform=file:/${user.home}/mirror/kepler-cdo-xtext-swtbot/final
+swtbot.repository=file:/${user.home}/mirror/kepler-cdo-xtext-swtbot/final
+
+# How .qualifier in versions should be replaced
+qualifier.replacement.*=generator:lastModified
+generator.lastModified.format='v'yyyyMMdd-HHmm \ No newline at end of file
diff --git a/releng/org.eclipse.emf.parsley.buckminster/build.ant b/releng/org.eclipse.emf.parsley.buckminster/build.ant
new file mode 100644
index 000000000..7755985e2
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/build.ant
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Buckminster Headless - build
+
+ buckminster.home must be specified on the command line, e.g.,
+ ant -Dbuckminster.home=/home/bettini/buckminster -f build.ant
+
+ Properties:
+ WORKSPACE Eclipse workspace location, or hudson job workspace
+ build.root Where to build? WARNING: This folder will be cleaned up, so do not point to user.home or something important
+ Default: ${WORKSPACE}/buildroot
+ buckminster.home Buckminster headless to use. See http://www.eclipse.org/buckminster/downloads.html
+ projects.location Where to find projects to build?
+ Default: ${WORKSPACE}
+ eclipse.download The base URL for all the repositories in the RMAP
+ Default: http://download.eclipse.org
+-->
+<project name="Buckminster Headless" default="buckminster">
+ <import file="${ant.file}/../../org.eclipse.emf.parsley.buckminster.common/common.ant" as="common" />
+
+ <target name="buckminster" depends="common.cleanup,install.buckminster.headless" description="description">
+
+ <fail unless="buckminster.home" message="buckminster.home must be specified." />
+
+ <property name="resolve.commands.file" location="${projects.location}/releng/org.eclipse.emf.parsley.buckminster/headless-resolve-commands.txt" />
+ <property name="perform.commands.file" location="${projects.location}/releng/org.eclipse.emf.parsley.buckminster/headless-perform-commands.txt" />
+ <property name="build.properties" location="${projects.location}/releng/org.eclipse.emf.parsley.buckminster/build.properties" />
+
+ <echo message="IMPORTANT: Populating an empty target platform may took over 10 minutes." />
+ <echo message="eclipse.download: ${eclipse.download}" />
+ <echo message="build.properties: ${build.properties}" />
+
+ <run_buckminster commandsfile="${resolve.commands.file}" propertiesfile="${build.properties}" />
+ <run_buckminster commandsfile="${perform.commands.file}" propertiesfile="${build.properties}" />
+
+ <echo message=" " />
+ <echo message="Updatesite output in: ${build.root}/buckminster.output/org.eclipse.emf.parsley.site_*-eclipse.feature/site.p2/" />
+ </target>
+
+ <target name="b3_aggregation" depends="install.b3.headless" description="description">
+
+ <property name="build.model" location="${projects.location}/releng/org.eclipse.emf.parsley.buckminster/aggregator/kepler-cdo-xtext-swtbot-mirror.b3aggr" />
+
+ <echo message="IMPORTANT: Mirror aggregation may took over 10 minutes." />
+ <echo message="build.model: ${build.model}" />
+
+ <run_b3_aggregator buildmodel="${build.model}" />
+
+ <echo message=" " />
+ <echo message="Aggregated mirror in: ${user.home}/mirror/kepler-cdo-xtext-swtbot/final" />
+ </target>
+
+</project>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/build.cquery b/releng/org.eclipse.emf.parsley.buckminster/build.cquery
new file mode 100644
index 000000000..1d6ba58b3
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/build.cquery
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cq:componentQuery xmlns:cq="http://www.eclipse.org/buckminster/CQuery-1.0" resourceMap="build.rmap">
+ <cq:rootRequest name="org.eclipse.emf.parsley.buckminster" componentType="buckminster"/>
+ <cq:property key="target.arch" value="*"/>
+ <cq:property key="target.os" value="*"/>
+ <cq:property key="target.ws" value="*"/>
+ <cq:advisorNode namePattern="^org\.eclipse\.rap\..*$" skipComponent="true"/>
+ <cq:advisorNode namePattern="^org\.eclipse\.emf\.rap\..*$" skipComponent="true"/>
+ <cq:advisorNode namePattern="org\.eclipse\.xtext\.xdoc(?:\..+)?" skipComponent="true" versionOverride="0.1.0"/>
+ <cq:advisorNode namePattern="org\.eclipse\.xtext\.logging(?:\..+)?" versionOverride="1.2.15"/>
+ <cq:advisorNode namePattern="org\.eclipse\.xtext(?:\..+)?" versionOverride="[2.4.2,2.5.0)"/>
+ <cq:advisorNode namePattern="org\.eclipse\.emf\.mwe2(?:\..+)?" versionOverride="[2.4.0,2.5.0)"/>
+ <cq:advisorNode namePattern="org\.eclipse\.emf\.mwe(?:\..+)?" versionOverride="[1.2.1,1.4.0)"/>
+ <cq:advisorNode namePattern="org\.hamcrest(?:\..+)\.source?" skipComponent="true"/>
+ <cq:advisorNode namePattern=".*" useTargetPlatform="false"/>
+</cq:componentQuery>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/build.properties b/releng/org.eclipse.emf.parsley.buckminster/build.properties
new file mode 100644
index 000000000..0cc6bbaae
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/build.properties
@@ -0,0 +1,3 @@
+# How .qualifier in versions should be replaced
+qualifier.replacement.*=generator:lastModified
+generator.lastModified.format='v'yyyyMMdd-HHmm
diff --git a/releng/org.eclipse.emf.parsley.buckminster/build.rmap b/releng/org.eclipse.emf.parsley.buckminster/build.rmap
new file mode 100644
index 000000000..5848596bc
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/build.rmap
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rm:rmap xmlns:rm="http://www.eclipse.org/buckminster/RMap-1.0"
+ xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0">
+
+ <rm:property key="projects.location" value="${workspace.root}" />
+
+ <rm:property key="git.clone.dest" value="${user.home}/git/emf-components" />
+
+ <rm:property key="eclipse.download" value="http://download.eclipse.org" />
+ <rm:property key="xtext.p2.repository"
+ value="${eclipse.download}/modeling/tmf/xtext/updates/composite/releases" />
+ <rm:property key="eclipse.target.platform" value="${eclipse.download}/releases/kepler" />
+ <rm:property key="eclipse.juno.target.platform" value="${eclipse.download}/releases/juno" />
+ <!-- <rm:property key="swtbot.repository"
+ value="${eclipse.download}/technology/swtbot/releases/latest" /> -->
+ <rm:property key="swtbot.repository"
+ value="${eclipse.download}/technology/swtbot/snapshots" />
+
+ <rm:locator pattern="^org\.eclipse\.emf\.parsley(?:\..+)?$"
+ searchPathRef="emfparsley" />
+ <rm:locator pattern="^org\.eclipse\.emf\.examples\.library(?:\..+)?$"
+ searchPathRef="emfparsley" />
+
+ <!-- <rm:locator pattern="^org\.eclipse\.xtext\.xdoc(?:\..+)?$"
+ searchPathRef="xdoc" /> -->
+
+ <!-- Currently, Xtext 2.4.2 is available only from Kepler site
+ <rm:locator
+ pattern="^org\.eclipse\.(?:xtext|xpand|xtend|xtend2|emf\.mwe|emf\.mwe2)(?:\..+)?$"
+ searchPathRef="xtext" />
+ <rm:locator pattern="^com\.google.*" searchPathRef="xtext" />
+ <rm:locator pattern="^org\.antlr.*" searchPathRef="xtext" />
+ <rm:locator pattern="javax.inject" searchPathRef="xtext" />
+ -->
+
+ <rm:locator pattern="^org\.hamcrest*" searchPathRef="swtbot" />
+ <rm:locator pattern="^org\.eclipse\.(?:swtbot)(?:\..+)?$"
+ searchPathRef="swtbot" />
+
+ <!-- org.junit4 was removed from Kepler, but net4j depends on it -->
+ <!-- <rm:locator pattern="^org\.junit4(?:\..+)?$" searchPathRef="juno" /> -->
+
+ <rm:locator searchPathRef="eclipse" />
+
+ <rm:searchPath name="emfparsley">
+ <rm:provider componentTypes="eclipse.feature,buckminster"
+ readerType="local" mutable="false">
+ <rm:uri format="{0}/releng/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/plugins/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/dsl/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="eclipse.feature" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/features/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/doc/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/examples/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/tests/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+
+ <!-- if not found locally, take it from git -->
+
+ <rm:provider componentTypes="eclipse.feature,buckminster"
+ readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},releng/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},plugins/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="eclipse.feature" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},features/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},tests/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},dsl/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},examples/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},doc/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+ <rm:searchPath name="xtext">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:uri format="{0}">
+ <bc:propertyRef key="xtext.p2.repository" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+ <rm:searchPath name="swtbot">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:uri format="{0}">
+ <bc:propertyRef key="swtbot.repository" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+ <rm:searchPath name="eclipse">
+ <rm:provider componentTypes="eclipse.feature,osgi.bundle"
+ readerType="p2" source="false" mutable="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:property key="buckminster.mutable" value="false" />
+ <rm:uri format="{0}">
+ <bc:propertyRef key="eclipse.target.platform" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+ <rm:searchPath name="juno">
+ <rm:provider componentTypes="eclipse.feature,osgi.bundle"
+ readerType="p2" source="false" mutable="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:property key="buckminster.mutable" value="false" />
+ <rm:uri format="{0}">
+ <bc:propertyRef key="eclipse.juno.target.platform" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+
+</rm:rmap>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/headless-perform-commands.txt b/releng/org.eclipse.emf.parsley.buckminster/headless-perform-commands.txt
new file mode 100644
index 000000000..d5af7c459
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/headless-perform-commands.txt
@@ -0,0 +1,6 @@
+build
+perform -D target.os=* -D target.ws=* -D target.arch=* org.eclipse.emf.parsley.site#site.p2
+junit -l "org.eclipse.emf.parsley.tests/EmfComponentsAllTests.launch" --flatXML -o "${buckminster.output.root}/test.results/EmfComponentsAllTests_junit_result.xml"
+junit -l "org.eclipse.emf.parsley.cdo.tests/CDOUriTests.launch" --flatXML -o "${buckminster.output.root}/test.results/CDOUriTests_junit_result.xml"
+junit -l "org.eclipse.emf.parsley.dsl.tests/EmfComponentsDslAllTests.launch" --flatXML -o "${buckminster.output.root}/test.results/EmfComponentsDslAllTests_junit_result.xml"
+junit -l "org.eclipse.emf.parsley.tests.swtbot/EmfComponentsSwtBotAllTests.launch" --flatXML -o "${buckminster.output.root}/test.results/EmfComponentsSwtBotAllTests_junit_result.xml" \ No newline at end of file
diff --git a/releng/org.eclipse.emf.parsley.buckminster/headless-perform-examples-rcp.txt b/releng/org.eclipse.emf.parsley.buckminster/headless-perform-examples-rcp.txt
new file mode 100644
index 000000000..91b5dd7cf
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/headless-perform-examples-rcp.txt
@@ -0,0 +1,3 @@
+build
+perform -D target.os=win32 -D target.ws=win32 -D target.arch=x86 org.eclipse.emf.parsley.examples.mail.product.site#create.product.zip
+perform -D target.os=linux -D target.ws=gtk -D target.arch=x86_64 org.eclipse.emf.parsley.examples.mail.product.site#create.product.zip
diff --git a/releng/org.eclipse.emf.parsley.buckminster/headless-resolve-commands.txt b/releng/org.eclipse.emf.parsley.buckminster/headless-resolve-commands.txt
new file mode 100644
index 000000000..d3309fffa
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/headless-resolve-commands.txt
@@ -0,0 +1,2 @@
+setpref targetPlatformPath="${target.platform}"
+resolve "${projects.location}/releng/org.eclipse.emf.parsley.buckminster/build.cquery"
diff --git a/releng/org.eclipse.emf.parsley.buckminster/launches/build.ant install b3 headless.launch b/releng/org.eclipse.emf.parsley.buckminster/launches/build.ant install b3 headless.launch
new file mode 100644
index 000000000..d2cf3fc48
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/launches/build.ant install b3 headless.launch
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.ant.AntLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.buckminster/build.ant"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ant.internal.launching.remote.InternalAntRunner"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.buckminster"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_ANT_TARGETS" value="install.b3.headless,"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.emf.parsley.buckminster/build.ant}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-Dbuckminster.home=${system_property:user.home}/b3"/>
+<stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>
+</launchConfiguration>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/launches/build.ant run b3 aggrefator.launch b/releng/org.eclipse.emf.parsley.buckminster/launches/build.ant run b3 aggrefator.launch
new file mode 100644
index 000000000..1d5f68a8e
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/launches/build.ant run b3 aggrefator.launch
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.ant.AntLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.buckminster/build.ant"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ant.internal.launching.remote.InternalAntRunner"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.buckminster"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_ANT_TARGETS" value="b3_aggregation,"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.emf.parsley.buckminster/build.ant}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-Db3.home=${system_property:user.home}/b3"/>
+<stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>
+</launchConfiguration>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/launches/build.ant using aggregated mirror.launch b/releng/org.eclipse.emf.parsley.buckminster/launches/build.ant using aggregated mirror.launch
new file mode 100644
index 000000000..0a595b7a3
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/launches/build.ant using aggregated mirror.launch
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.ant.AntLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.buckminster/build.ant"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ant.internal.launching.remote.InternalAntRunner"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.buckminster"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.emf.parsley.buckminster/build.ant}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-Dbuckminster.home=${system_property:user.home}/buckminster -Dbuild.properties=${project_loc:org.eclipse.emf.parsley.buckminster}/build-local.properties"/>
+<stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>
+</launchConfiguration>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/launches/build.ant using mirror.launch b/releng/org.eclipse.emf.parsley.buckminster/launches/build.ant using mirror.launch
new file mode 100644
index 000000000..0489a01a4
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/launches/build.ant using mirror.launch
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.ant.AntLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.buckminster/build.ant"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ant.internal.launching.remote.InternalAntRunner"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.buckminster"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.emf.parsley.buckminster/build.ant}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-Dbuckminster.home=${system_property:user.home}/buckminster -Declipse.download=file:/${system_property:user.home}/eclipsemirror"/>
+<stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>
+</launchConfiguration>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/launches/build.ant.launch b/releng/org.eclipse.emf.parsley.buckminster/launches/build.ant.launch
new file mode 100644
index 000000000..dd7927e19
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/launches/build.ant.launch
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.ant.AntLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.buckminster/build.ant"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ant.internal.launching.remote.InternalAntRunner"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.buckminster"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.emf.parsley.buckminster/build.ant}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-Dbuckminster.home=${system_property:user.home}/buckminster"/>
+<stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>
+</launchConfiguration>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/old/build.rmap b/releng/org.eclipse.emf.parsley.buckminster/old/build.rmap
new file mode 100644
index 000000000..d6fa11aa4
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/old/build.rmap
@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rm:rmap xmlns:rm="http://www.eclipse.org/buckminster/RMap-1.0"
+ xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0">
+
+ <rm:property key="projects.location" value="${workspace.root}" />
+
+ <rm:property key="git.clone.dest" value="${user.home}/git/emf-components" />
+
+ <rm:property key="eclipse.download" value="http://download.eclipse.org" />
+ <rm:property key="xtext.p2.repository"
+ value="${eclipse.download}/modeling/tmf/xtext/updates/composite/releases" />
+ <rm:property key="eclipse.target.platform" value="${eclipse.download}/releases/kepler" />
+ <rm:property key="eclipse.juno.target.platform" value="${eclipse.download}/releases/juno" />
+ <!-- <rm:property key="swtbot.repository"
+ value="${eclipse.download}/technology/swtbot/releases/latest" /> -->
+ <rm:property key="swtbot.repository"
+ value="${eclipse.download}/technology/swtbot/snapshots" />
+
+ <rm:locator pattern="^org\.eclipse\.emf\.parsley(?:\..+)?$"
+ searchPathRef="emfparsley" />
+ <rm:locator pattern="^org\.eclipse\.emf\.examples\.library(?:\..+)?$"
+ searchPathRef="emfparsley" />
+
+ <!-- <rm:locator pattern="^org\.eclipse\.xtext\.xdoc(?:\..+)?$"
+ searchPathRef="xdoc" /> -->
+
+ <!-- Currently, Xtext 2.4.2 is available only from Kepler site
+ <rm:locator
+ pattern="^org\.eclipse\.(?:xtext|xpand|xtend|xtend2|emf\.mwe|emf\.mwe2)(?:\..+)?$"
+ searchPathRef="xtext" />
+ <rm:locator pattern="^com\.google.*" searchPathRef="xtext" />
+ <rm:locator pattern="^org\.antlr.*" searchPathRef="xtext" />
+ <rm:locator pattern="javax.inject" searchPathRef="xtext" />
+ -->
+
+ <rm:locator pattern="^org\.hamcrest*" searchPathRef="swtbot" />
+ <rm:locator pattern="^org\.eclipse\.(?:swtbot)(?:\..+)?$"
+ searchPathRef="swtbot" />
+
+ <!-- org.junit4 was removed from Kepler, but net4j depends on it -->
+ <!-- <rm:locator pattern="^org\.junit4(?:\..+)?$" searchPathRef="juno" /> -->
+
+ <rm:locator searchPathRef="eclipse" />
+
+ <rm:searchPath name="emfparsley">
+ <rm:provider componentTypes="eclipse.feature,buckminster"
+ readerType="local" mutable="false">
+ <rm:uri format="{0}/releng/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/plugins/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/dsl/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="eclipse.feature" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/features/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/doc/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/examples/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/tests/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+
+ <!-- if not found locally, take it from git -->
+
+ <rm:provider componentTypes="eclipse.feature,buckminster"
+ readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},releng/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},plugins/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="eclipse.feature" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},features/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},tests/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},dsl/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},examples/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},doc/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+ <rm:searchPath name="xdoc">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <!-- if we're inside the IDE, make sure to refer to project location since
+ they might not be in the same directory of the workspace -->
+ <rm:uri format="file:/{0}/../../devtools/xdoc/site">
+ <!-- in Windows we must make sure there are no \ characters otherwise
+ the p2 materializer will complain with a java.net.URISyntaxException -->
+ <bc:replace pattern="\\" quotePattern="false"
+ replacement="/">
+ <bc:propertyRef
+ key="project_loc:org.eclipse.emf.parsley.buckminster" />
+ </bc:replace>
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <!-- if we're headless, then we can refer to ${workspace.root} since projects
+ are in the same directory of the workspace -->
+ <rm:uri format="file:/{0}/devtools/xdoc/site">
+ <bc:replace pattern="\\" quotePattern="false"
+ replacement="/">
+ <bc:propertyRef key="projects.location" />
+ </bc:replace>
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:uri
+ format="http://master.dl.sourceforge.net/project/xtext-xdoc/updates-2.3">
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+ <rm:searchPath name="xtext">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:uri format="{0}">
+ <bc:propertyRef key="xtext.p2.repository" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+ <rm:searchPath name="swtbot">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:uri format="{0}">
+ <bc:propertyRef key="swtbot.repository" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+ <rm:searchPath name="eclipse">
+ <rm:provider componentTypes="eclipse.feature,osgi.bundle"
+ readerType="p2" source="false" mutable="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:property key="buckminster.mutable" value="false" />
+ <rm:uri format="{0}">
+ <bc:propertyRef key="eclipse.target.platform" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+ <rm:searchPath name="juno">
+ <rm:provider componentTypes="eclipse.feature,osgi.bundle"
+ readerType="p2" source="false" mutable="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:property key="buckminster.mutable" value="false" />
+ <rm:uri format="{0}">
+ <bc:propertyRef key="eclipse.juno.target.platform" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+
+</rm:rmap>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/old/project.cquery b/releng/org.eclipse.emf.parsley.buckminster/old/project.cquery
new file mode 100644
index 000000000..c65b16d11
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/old/project.cquery
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cq:componentQuery xmlns:cq="http://www.eclipse.org/buckminster/CQuery-1.0" resourceMap="project.rmap">
+ <cq:rootRequest name="org.eclipse.emf.parsley.site" componentType="eclipse.feature"/>
+ <cq:property key="target.arch" value="*"/>
+ <cq:property key="target.os" value="*"/>
+ <cq:property key="target.ws" value="*"/>
+</cq:componentQuery>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/old/project.rmap b/releng/org.eclipse.emf.parsley.buckminster/old/project.rmap
new file mode 100644
index 000000000..740041c11
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/old/project.rmap
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rm:rmap xmlns:rm="http://www.eclipse.org/buckminster/RMap-1.0"
+ xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0">
+
+ <rm:property key="projects.location" value="${workspace.root}" />
+
+ <rm:searchPath name="emfparsley">
+ <rm:provider componentTypes="eclipse.feature,buckminster"
+ readerType="local" mutable="false">
+ <rm:uri format="{0}/releng/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/plugins/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/dsl/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="eclipse.feature" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/features/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/doc/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/examples/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/tests/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <!-- if we're inside the IDE, make sure to refer to project location since
+ they might not be in the same directory of the workspace -->
+ <rm:uri format="file:/{0}/../../devtools/xdoc/site">
+ <!-- in Windows we must make sure there are no \ characters otherwise
+ the p2 materializer will complain with a java.net.URISyntaxException -->
+ <bc:replace pattern="\\" quotePattern="false"
+ replacement="/">
+ <bc:propertyRef
+ key="project_loc:org.eclipse.emf.parsley.buckminster" />
+ </bc:replace>
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <!-- if we're headless, then we can refer to ${workspace.root} since projects
+ are in the same directory of the workspace -->
+ <rm:uri format="file:/{0}/devtools/xdoc/site">
+ <bc:replace pattern="\\" quotePattern="false"
+ replacement="/">
+ <bc:propertyRef key="projects.location" />
+ </bc:replace>
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+ <rm:locator pattern="^org\.eclipse\.emf\.parsley(?:\..+)?$"
+ searchPathRef="emfparsley" />
+ <rm:locator pattern="^org\.eclipse\.xtext\.xdoc(?:\..+)?$"
+ searchPathRef="emfparsley" />
+ <rm:locator pattern="^org\.eclipse\.emf\.examples\.library(?:\..+)?$"
+ searchPathRef="emfparsley" />
+
+</rm:rmap>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/old/target-platform-local.cquery b/releng/org.eclipse.emf.parsley.buckminster/old/target-platform-local.cquery
new file mode 100644
index 000000000..1fd631f88
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/old/target-platform-local.cquery
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cq:componentQuery xmlns:cq="http://www.eclipse.org/buckminster/CQuery-1.0" resourceMap="target-platform.rmap" properties="local-mirror.properties">
+ <cq:rootRequest name="org.eclipse.emf.parsley.buckminster" componentType="buckminster"/>
+ <cq:property key="target.arch" value="*"/>
+ <cq:property key="target.os" value="*"/>
+ <cq:property key="target.ws" value="*"/>
+ <cq:advisorNode namePattern=".*" useTargetPlatform="false"/>
+</cq:componentQuery>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/old/target-platform.cquery b/releng/org.eclipse.emf.parsley.buckminster/old/target-platform.cquery
new file mode 100644
index 000000000..ed41d6959
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/old/target-platform.cquery
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cq:componentQuery xmlns:cq="http://www.eclipse.org/buckminster/CQuery-1.0" resourceMap="target-platform.rmap">
+ <cq:rootRequest name="org.eclipse.emf.parsley.buckminster" componentType="buckminster"/>
+ <cq:property key="target.arch" value="*"/>
+ <cq:property key="target.os" value="*"/>
+ <cq:property key="target.ws" value="*"/>
+ <cq:advisorNode namePattern=".*" useTargetPlatform="false"/>
+</cq:componentQuery>
diff --git a/releng/org.eclipse.emf.parsley.buckminster/old/target-platform.rmap b/releng/org.eclipse.emf.parsley.buckminster/old/target-platform.rmap
new file mode 100644
index 000000000..9bfe4af0f
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.buckminster/old/target-platform.rmap
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rm:rmap xmlns:rm="http://www.eclipse.org/buckminster/RMap-1.0"
+ xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0">
+
+ <rm:property key="projects.location" value="${workspace.root}" />
+ <rm:property key="eclipse.download" value="http://download.eclipse.org" />
+ <rm:property key="xtext.p2.repository"
+ value="${eclipse.download}/modeling/tmf/xtext/updates/composite/releases" />
+ <rm:property key="eclipse.target.platform" value="${eclipse.download}/releases/juno" />
+ <rm:property key="swtbot.repository"
+ value="${eclipse.download}/technology/swtbot/helios/dev-build/update-site" />
+ <rm:property key="orbit.repository"
+ value="${eclipse.download}/tools/orbit/downloads/drops/R20120526062928/repository" />
+
+ <rm:redirect pattern="^org\.eclipse\.emf\.parsley(?:\..+)?$"
+ href="project.rmap" />
+ <rm:redirect pattern="^org\.eclipse\.xtext\.xdoc(?:\..+)?$"
+ href="project.rmap" />
+ <rm:redirect pattern="^org\.eclipse\.emf\.examples\.library(?:\..+)?$"
+ href="project.rmap" />
+
+ <rm:locator
+ pattern="^org\.eclipse\.(?:xtext|xpand|xtend|xtend2|emf\.mwe|emf\.mwe2)(?:\..+)?$"
+ searchPathRef="xtext" />
+ <rm:locator pattern="^com\.google.*" searchPathRef="xtext" />
+ <rm:locator pattern="^org\.antlr.*" searchPathRef="xtext" />
+ <rm:locator pattern="javax.inject" searchPathRef="xtext" />
+ <rm:locator pattern="^org\.hamcrest*" searchPathRef="orbit" />
+ <rm:locator pattern="^org\.apache*" searchPathRef="orbit" />
+ <rm:locator pattern="^org\.eclipse\.(?:swtbot)(?:\..+)?$"
+ searchPathRef="swtbot" />
+ <rm:locator searchPathRef="eclipse" />
+
+ <rm:searchPath name="xtext">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:uri format="{0}">
+ <bc:propertyRef key="xtext.p2.repository" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+ <rm:searchPath name="swtbot">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:uri format="{0}">
+ <bc:propertyRef key="swtbot.repository" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+ <rm:searchPath name="orbit">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:uri format="{0}">
+ <bc:propertyRef key="orbit.repository" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+ <rm:searchPath name="eclipse">
+ <rm:provider componentTypes="eclipse.feature,osgi.bundle"
+ readerType="p2" source="false" mutable="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:property key="buckminster.mutable" value="false" />
+ <rm:uri format="{0}">
+ <bc:propertyRef key="eclipse.target.platform" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+</rm:rmap>
diff --git a/releng/org.eclipse.emf.parsley.examples.mail.product.site/.project b/releng/org.eclipse.emf.parsley.examples.mail.product.site/.project
new file mode 100644
index 000000000..dbe6bd270
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.examples.mail.product.site/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.examples.mail.product.site</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster.cspex b/releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster.cspex
new file mode 100644
index 000000000..3f776ba68
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster.cspex
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cspecExtension
+ xmlns:com="http://www.eclipse.org/buckminster/Common-1.0"
+ xmlns="http://www.eclipse.org/buckminster/CSpec-1.0">
+
+ <actions>
+ <public name="create.product" actor="ant">
+ <actorProperties>
+ <property key="buildFile" value="build/product.ant"/>
+ <property key="targets" value="create.product"/>
+ </actorProperties>
+ <properties>
+ <property key="profile" value="EmfComponentsMailProfile"/>
+ <property key="iu" value="org.eclipse.emf.parsley.examples.mail.rcp.product"/>
+ </properties>
+ <prerequisites alias="repository">
+ <attribute name="site.p2"/>
+ </prerequisites>
+ <products alias="destination" base="${buckminster.output}">
+ <path path="EmfComponentsMail.${target.ws}.${target.os}.${target.arch}/"/>
+ </products>
+ </public>
+ <public name="create.product.zip" actor="ant">
+ <actorProperties>
+ <property key="buildFileId" value="buckminster.pdetasks"/>
+ <property key="targets" value="create.zip"/>
+ </actorProperties>
+ <prerequisites alias="action.requirements">
+ <attribute name="create.product"/>
+ </prerequisites>
+ <products alias="action.output" base="${buckminster.output}">
+ <path path="EmfComponentsMail.${target.ws}.${target.os}.${target.arch}.zip"/>
+ </products>
+ </public>
+ </actions>
+</cspecExtension>
diff --git a/releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster_linux32.properties b/releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster_linux32.properties
new file mode 100644
index 000000000..c36420db6
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster_linux32.properties
@@ -0,0 +1,12 @@
+# Where all the output should go
+buckminster.output.root=${user.home}/tmp/hellobuck
+# Where the temp files should go
+buckminster.temp.root=${user.home}/tmp/buildhellobuck
+# How .qualifier in versions should be replaced
+qualifier.replacement.*=generator:lastRevision
+
+#cbi.include.source=false
+
+target.os=linux
+target.ws=gtk
+target.arch=x86
diff --git a/releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster_linux64.properties b/releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster_linux64.properties
new file mode 100644
index 000000000..484d04e2d
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster_linux64.properties
@@ -0,0 +1,12 @@
+# Where all the output should go
+buckminster.output.root=${user.home}/tmp/emfparsleymail
+# Where the temp files should go
+buckminster.temp.root=${user.home}/tmp/buildemfparsleymail
+# How .qualifier in versions should be replaced
+qualifier.replacement.*=generator:lastRevision
+
+#cbi.include.source=false
+
+target.os=linux
+target.ws=gtk
+target.arch=x86_64
diff --git a/releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster_win32.properties b/releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster_win32.properties
new file mode 100644
index 000000000..ccb6387b2
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster_win32.properties
@@ -0,0 +1,10 @@
+# Where all the output should go
+buckminster.output.root=${user.home}/tmp/hellobuck
+# Where the temp files should go
+buckminster.temp.root=${user.home}/tmp/buildhellobuck
+# How .qualifier in versions should be replaced
+qualifier.replacement.*=generator:lastRevision
+
+target.os=win32
+target.ws=win32
+target.arch=x86 \ No newline at end of file
diff --git a/releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster_win64.properties b/releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster_win64.properties
new file mode 100644
index 000000000..8ae75806e
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.examples.mail.product.site/buckminster_win64.properties
@@ -0,0 +1,10 @@
+# Where all the output should go
+buckminster.output.root=${user.home}/tmp/hellobuck
+# Where the temp files should go
+buckminster.temp.root=${user.home}/tmp/buildhellobuck
+# How .qualifier in versions should be replaced
+qualifier.replacement.*=generator:lastRevision
+
+target.os=win32
+target.ws=win32
+target.arch=x86_64 \ No newline at end of file
diff --git a/releng/org.eclipse.emf.parsley.examples.mail.product.site/build.properties b/releng/org.eclipse.emf.parsley.examples.mail.product.site/build.properties
new file mode 100644
index 000000000..64f93a9f0
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.examples.mail.product.site/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/releng/org.eclipse.emf.parsley.examples.mail.product.site/build/product.ant b/releng/org.eclipse.emf.parsley.examples.mail.product.site/build/product.ant
new file mode 100644
index 000000000..1e7b6f824
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.examples.mail.product.site/build/product.ant
@@ -0,0 +1,45 @@
+<project>
+ <pathconvert property="equinox.launcher.jar">
+ <first count="1">
+ <sort>
+ <fileset dir="${eclipse.home}/plugins" includes="**/org.eclipse.equinox.launcher_*.jar"/>
+ <reverse xmlns="antlib:org.apache.tools.ant.types.resources.comparators">
+ <date/>
+ </reverse>
+ </sort>
+ </first>
+ </pathconvert>
+
+ <target name="create.product">
+ <property name="destination" location="${sp:destination}"/>
+ <delete dir="${destination}"/>
+ <makeurl property="repository" file="${sp:repository}"/>
+ <mkdir dir="${destination}"/>
+ <echoproperties/>
+ <echo message="${equinox.launcher.jar}"/>
+ <echo message="${repository}"/>
+ <echo message="${destination}"/>
+ <java jar="${equinox.launcher.jar}" fork="true" failonerror="true" >
+ <arg value="-application"/>
+ <arg value="org.eclipse.equinox.p2.director"/>
+ <arg value="-repository"/>
+ <arg value="${repository}"/>
+ <arg value="-destination"/>
+ <arg value="${destination}"/>
+ <arg value="-profile"/>
+ <arg value="${profile}"/>
+ <arg value="-profileProperties" />
+ <arg value="org.eclipse.update.install.features=true" />
+ <arg value="-installIU"/>
+ <arg value="${iu}"/>
+ <arg value="-p2.os" />
+ <arg value="${target.os}" />
+ <arg value="-p2.ws" />
+ <arg value="${target.ws}" />
+ <arg value="-p2.arch" />
+ <arg value="${target.arch}" />
+ <arg value="-consoleLog"/>
+ <!-- jvmarg value="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y"/ -->
+ </java>
+ </target>
+</project> \ No newline at end of file
diff --git a/releng/org.eclipse.emf.parsley.examples.mail.product.site/feature.xml b/releng/org.eclipse.emf.parsley.examples.mail.product.site/feature.xml
new file mode 100644
index 000000000..1266ffd96
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.examples.mail.product.site/feature.xml
@@ -0,0 +1,284 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.emf.parsley.examples.mail.product.site"
+ label="Emf Parsley Mail Example Product Site"
+ version="1.0.0.qualifier">
+
+ <description url="http://www.example.com/description">
+ [Enter Feature Description here.]
+ </description>
+
+ <copyright url="http://www.example.com/copyright">
+ [Enter Copyright Description here.]
+ </copyright>
+
+ <license url="http://www.example.com/license">
+ [Enter License Description here.]
+ </license>
+
+ <includes
+ id="org.eclipse.emf.parsley.examples.mail.product.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.rcp"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.platform"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.codegen"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.codegen.ecore"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.codegen.ecore.ui"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.codegen.ui"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.edit.ui"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.common"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.common.ui"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.ecore"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.jdt"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.examples.mail.rcp"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.codegen"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ui.forms"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.codegen.ecore.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.ecore"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.common"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.databinding.edit"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.antlr.runtime"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.apache.log4j"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.apache.commons.logging"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.xtext.xbase.lib"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.ecore.edit"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="com.google.guava"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="com.google.inject"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.databinding"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.edit"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.ecore.xmi"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.ecore.change"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.apache.commons.cli"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.apache.commons.lang"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.rcp"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.core.resources"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.core.filesystem"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.dsl"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.views"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.runtime"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.debug.core"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.common"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.runtime.common"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.views.common"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/org.eclipse.emf.parsley.examples.mail.product.site/old/bigger_feature.xml_old b/releng/org.eclipse.emf.parsley.examples.mail.product.site/old/bigger_feature.xml_old
new file mode 100644
index 000000000..96ecfd067
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.examples.mail.product.site/old/bigger_feature.xml_old
@@ -0,0 +1,361 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.emf.parsley.examples.mail.product.site"
+ label="Emf Components Mail Example Product Site"
+ version="1.0.0.qualifier">
+
+ <description url="http://www.example.com/description">
+ [Enter Feature Description here.]
+ </description>
+
+ <copyright url="http://www.example.com/copyright">
+ [Enter Copyright Description here.]
+ </copyright>
+
+ <license url="http://www.example.com/license">
+ [Enter License Description here.]
+ </license>
+
+ <includes
+ id="org.eclipse.emf.parsley.examples.mail.product.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.rcp"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.platform"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.codegen"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.codegen.ecore"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.codegen.ecore.ui"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.codegen.ui"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.edit.ui"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.common"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.common.ui"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.jdt"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.ecore"
+ version="0.0.0"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.examples.mail.rcp"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.codegen"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.ui.forms"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.codegen.ecore.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.xtext"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.xtext.generator"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.ecore"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.xtext.util"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.common"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.databinding.edit"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.antlr.runtime"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.apache.log4j"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.apache.commons.logging"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.xtext.common.types"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.xtext.xbase.lib"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.ecore.edit"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="com.google.guava"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="com.google.inject"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.databinding"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.edit"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.ecore.xmi"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.ecore.change"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.xtend"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.xtext.ecore"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.xpand"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.mwe.core"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.xtend.typesystem.emf"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.apache.commons.cli"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.apache.commons.lang"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.mwe2.runtime"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.mwe.utils"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.rcp"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.xtext.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.core.resources"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.core.filesystem"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.dsl"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.views"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.parsley.xtext"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.jdt.core"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.jdt.launching"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.debug.core"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/releng/org.eclipse.emf.parsley.rap.buckminster/.project b/releng/org.eclipse.emf.parsley.rap.buckminster/.project
new file mode 100644
index 000000000..7e4b10b49
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.rap.buckminster/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.rap.buckminster</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ </natures>
+</projectDescription>
diff --git a/releng/org.eclipse.emf.parsley.rap.buckminster/aggregator/kepler-cdo-rap-mirror.b3aggr b/releng/org.eclipse.emf.parsley.rap.buckminster/aggregator/kepler-cdo-rap-mirror.b3aggr
new file mode 100644
index 000000000..b9d8d0aa7
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.rap.buckminster/aggregator/kepler-cdo-rap-mirror.b3aggr
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<aggregator:Aggregation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:aggregator="http://www.eclipse.org/b3/2011/aggregator/1.1.0" description="Mirror for EMF Parsley RAP Target Platform" label="Mirror for EMF Parsley RAP Target Platform" buildRoot="${user.home}/mirror/kepler-cdo-rap">
+ <validationSets label="main">
+ <contributions label="Kepler RCP">
+ <repositories location="http://download.eclipse.org/releases/kepler">
+ <bundles name="org.apache.log4j"/>
+ <features name="org.eclipse.emf.databinding.edit.feature.group"/>
+ <features name="org.eclipse.emf.rap.sdk.feature.group"/>
+ <features name="org.eclipse.rap.sdk.feature.feature.group"/>
+ </repositories>
+ </contributions>
+ <contributions description="Xtext Releases" label="Xtext Releases">
+ <repositories location="http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases">
+ <bundles name="com.google.guava"/>
+ <bundles name="com.google.inject"/>
+ <bundles name="javax.inject"/>
+ </repositories>
+ </contributions>
+ </validationSets>
+ <configurations/>
+ <configurations architecture="x86_64"/>
+ <configurations operatingSystem="linux" windowSystem="gtk"/>
+ <configurations operatingSystem="linux" windowSystem="gtk" architecture="x86_64"/>
+ <configurations operatingSystem="linux" windowSystem="gtk" architecture="ppc"/>
+ <configurations operatingSystem="linux" windowSystem="gtk" architecture="ppc64"/>
+ <configurations operatingSystem="linux" windowSystem="gtk" architecture="s390"/>
+ <configurations operatingSystem="linux" windowSystem="gtk" architecture="s390x"/>
+ <configurations operatingSystem="solaris" windowSystem="gtk" architecture="sparc"/>
+ <configurations operatingSystem="solaris" windowSystem="gtk"/>
+ <configurations operatingSystem="macosx" windowSystem="cocoa"/>
+ <configurations operatingSystem="macosx" windowSystem="cocoa" architecture="x86_64"/>
+ <configurations operatingSystem="aix" windowSystem="gtk" architecture="ppc64"/>
+ <configurations operatingSystem="aix" windowSystem="gtk" architecture="ppc"/>
+ <configurations operatingSystem="hpux" windowSystem="gtk" architecture="ia64_32"/>
+ <configurations operatingSystem="hpux" windowSystem="gtk" architecture="ia64"/>
+ <customCategories identifier="custom.rcp.components" label="Custom RCP Components"/>
+</aggregator:Aggregation>
diff --git a/releng/org.eclipse.emf.parsley.rap.buckminster/buckminster.cspec b/releng/org.eclipse.emf.parsley.rap.buckminster/buckminster.cspec
new file mode 100644
index 000000000..9c1cdb844
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.rap.buckminster/buckminster.cspec
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cs:cspec xmlns:cs="http://www.eclipse.org/buckminster/CSpec-1.0" name="org.eclipse.emf.parsley.rap.buckminster" componentType="buckminster" version="1.0.0">
+ <cs:dependencies>
+ <cs:dependency name="org.eclipse.emf.parsley.buckminster.common" componentType="buckminster"/>
+ <cs:dependency name="org.eclipse.emf.parsley.rap.site" componentType="eclipse.feature"/>
+ <cs:dependency name="org.apache.log4j" componentType="osgi.bundle"/>
+ <cs:dependency name="org.eclipse.emf.databinding.edit" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.emf.rap.sdk" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.rap.runtime" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.rap.runtime.requirements" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.emf.parsley.examples.rap.feature" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.xtext.xbase.lib" componentType="osgi.bundle"/>
+ <cs:dependency name="org.apache.commons.logging" componentType="osgi.bundle"/>
+ </cs:dependencies>
+</cs:cspec>
diff --git a/releng/org.eclipse.emf.parsley.rap.buckminster/build-local.cquery b/releng/org.eclipse.emf.parsley.rap.buckminster/build-local.cquery
new file mode 100644
index 000000000..556de5d8e
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.rap.buckminster/build-local.cquery
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cq:componentQuery xmlns:cq="http://www.eclipse.org/buckminster/CQuery-1.0" resourceMap="build.rmap" properties="build-local.properties">
+ <cq:rootRequest name="org.eclipse.emf.parsley.rap.buckminster" componentType="buckminster"/>
+ <cq:property key="target.arch" value="*"/>
+ <cq:property key="target.os" value="*"/>
+ <cq:property key="target.ws" value="*"/>
+ <cq:advisorNode namePattern=".*" useTargetPlatform="false"/>
+</cq:componentQuery>
diff --git a/releng/org.eclipse.emf.parsley.rap.buckminster/build-local.properties b/releng/org.eclipse.emf.parsley.rap.buckminster/build-local.properties
new file mode 100644
index 000000000..07a1ff892
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.rap.buckminster/build-local.properties
@@ -0,0 +1,11 @@
+# the base of the local eclipse mirrors
+# eclipse.download=file:${user.home}/eclipsemirror
+
+# aggregated mirrored repositories
+xtext.p2.repository=file:/${user.home}/mirror/kepler-cdo-rap/final
+eclipse.target.platform=file:/${user.home}/mirror/kepler-cdo-rap/final
+swtbot.repository=file:/${user.home}/mirror/kepler-cdo-rap/final
+
+# How .qualifier in versions should be replaced
+qualifier.replacement.*=generator:lastModified
+generator.lastModified.format='v'yyyyMMdd-HHmm
diff --git a/releng/org.eclipse.emf.parsley.rap.buckminster/build.ant b/releng/org.eclipse.emf.parsley.rap.buckminster/build.ant
new file mode 100644
index 000000000..a00c3d864
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.rap.buckminster/build.ant
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Buckminster Headless - build
+
+ buckminster.home must be specified on the command line, e.g.,
+ ant -Dbuckminster.home=/home/bettini/buckminster -f build.ant
+
+ Properties:
+ WORKSPACE Eclipse workspace location, or hudson job workspace
+ build.root Where to build? WARNING: This folder will be cleaned up, so do not point to user.home or something important
+ Default: ${WORKSPACE}/buildroot
+ buckminster.home Buckminster headless to use. See http://www.eclipse.org/buckminster/downloads.html
+ projects.location Where to find projects to build?
+ Default: ${WORKSPACE}
+ eclipse.download The base URL for all the repositories in the RMAP
+ Default: http://download.eclipse.org
+-->
+<project name="Buckminster Headless" default="buckminster">
+
+ <!-- set these properties before importing common.ant to have precedence -->
+ <property name="WORKSPACE" location="${ant.file}/../../../" />
+ <property name="build.root" location="${WORKSPACE}/buildroot-RAP" />
+
+ <import file="${ant.file}/../../org.eclipse.emf.parsley.buckminster.common/common.ant" as="common" />
+
+ <target name="buckminster" depends="common.cleanup,install.buckminster.headless" description="description">
+
+ <fail unless="buckminster.home" message="buckminster.home must be specified." />
+
+ <property name="resolve.commands.file" location="${projects.location}/releng/org.eclipse.emf.parsley.rap.buckminster/headless-resolve-commands.txt" />
+ <property name="perform.commands.file" location="${projects.location}/releng/org.eclipse.emf.parsley.rap.buckminster/headless-perform-commands.txt" />
+ <property name="build.properties" location="${projects.location}/releng/org.eclipse.emf.parsley.rap.buckminster/build.properties" />
+
+ <echo message="IMPORTANT: Populating an empty target platform may took over 10 minutes." />
+ <echo message="eclipse.download: ${eclipse.download}" />
+ <echo message="build.properties: ${build.properties}" />
+
+ <run_buckminster commandsfile="${resolve.commands.file}" propertiesfile="${build.properties}" />
+ <run_buckminster commandsfile="${perform.commands.file}" propertiesfile="${build.properties}" />
+
+ <echo message=" " />
+ <echo message="Updatesite output in: ${build.root}/buckminster.output/org.eclipse.emf.parsley.rap.site_*-eclipse.feature/site.p2/" />
+ </target>
+
+ <target name="b3_aggregation" depends="install.b3.headless" description="description">
+
+ <property name="build.model" location="${projects.location}/releng/org.eclipse.emf.parsley.rap.buckminster/aggregator/kepler-cdo-rap-mirror.b3aggr" />
+
+ <echo message="IMPORTANT: Mirror sggregation may took over 10 minutes." />
+ <echo message="build.model: ${build.model}" />
+
+ <run_b3_aggregator buildmodel="${build.model}" />
+
+ <echo message=" " />
+ <echo message="Aggregated mirror in: ${user.home}/mirror/kepler-cdo-rap/final" />
+ </target>
+
+</project>
diff --git a/releng/org.eclipse.emf.parsley.rap.buckminster/build.cquery b/releng/org.eclipse.emf.parsley.rap.buckminster/build.cquery
new file mode 100644
index 000000000..87dc944d9
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.rap.buckminster/build.cquery
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cq:componentQuery xmlns:cq="http://www.eclipse.org/buckminster/CQuery-1.0" resourceMap="build.rmap">
+ <cq:rootRequest name="org.eclipse.emf.parsley.rap.buckminster" componentType="buckminster"/>
+ <cq:property key="target.arch" value="*"/>
+ <cq:property key="target.os" value="*"/>
+ <cq:property key="target.ws" value="*"/>
+ <cq:advisorNode namePattern=".*" useTargetPlatform="false"/>
+</cq:componentQuery>
diff --git a/releng/org.eclipse.emf.parsley.rap.buckminster/build.properties b/releng/org.eclipse.emf.parsley.rap.buckminster/build.properties
new file mode 100644
index 000000000..976dbe225
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.rap.buckminster/build.properties
@@ -0,0 +1,7 @@
+# How .qualifier in versions should be replaced
+qualifier.replacement.*=generator:lastModified
+generator.lastModified.format='v'yyyyMMdd-HHmm
+
+target.os=*
+target.ws=*
+target.arch=* \ No newline at end of file
diff --git a/releng/org.eclipse.emf.parsley.rap.buckminster/build.rmap b/releng/org.eclipse.emf.parsley.rap.buckminster/build.rmap
new file mode 100644
index 000000000..a24e5893d
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.rap.buckminster/build.rmap
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rm:rmap xmlns:rm="http://www.eclipse.org/buckminster/RMap-1.0"
+ xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0">
+
+ <rm:property key="projects.location" value="${workspace.root}" />
+
+ <rm:property key="git.clone.dest" value="${user.home}/git/emf-components" />
+
+ <rm:property key="eclipse.download" value="http://download.eclipse.org" />
+ <rm:property key="xtext.p2.repository"
+ value="${eclipse.download}/modeling/tmf/xtext/updates/composite/releases" />
+ <rm:property key="eclipse.target.platform" value="${eclipse.download}/releases/juno" />
+
+ <rm:locator pattern="^org\.eclipse\.emf\.parsley(?:\..+)?$"
+ searchPathRef="emfcomponents" />
+
+ <rm:locator pattern="^com\.google.*" searchPathRef="xtext" />
+ <rm:locator pattern="^org\.antlr.*" searchPathRef="xtext" />
+ <rm:locator pattern="javax.inject" searchPathRef="xtext" />
+ <rm:locator searchPathRef="eclipse" />
+
+ <rm:searchPath name="emfcomponents">
+ <rm:provider componentTypes="eclipse.feature,buckminster"
+ readerType="local" mutable="false">
+ <rm:uri format="{0}/releng/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/plugins/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/dsl/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="eclipse.feature" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/features/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/doc/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/examples/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <rm:uri format="{0}/tests/{1}">
+ <bc:propertyRef key="projects.location" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+
+ <!-- if not found locally, take it from git -->
+
+ <rm:provider componentTypes="eclipse.feature,buckminster"
+ readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},releng/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},plugins/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="eclipse.feature" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},features/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},tests/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},dsl/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},examples/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle" readerType="git">
+ <rm:property key="git.remote.uri"
+ value="https://code.google.com/a/eclipselabs.org/p/emf-components" />
+ <rm:uri format="{0},doc/{1}">
+ <bc:propertyRef key="git.clone.dest" />
+ <bc:propertyRef key="buckminster.component" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+ <rm:searchPath name="xdoc">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <!-- if we're inside the IDE, make sure to refer to project location since
+ they might not be in the same directory of the workspace -->
+ <rm:uri format="file:/{0}/../../devtools/xdoc/site">
+ <!-- in Windows we must make sure there are no \ characters otherwise
+ the p2 materializer will complain with a java.net.URISyntaxException -->
+ <bc:replace pattern="\\" quotePattern="false"
+ replacement="/">
+ <bc:propertyRef
+ key="project_loc:org.eclipse.emf.parsley.buckminster" />
+ </bc:replace>
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <!-- if we're headless, then we can refer to ${workspace.root} since projects
+ are in the same directory of the workspace -->
+ <rm:uri format="file:/{0}/devtools/xdoc/site">
+ <bc:replace pattern="\\" quotePattern="false"
+ replacement="/">
+ <bc:propertyRef key="projects.location" />
+ </bc:replace>
+ </rm:uri>
+ </rm:provider>
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:uri
+ format="http://emf-components.eclipselabs.org.codespot.com/git/devtools/xdoc/site">
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+ <rm:searchPath name="xtext">
+ <rm:provider componentTypes="osgi.bundle,eclipse.feature"
+ readerType="p2" source="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:uri format="{0}">
+ <bc:propertyRef key="xtext.p2.repository" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+ <rm:searchPath name="eclipse">
+ <rm:provider componentTypes="eclipse.feature,osgi.bundle"
+ readerType="p2" source="false" mutable="false">
+ <rm:property key="buckminster.source" value="false" />
+ <rm:property key="buckminster.mutable" value="false" />
+ <rm:uri format="{0}">
+ <bc:propertyRef key="eclipse.target.platform" />
+ </rm:uri>
+ </rm:provider>
+ </rm:searchPath>
+
+
+</rm:rmap>
diff --git a/releng/org.eclipse.emf.parsley.rap.buckminster/headless-perform-commands.txt b/releng/org.eclipse.emf.parsley.rap.buckminster/headless-perform-commands.txt
new file mode 100644
index 000000000..7861edd33
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.rap.buckminster/headless-perform-commands.txt
@@ -0,0 +1,3 @@
+build
+
+perform -D target.os=* -D target.ws=* -D target.arch=* org.eclipse.emf.parsley.rap.site#site.p2 \ No newline at end of file
diff --git a/releng/org.eclipse.emf.parsley.rap.buckminster/headless-resolve-commands.txt b/releng/org.eclipse.emf.parsley.rap.buckminster/headless-resolve-commands.txt
new file mode 100644
index 000000000..2588472e0
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.rap.buckminster/headless-resolve-commands.txt
@@ -0,0 +1,2 @@
+setpref targetPlatformPath="${target.platform}"
+resolve "${projects.location}/releng/org.eclipse.emf.parsley.rap.buckminster/build.cquery"
diff --git a/releng/org.eclipse.emf.parsley.rap.buckminster/launches/RAP build.ant using aggregated mirror.launch b/releng/org.eclipse.emf.parsley.rap.buckminster/launches/RAP build.ant using aggregated mirror.launch
new file mode 100644
index 000000000..0e50bee7b
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.rap.buckminster/launches/RAP build.ant using aggregated mirror.launch
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.ant.AntLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.rap.buckminster/build.ant"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ant.internal.launching.remote.InternalAntRunner"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.rap.buckminster"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.emf.parsley.rap.buckminster/build.ant}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-Dbuild.properties=${project_loc:org.eclipse.emf.parsley.rap.buckminster}/build-local.properties"/>
+<stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>
+</launchConfiguration>
diff --git a/releng/org.eclipse.emf.parsley.rap.site/.project b/releng/org.eclipse.emf.parsley.rap.site/.project
new file mode 100644
index 000000000..fb84a7abc
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.rap.site/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.rap.site</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/releng/org.eclipse.emf.parsley.rap.site/buckminster.properties b/releng/org.eclipse.emf.parsley.rap.site/buckminster.properties
new file mode 100644
index 000000000..bb6cef126
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.rap.site/buckminster.properties
@@ -0,0 +1,16 @@
+# Where all the output should go
+buckminster.output.root=${user.home}/tmp/emf-components-rap/buckminster.output
+# Where the temp files should go
+buckminster.temp.root=${user.home}/tmp/emf-components-rap/buckminster.temp
+# How .qualifier in versions should be replaced
+# get the build timestamp instead of time of last modified resource
+qualifier.replacement.*=generator:lastModified
+generator.lastModified.format='v'yyyyMMdd-HHmm
+
+# alternative: get the build timestamp instead of time of last modified resource
+# qualifier.replacement.*=generator:buildTimestamp
+# generator.buildTimestamp.format='v'yyyyMMdd-HHmm
+
+target.os=*
+target.ws=*
+target.arch=* \ No newline at end of file
diff --git a/releng/org.eclipse.emf.parsley.rap.site/build.properties b/releng/org.eclipse.emf.parsley.rap.site/build.properties
new file mode 100644
index 000000000..64f93a9f0
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.rap.site/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/releng/org.eclipse.emf.parsley.rap.site/category.xml b/releng/org.eclipse.emf.parsley.rap.site/category.xml
new file mode 100644
index 000000000..08cf01ed3
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.rap.site/category.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+ <feature id="org.eclipse.emf.parsley.sdk">
+ <category name="emfcomponents.rap.category"/>
+ </feature>
+
+ <feature id="org.eclipse.emf.parsley.sdk.source">
+ <category name="emfcomponents.rap.category.source"/>
+ </feature>
+
+ <category-def name="emfcomponents.rap.category" label="Emf Components RAP">
+ <description>
+ Emf Components RAP
+ </description>
+ </category-def>
+ <category-def name="emfcomponents.rap.category.source" label="Emf Components RAP Sources">
+ <description>
+ Emf Components RAP (Sources)
+ </description>
+ </category-def>
+</site>
diff --git a/releng/org.eclipse.emf.parsley.rap.site/feature.xml b/releng/org.eclipse.emf.parsley.rap.site/feature.xml
new file mode 100644
index 000000000..462b861ff
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.rap.site/feature.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.emf.parsley.rap.site"
+ label="Emf Components RAP Site"
+ version="0.1.0.qualifier">
+
+ <description url="http://code.google.com/a/eclipselabs.org/p/emf-components/">
+ Working with EMF a developer realizes that all the information are available for building basic UI.
+
+A lightweight framework that allows easy and quick development of EMF-based Applications. Can be configured to use all kind of EMF persistence implementations (XMI, Teneo, CDO).
+
+It aims at providing a set of Components like Trees, Tables and Detail Forms that manage the model with the introspective EMF capabilities. Using these components you can easily build forms, viewer or editors. The framework provides basic UI implementations which are customizable with Injection mechanism (based on Google Guice).
+ </description>
+
+ <copyright url="http://www.example.com/copyright">
+ [Enter Copyright Description here.]
+ </copyright>
+
+ <license url="http://www.eclipse.org/legal/epl-v10.html">
+ Made available under Eclipse Public License v 1.0
+ </license>
+
+ <includes
+ id="org.eclipse.emf.parsley.rap.sdk"
+ version="0.0.0"/>
+
+</feature>
diff --git a/releng/org.eclipse.emf.parsley.site/.project b/releng/org.eclipse.emf.parsley.site/.project
new file mode 100644
index 000000000..8bec8574a
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.site/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.site</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/releng/org.eclipse.emf.parsley.site/README.txt b/releng/org.eclipse.emf.parsley.site/README.txt
new file mode 100644
index 000000000..b8f3ece63
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.site/README.txt
@@ -0,0 +1 @@
+Build with Buckminster \ No newline at end of file
diff --git a/releng/org.eclipse.emf.parsley.site/buckminster.cspex b/releng/org.eclipse.emf.parsley.site/buckminster.cspex
new file mode 100644
index 000000000..25c331ff8
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.site/buckminster.cspex
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cspecExtension
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0"
+ xmlns="http://www.eclipse.org/buckminster/CSpec-1.0">
+ <dependencies>
+ <dependency name="org.eclipse.emf.parsley.cdo.tests"
+ componentType="osgi.bundle" />
+ <dependency name="org.eclipse.emf.parsley.tests"
+ componentType="osgi.bundle" />
+ <dependency name="org.eclipse.emf.parsley.dsl.tests"
+ componentType="osgi.bundle" />
+ <dependency name="org.eclipse.emf.parsley.tests.swtbot.feature"
+ componentType="eclipse.feature" />
+ <dependency name="org.eclipse.emf.parsley.examples.mail.product.site"
+ componentType="eclipse.feature" />
+ <dependency name="org.eclipse.emf.parsley.examples.firstexample"
+ componentType="osgi.bundle" />
+ </dependencies>
+ <generators>
+ <!-- Place your Generators here -->
+ </generators>
+ <artifacts>
+ <!-- Place your Artifacts here -->
+ </artifacts>
+ <actions>
+ <!-- Place your Actions here -->
+ </actions>
+ <groups>
+ <!-- Place your Groups here -->
+ </groups>
+ <alterDependencies>
+ <!-- Place your Dependency alterations here -->
+ </alterDependencies>
+ <alterArtifacts>
+ <!-- Place your Artifact alterations here -->
+ </alterArtifacts>
+ <alterActions>
+ <!-- Place your Action alterations here -->
+ </alterActions>
+ <alterGroups>
+ <!-- Place your Group alterations here -->
+ </alterGroups>
+</cspecExtension>
diff --git a/releng/org.eclipse.emf.parsley.site/buckminster.properties b/releng/org.eclipse.emf.parsley.site/buckminster.properties
new file mode 100644
index 000000000..bfacad930
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.site/buckminster.properties
@@ -0,0 +1,16 @@
+# Where all the output should go
+buckminster.output.root=${user.home}/tmp/emfparsley/buckminster.output
+# Where the temp files should go
+buckminster.temp.root=${user.home}/tmp/emfparsley/buckminster.temp
+# How .qualifier in versions should be replaced
+# get the build timestamp instead of time of last modified resource
+qualifier.replacement.*=generator:lastModified
+generator.lastModified.format='v'yyyyMMdd-HHmm
+
+# alternative: get the build timestamp instead of time of last modified resource
+# qualifier.replacement.*=generator:buildTimestamp
+# generator.buildTimestamp.format='v'yyyyMMdd-HHmm
+
+target.os=*
+target.ws=*
+target.arch=* \ No newline at end of file
diff --git a/releng/org.eclipse.emf.parsley.site/build.properties b/releng/org.eclipse.emf.parsley.site/build.properties
new file mode 100644
index 000000000..64f93a9f0
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.site/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/releng/org.eclipse.emf.parsley.site/category.xml b/releng/org.eclipse.emf.parsley.site/category.xml
new file mode 100644
index 000000000..28a7f2c73
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.site/category.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+ <feature id="org.eclipse.emf.parsley.feature">
+ <category name="emfparsley.category"/>
+ </feature>
+ <feature id="org.eclipse.emf.parsley.examples.feature">
+ <category name="emfparsley.category"/>
+ </feature>
+ <feature id="org.eclipse.emf.parsley.cdo.feature">
+ <category name="emfparsley.category"/>
+ </feature>
+ <feature id="org.eclipse.emf.parsley.dsl.feature">
+ <category name="emfparsley.category"/>
+ </feature>
+
+ <feature id="org.eclipse.emf.parsley.source.feature">
+ <category name="emfparsley.category.source"/>
+ </feature>
+ <feature id="org.eclipse.emf.parsley.examples.source.feature">
+ <category name="emfparsley.category.source"/>
+ </feature>
+ <feature id="org.eclipse.emf.parsley.cdo.source.feature">
+ <category name="emfparsley.category.source"/>
+ </feature>
+ <feature id="org.eclipse.emf.parsley.dsl.source.feature">
+ <category name="emfparsley.category.source"/>
+ </feature>
+
+ <category-def name="emfparsley.category" label="Emf Parsley">
+ <description>
+ Emf Parsley
+ </description>
+ </category-def>
+ <category-def name="emfparsley.category.source" label="Emf Parsley Sources">
+ <description>
+ Emf Parsley (Sources)
+ </description>
+ </category-def>
+</site>
diff --git a/releng/org.eclipse.emf.parsley.site/feature.xml b/releng/org.eclipse.emf.parsley.site/feature.xml
new file mode 100644
index 000000000..598f13386
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.site/feature.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.emf.parsley.site"
+ label="Emf Parsley Site"
+ version="0.1.0.qualifier"
+ provider-name="RCP Vision">
+
+ <description url="http://www.eclipse.org/emfparsley">
+ Working with EMF a developer realizes that all the information are available for building basic UI.
+
+A lightweight framework that allows easy and quick development of EMF-based Applications. Can be configured to use all kind of EMF persistence implementations (XMI, Teneo, CDO).
+
+It aims at providing a set of Components like Trees, Tables and Detail Forms that manage the model with the introspective EMF capabilities. Using these components you can easily build forms, viewer or editors. The framework provides basic UI implementations which are customizable with Injection mechanism (based on Google Guice).
+ </description>
+
+ <copyright url="http://www.example.com/copyright">
+ [Enter Copyright Description here.]
+ </copyright>
+
+ <license url="http://www.eclipse.org/legal/epl-v10.html">
+ Made available under Eclipse Public License v 1.0
+ </license>
+
+ <includes
+ id="org.eclipse.emf.parsley.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.parsley.cdo.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.parsley.examples.feature"
+ version="0.0.0"/>
+
+ <includes
+ id="org.eclipse.emf.parsley.dsl.feature"
+ version="0.0.0"/>
+
+</feature>
diff --git a/releng/org.eclipse.emf.parsley.site/jenkins-commands-examples-rcp.txt b/releng/org.eclipse.emf.parsley.site/jenkins-commands-examples-rcp.txt
new file mode 100644
index 000000000..4aefac34f
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.site/jenkins-commands-examples-rcp.txt
@@ -0,0 +1,6 @@
+importtargetdefinition -A releng/org.eclipse.emf.parsley.target/juno-rcp.target
+import releng/org.eclipse.emf.parsley.site/site.cquery
+clean
+build
+perform -D target.os=win32 -D target.ws=win32 -D target.arch=x86 org.eclipse.emf.parsley.examples.mail.product.site#create.product.zip
+perform -D target.os=linux -D target.ws=gtk -D target.arch=x86_64 org.eclipse.emf.parsley.examples.mail.product.site#create.product.zip
diff --git a/releng/org.eclipse.emf.parsley.site/jenkins-commands.txt b/releng/org.eclipse.emf.parsley.site/jenkins-commands.txt
new file mode 100644
index 000000000..7a7dcd5da
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.site/jenkins-commands.txt
@@ -0,0 +1,10 @@
+importtargetdefinition -A releng/org.eclipse.emf.parsley.target/juno.target
+import releng/org.eclipse.emf.parsley.site/site.cquery
+clean
+build
+perform -D target.os=* -D target.ws=* -D target.arch=* org.eclipse.emf.parsley.site#buckminster.clean
+perform -D target.os=* -D target.ws=* -D target.arch=* org.eclipse.emf.parsley.site#site.p2.zip
+junit -l 'org.eclipse.emf.parsley.cdo.tests/CDOUriTests.launch' --stderr -o 'output/CDOUriTests_junit_result.xml'
+junit -l 'org.eclipse.emf.parsley.dsl.tests/EmfComponentsDslAllTests.launch' --stderr -o 'output/EmfComponentsDslAllTests_junit_result.xml'
+junit -l 'org.eclipse.emf.parsley.tests.swtbot/EmfComponentsSwtBotAllTests.launch' --stderr -o 'output/EmfComponentsSwtBotAllTests_junit_result.xml'
+#junit -l 'org.eclipse.emf.parsley.tests.swtbot/EmfComponentsDslWizardsTests.launch' --stderr -o 'output/EmfComponentsDslSwtBotAllTests_junit_result.xml'
diff --git a/releng/org.eclipse.emf.parsley.site/site.cquery b/releng/org.eclipse.emf.parsley.site/site.cquery
new file mode 100644
index 000000000..4f5adb7f8
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.site/site.cquery
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cq:componentQuery xmlns:cq="http://www.eclipse.org/buckminster/CQuery-1.0" resourceMap="site.rmap">
+ <cq:rootRequest name="org.eclipse.emf.parsley.site" componentType="eclipse.feature"/>
+</cq:componentQuery>
diff --git a/releng/org.eclipse.emf.parsley.site/site.rmap b/releng/org.eclipse.emf.parsley.site/site.rmap
new file mode 100644
index 000000000..06db19e35
--- /dev/null
+++ b/releng/org.eclipse.emf.parsley.site/site.rmap
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rmap xmlns="http://www.eclipse.org/buckminster/RMap-1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0">
+
+ <locator pattern="^org\.eclipse\.emf\.parsley(?:\..+)?$"
+ searchPathRef="emfparsley" />
+
+ <searchPath name="emfparsley">
+ <provider componentTypes="eclipse.feature" readerType="local"
+ mutable="false">
+ <uri format="{0}/releng/{1}">
+ <bc:propertyRef key="workspace.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <uri format="{0}/plugins/{1}">
+ <bc:propertyRef key="workspace.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <uri format="{0}/dsl/{1}">
+ <bc:propertyRef key="workspace.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <provider componentTypes="eclipse.feature" readerType="local"
+ mutable="false">
+ <uri format="{0}/features/{1}">
+ <bc:propertyRef key="workspace.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <uri format="{0}/doc/{1}">
+ <bc:propertyRef key="workspace.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <uri format="{0}/examples/{1}">
+ <bc:propertyRef key="workspace.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <provider componentTypes="osgi.bundle" readerType="local"
+ mutable="false">
+ <uri format="{0}/tests/{1}">
+ <bc:propertyRef key="workspace.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ </searchPath>
+</rmap>
diff --git a/tests/org.eclipse.emf.parsley.cdo.tests/.classpath b/tests/org.eclipse.emf.parsley.cdo.tests/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.cdo.tests/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/org.eclipse.emf.parsley.cdo.tests/.project b/tests/org.eclipse.emf.parsley.cdo.tests/.project
new file mode 100644
index 000000000..6288931f2
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.cdo.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.cdo.tests</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/tests/org.eclipse.emf.parsley.cdo.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emf.parsley.cdo.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.cdo.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/tests/org.eclipse.emf.parsley.cdo.tests/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emf.parsley.cdo.tests/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.cdo.tests/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/tests/org.eclipse.emf.parsley.cdo.tests/CDOUriTests.launch b/tests/org.eclipse.emf.parsley.cdo.tests/CDOUriTests.launch
new file mode 100644
index 000000000..451efc583
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.cdo.tests/CDOUriTests.launch
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.cdo.tests/src/org/eclipse/emf/parsley/cdo/tests/CDOUriTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.parsley.cdo.tests.CDOUriTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.cdo.tests"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.parsley.cdo.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.parsley.cdo.tests/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..210b4fa56
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.cdo.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMF Tree Editor CDO Tests
+Bundle-SymbolicName: org.eclipse.emf.parsley.cdo.tests
+Bundle-Version: 0.1.0.qualifier
+Bundle-Activator: org.eclipse.emf.parsley.cdo.tests.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.emf.parsley.cdo;bundle-version="0.1.0",
+ org.junit;bundle-version="4.0.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/tests/org.eclipse.emf.parsley.cdo.tests/build.properties b/tests/org.eclipse.emf.parsley.cdo.tests/build.properties
new file mode 100644
index 000000000..34d2e4d2d
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.cdo.tests/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/tests/org.eclipse.emf.parsley.cdo.tests/src/org/eclipse/emf/parsley/cdo/tests/Activator.java b/tests/org.eclipse.emf.parsley.cdo.tests/src/org/eclipse/emf/parsley/cdo/tests/Activator.java
new file mode 100644
index 000000000..461dd905b
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.cdo.tests/src/org/eclipse/emf/parsley/cdo/tests/Activator.java
@@ -0,0 +1,50 @@
+package org.eclipse.emf.parsley.cdo.tests;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.parsley.cdo.tests"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.cdo.tests/src/org/eclipse/emf/parsley/cdo/tests/CDOUriTests.java b/tests/org.eclipse.emf.parsley.cdo.tests/src/org/eclipse/emf/parsley/cdo/tests/CDOUriTests.java
new file mode 100644
index 000000000..a3582885a
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.cdo.tests/src/org/eclipse/emf/parsley/cdo/tests/CDOUriTests.java
@@ -0,0 +1,38 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.cdo.tests;
+
+import static org.junit.Assert.assertEquals;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.parsley.cdo.util.CDOURIData;
+import org.junit.Test;
+
+/**
+ * @author bettini
+ *
+ */
+public class CDOUriTests {
+
+ protected static final String CDO_LOCALHOST_2036_DEMO_RES2 = "cdo://localhost:2036/demo/res2";
+
+ @Test
+ public void testUri() {
+ URI uri = URI.createURI(CDO_LOCALHOST_2036_DEMO_RES2);
+ System.out.println(uri);
+ assertEquals("localhost:2036", uri.authority());
+ assertEquals("cdo", uri.scheme());
+ assertEquals("demo", uri.segment(0));
+ assertEquals("res2", uri.segment(1));
+ }
+
+ @Test
+ public void testCDOURIData() {
+ URI uri = URI.createURI(CDO_LOCALHOST_2036_DEMO_RES2);
+ CDOURIData data = CDOURIData.parse(uri);
+ assertEquals("localhost:2036", data.host);
+ assertEquals("demo", data.sessionName);
+ assertEquals("res2", data.resourceName);
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/.classpath b/tests/org.eclipse.emf.parsley.tests.swtbot/.classpath
new file mode 100644
index 000000000..5bb0a9645
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/.gitignore b/tests/org.eclipse.emf.parsley.tests.swtbot/.gitignore
new file mode 100644
index 000000000..24405ef15
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/.gitignore
@@ -0,0 +1 @@
+/screenshots
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/.project b/tests/org.eclipse.emf.parsley.tests.swtbot/.project
new file mode 100644
index 000000000..24b93907f
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.tests.swtbot</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emf.parsley.tests.swtbot/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 000000000..99f26c020
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emf.parsley.tests.swtbot/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsDslWizardsTests.launch b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsDslWizardsTests.launch
new file mode 100644
index 000000000..b56bc1d82
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsDslWizardsTests.launch
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<setAttribute key="additional_plugins"/>
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="featureDefaultLocation" value="workspace"/>
+<stringAttribute key="featurePluginResolution" value="workspace"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.tests.swtbot/xtend-gen/org/eclipse/emf/parsley/tests/EmfComponentsDslWizardsTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.parsley.tests.EmfComponentsDslWizardsTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.tests.swtbot"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx384m -XX:MaxPermSize=256m -Dorg.eclipse.swtbot.search.timeout=10000 -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="false"/>
+<setAttribute key="selected_features">
+<setEntry value="org.eclipse.emf.parsley.tests.swtbot.feature:default"/>
+</setAttribute>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="true"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsEditorTests.launch b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsEditorTests.launch
new file mode 100644
index 000000000..74a2fcb7e
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsEditorTests.launch
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.swtbot.eclipse.ui.launcher.JunitLaunchConfig">
+<setAttribute key="additional_plugins">
+<setEntry value="org.eclipse.emf.parsley.tests.swtbot:0.1.0.qualifier:default:false"/>
+</setAttribute>
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="deselected_workspace_plugins" value="ProvaView,ProvaWizard,it.rcpvision.cdo04.editor,it.rcpvision.cdo04.model,org.eclipse.emf.parsley.cdo,org.eclipse.emf.parsley.cdo.tests,org.eclipse.emf.parsley.cdoexample.masterdetail.table,org.eclipse.emf.parsley.cdoexample.masterdetail.tree,org.eclipse.emf.parsley.cdoexample.model,org.eclipse.emf.parsley.cdoexample.model.business,org.eclipse.emf.parsley.cdoexample.rcp,org.eclipse.emf.parsley.cdoexample.rcp.tests,org.eclipse.emf.parsley.tests.cdo.app,org.eclipse.emf.parsley.tests.cdo.model,org.eclipse.emf.parsley.tests.cdo.product,it.rcpvision.rcptutorial03.model.cdo"/>
+<stringAttribute key="featureDefaultLocation" value="workspace"/>
+<stringAttribute key="featurePluginResolution" value="workspace"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsEditorTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.parsley.tests.EmfComponentsEditorTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.tests.swtbot"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx384m -XX:MaxPermSize=256m -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<setAttribute key="selected_features">
+<setEntry value="org.eclipse.emf.parsley.tests.swtbot.feature:default"/>
+</setAttribute>
+<stringAttribute key="selected_target_plugins" value="ch.qos.logback.classic@default:default,ch.qos.logback.core@default:default,ch.qos.logback.slf4j@default:false,com.google.collect@default:default,com.google.guava@default:default,com.google.inject@default:default,com.ibm.icu@default:default,de.itemis.xtext.antlr@default:default,javax.activation@default:default,javax.inject@default:default,javax.mail@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,org.antlr.generator@default:default,org.antlr.runtime@default:default,org.apache.ant@default:default,org.apache.commons.cli@default:default,org.apache.commons.el@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.jasper@default:default,org.apache.log4j@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.apache.lucene.highlighter@default:default,org.apache.lucene.memory@default:default,org.apache.lucene.misc@default:default,org.apache.lucene.queries@default:default,org.apache.lucene.snowball@default:default,org.apache.lucene.spellchecker@default:default,org.apache.lucene@default:default,org.easymock@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.ui@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.linux.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.linux.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.emf.codegen.ecore@default:default,org.eclipse.emf.codegen@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.editor@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.mwe.core@default:default,org.eclipse.emf.mwe.utils@default:default,org.eclipse.emf.mwe2.language@default:default,org.eclipse.emf.mwe2.launch@default:default,org.eclipse.emf.mwe2.lib@default:default,org.eclipse.emf.mwe2.runtime@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.net4j.jms.api@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.ui@default:default,org.eclipse.sdk@default:default,org.eclipse.search@default:default,org.eclipse.swt.gtk.linux.x86@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.ant.optional.junit3@default:false,org.eclipse.swtbot.ant.optional.junit4@default:false,org.eclipse.swtbot.eclipse.core@default:default,org.eclipse.swtbot.eclipse.finder@default:default,org.eclipse.swtbot.forms.finder@default:default,org.eclipse.swtbot.go@default:default,org.eclipse.swtbot.junit4_x@default:default,org.eclipse.team.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.eclipse.update.core.linux@default:false,org.eclipse.update.core@default:default,org.eclipse.wb.jdt.fragment@default:false,org.eclipse.xpand@default:default,org.eclipse.xtend.typesystem.emf@default:default,org.eclipse.xtend2.lib@default:default,org.eclipse.xtend@default:default,org.eclipse.xtext.builder@default:default,org.eclipse.xtext.common.types.ui@default:default,org.eclipse.xtext.common.types@default:default,org.eclipse.xtext.ecore@default:default,org.eclipse.xtext.generator@default:default,org.eclipse.xtext.junit@default:default,org.eclipse.xtext.logging@default:false,org.eclipse.xtext.ui.codetemplates.ui@default:default,org.eclipse.xtext.ui.codetemplates@default:default,org.eclipse.xtext.ui.junit@default:default,org.eclipse.xtext.ui.shared@default:default,org.eclipse.xtext.ui@default:default,org.eclipse.xtext.util@default:default,org.eclipse.xtext.xbase.lib@default:default,org.eclipse.xtext.xtend2.lib@default:default,org.eclipse.xtext@default:default,org.hamcrest.core@default:default,org.hamcrest.integration@default:default,org.hamcrest.library@default:default,org.hamcrest.text@default:default,org.hamcrest@default:default,org.junit*4.8.2.v4_8_2_v20110321-1705@default:default,org.junit4@default:default,org.mortbay.jetty.server@default:default,org.mortbay.jetty.util@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.slf4j.api@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.parsley.tests.swtbot@default:default,org.eclipse.emf.parsley.wizards@default:default,org.eclipse.emf.parsley@default:default,org.eclipse.emf.parsley.examples.library.edit@default:default,org.eclipse.emf.parsley.examples.library.editor@default:default,org.eclipse.emf.parsley.examples.library@default:default,org.eclipse.swtbot.examples@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.xtext.example.fowlerdsl.ui@default:default,org.eclipse.xtext.example.fowlerdsl@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="true"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsEmfComponentsProvidersBasedOnViewTests.launch b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsEmfComponentsProvidersBasedOnViewTests.launch
new file mode 100644
index 000000000..12050cc1f
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsEmfComponentsProvidersBasedOnViewTests.launch
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<setAttribute key="additional_plugins"/>
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="featureDefaultLocation" value="workspace"/>
+<stringAttribute key="featurePluginResolution" value="workspace"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsProvidersBasedOnViewTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.parsley.tests.EmfComponentsProvidersBasedOnViewTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.tests.swtbot"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx384m -XX:MaxPermSize=256m -Dorg.eclipse.swtbot.search.timeout=10000 -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="false"/>
+<setAttribute key="selected_features">
+<setEntry value="org.eclipse.emf.parsley.tests.swtbot.feature:default"/>
+</setAttribute>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="true"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsEmfComponentsProvidersTests.launch b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsEmfComponentsProvidersTests.launch
new file mode 100644
index 000000000..4c3e29c59
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsEmfComponentsProvidersTests.launch
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<setAttribute key="additional_plugins"/>
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="featureDefaultLocation" value="workspace"/>
+<stringAttribute key="featurePluginResolution" value="workspace"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsProvidersTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.parsley.tests.EmfComponentsProvidersTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.tests.swtbot"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx384m -XX:MaxPermSize=256m -Dorg.eclipse.swtbot.search.timeout=10000 -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="false"/>
+<setAttribute key="selected_features">
+<setEntry value="org.eclipse.emf.parsley.tests.swtbot.feature:default"/>
+</setAttribute>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="true"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsExamplesWizardsTests.launch b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsExamplesWizardsTests.launch
new file mode 100644
index 000000000..8320355e9
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsExamplesWizardsTests.launch
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<setAttribute key="additional_plugins"/>
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="featureDefaultLocation" value="workspace"/>
+<stringAttribute key="featurePluginResolution" value="workspace"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsExamplesWizardsTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.parsley.tests.EmfComponentsExamplesWizardsTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.tests.swtbot"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx384m -XX:MaxPermSize=256m -Dorg.eclipse.swtbot.search.timeout=10000 -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="false"/>
+<setAttribute key="selected_features">
+<setEntry value="org.eclipse.emf.parsley.tests.swtbot.feature:default"/>
+</setAttribute>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="true"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsFormTests.launch b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsFormTests.launch
new file mode 100644
index 000000000..f7373304a
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsFormTests.launch
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.swtbot.eclipse.ui.launcher.JunitLaunchConfig">
+<setAttribute key="additional_plugins">
+<setEntry value="org.eclipse.emf.parsley.tests.swtbot:0.1.0.qualifier:default:false"/>
+</setAttribute>
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="deselected_workspace_plugins" value="ProvaView,ProvaWizard,it.rcpvision.cdo04.editor,it.rcpvision.cdo04.model,org.eclipse.emf.parsley.cdo,org.eclipse.emf.parsley.cdo.tests,org.eclipse.emf.parsley.cdoexample.masterdetail.table,org.eclipse.emf.parsley.cdoexample.masterdetail.tree,org.eclipse.emf.parsley.cdoexample.model,org.eclipse.emf.parsley.cdoexample.model.business,org.eclipse.emf.parsley.cdoexample.rcp,org.eclipse.emf.parsley.cdoexample.rcp.tests,org.eclipse.emf.parsley.tests.cdo.app,org.eclipse.emf.parsley.tests.cdo.model,org.eclipse.emf.parsley.tests.cdo.product,it.rcpvision.rcptutorial03.model.cdo"/>
+<stringAttribute key="featureDefaultLocation" value="workspace"/>
+<stringAttribute key="featurePluginResolution" value="workspace"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsFormTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.parsley.tests.EmfComponentsFormTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.tests.swtbot"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx384m -XX:MaxPermSize=256m -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<setAttribute key="selected_features">
+<setEntry value="org.eclipse.emf.parsley.tests.swtbot.feature:default"/>
+</setAttribute>
+<stringAttribute key="selected_target_plugins" value="ch.qos.logback.classic@default:default,ch.qos.logback.core@default:default,ch.qos.logback.slf4j@default:false,com.google.collect@default:default,com.google.guava@default:default,com.google.inject@default:default,com.ibm.icu@default:default,de.itemis.xtext.antlr@default:default,javax.activation@default:default,javax.inject@default:default,javax.mail@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,org.antlr.generator@default:default,org.antlr.runtime@default:default,org.apache.ant@default:default,org.apache.commons.cli@default:default,org.apache.commons.el@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.jasper@default:default,org.apache.log4j@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.apache.lucene.highlighter@default:default,org.apache.lucene.memory@default:default,org.apache.lucene.misc@default:default,org.apache.lucene.queries@default:default,org.apache.lucene.snowball@default:default,org.apache.lucene.spellchecker@default:default,org.apache.lucene@default:default,org.easymock@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.ui@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.linux.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.linux.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.emf.codegen.ecore@default:default,org.eclipse.emf.codegen@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.editor@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.mwe.core@default:default,org.eclipse.emf.mwe.utils@default:default,org.eclipse.emf.mwe2.language@default:default,org.eclipse.emf.mwe2.launch@default:default,org.eclipse.emf.mwe2.lib@default:default,org.eclipse.emf.mwe2.runtime@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.net4j.jms.api@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.ui@default:default,org.eclipse.sdk@default:default,org.eclipse.search@default:default,org.eclipse.swt.gtk.linux.x86@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.ant.optional.junit3@default:false,org.eclipse.swtbot.ant.optional.junit4@default:false,org.eclipse.swtbot.eclipse.core@default:default,org.eclipse.swtbot.eclipse.finder@default:default,org.eclipse.swtbot.forms.finder@default:default,org.eclipse.swtbot.go@default:default,org.eclipse.swtbot.junit4_x@default:default,org.eclipse.team.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.eclipse.update.core.linux@default:false,org.eclipse.update.core@default:default,org.eclipse.wb.jdt.fragment@default:false,org.eclipse.xpand@default:default,org.eclipse.xtend.typesystem.emf@default:default,org.eclipse.xtend2.lib@default:default,org.eclipse.xtend@default:default,org.eclipse.xtext.builder@default:default,org.eclipse.xtext.common.types.ui@default:default,org.eclipse.xtext.common.types@default:default,org.eclipse.xtext.ecore@default:default,org.eclipse.xtext.generator@default:default,org.eclipse.xtext.junit@default:default,org.eclipse.xtext.logging@default:false,org.eclipse.xtext.ui.codetemplates.ui@default:default,org.eclipse.xtext.ui.codetemplates@default:default,org.eclipse.xtext.ui.junit@default:default,org.eclipse.xtext.ui.shared@default:default,org.eclipse.xtext.ui@default:default,org.eclipse.xtext.util@default:default,org.eclipse.xtext.xbase.lib@default:default,org.eclipse.xtext.xtend2.lib@default:default,org.eclipse.xtext@default:default,org.hamcrest.core@default:default,org.hamcrest.integration@default:default,org.hamcrest.library@default:default,org.hamcrest.text@default:default,org.hamcrest@default:default,org.junit*4.8.2.v4_8_2_v20110321-1705@default:default,org.junit4@default:default,org.mortbay.jetty.server@default:default,org.mortbay.jetty.util@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.slf4j.api@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.parsley.tests.swtbot@default:default,org.eclipse.emf.parsley.wizards@default:default,org.eclipse.emf.parsley@default:default,org.eclipse.emf.parsley.examples.library.edit@default:default,org.eclipse.emf.parsley.examples.library.editor@default:default,org.eclipse.emf.parsley.examples.library@default:default,org.eclipse.swtbot.examples@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.xtext.example.fowlerdsl.ui@default:default,org.eclipse.xtext.example.fowlerdsl@default:default"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="true"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsSaveableViewTests.launch b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsSaveableViewTests.launch
new file mode 100644
index 000000000..c080e2962
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsSaveableViewTests.launch
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.swtbot.eclipse.ui.launcher.JunitLaunchConfig">
+<setAttribute key="additional_plugins">
+<setEntry value="org.eclipse.emf.parsley.tests.swtbot:0.1.0.qualifier:default:false"/>
+</setAttribute>
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="deselected_workspace_plugins" value="ProvaView,ProvaWizard,it.rcpvision.cdo04.editor,it.rcpvision.cdo04.model,org.eclipse.emf.parsley.cdo,org.eclipse.emf.parsley.cdo.tests,org.eclipse.emf.parsley.cdoexample.masterdetail.table,org.eclipse.emf.parsley.cdoexample.masterdetail.tree,org.eclipse.emf.parsley.cdoexample.model,org.eclipse.emf.parsley.cdoexample.model.business,org.eclipse.emf.parsley.cdoexample.rcp,org.eclipse.emf.parsley.cdoexample.rcp.tests,org.eclipse.emf.parsley.tests.cdo.app,org.eclipse.emf.parsley.tests.cdo.model,org.eclipse.emf.parsley.tests.cdo.product,it.rcpvision.rcptutorial03.model.cdo"/>
+<stringAttribute key="featureDefaultLocation" value="workspace"/>
+<stringAttribute key="featurePluginResolution" value="workspace"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsSaveableViewTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.parsley.tests.EmfComponentsSaveableViewTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.tests.swtbot"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx384m -XX:MaxPermSize=256m -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<setAttribute key="selected_features">
+<setEntry value="org.eclipse.emf.parsley.tests.swtbot.feature:default"/>
+</setAttribute>
+<stringAttribute key="selected_target_plugins" value="ch.qos.logback.classic@default:default,ch.qos.logback.core@default:default,ch.qos.logback.slf4j@default:false,com.atlassian.connector.eclipse.branding.ui@default:default,com.atlassian.connector.eclipse.commons.core@default:default,com.atlassian.connector.eclipse.commons.ui@default:default,com.atlassian.connector.eclipse.jira.core@default:default,com.atlassian.connector.eclipse.jira.ui@default:default,com.atlassian.connector.eclipse.monitor.core@default:default,com.atlassian.connector.eclipse.monitor.ui@default:default,com.collabnet.subversion.merge@default:default,com.google.collect@default:default,com.google.guava@default:default,com.google.inject@default:default,com.ibm.icu@default:default,com.jcraft.jsch@default:default,com.sun.jna@default:default,com.sun.syndication@default:default,com.thoughtworks.xstream@default:default,de.itemis.xtext.antlr@default:default,java_cup.runtime@default:default,javax.activation@default:default,javax.inject@default:default,javax.mail@default:default,javax.persistence@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,javax.wsdl@default:default,javax.xml.bind@default:default,javax.xml.rpc@default:default,javax.xml.soap@default:default,javax.xml.stream@default:default,javax.xml@default:default,lpg.runtime.java@default:default,net.sourceforge.texlipse@default:default,org.antlr.generator@default:default,org.antlr.runtime@default:default,org.apache.ant@default:default,org.apache.axis@default:default,org.apache.batik.bridge@default:default,org.apache.batik.css@default:default,org.apache.batik.dom.svg@default:default,org.apache.batik.dom@default:default,org.apache.batik.ext.awt@default:default,org.apache.batik.parser@default:default,org.apache.batik.pdf@default:default,org.apache.batik.svggen@default:default,org.apache.batik.transcoder@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.batik.xml@default:default,org.apache.bcel@default:default,org.apache.commons.cli@default:default,org.apache.commons.codec@default:default,org.apache.commons.discovery@default:default,org.apache.commons.el@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.io@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging*1.0.4.v201101211617@default:default,org.apache.commons.logging*1.1.1.v201005080502@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.derby@default:default,org.apache.jasper@default:default,org.apache.log4j@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.apache.lucene.highlighter@default:default,org.apache.lucene.memory@default:default,org.apache.lucene.misc@default:default,org.apache.lucene.queries@default:default,org.apache.lucene.snowball@default:default,org.apache.lucene.spellchecker@default:default,org.apache.lucene@default:default,org.apache.ws.commons.util@default:default,org.apache.xalan@default:default,org.apache.xerces@default:default,org.apache.xml.resolver@default:default,org.apache.xml.serializer@default:default,org.apache.xmlrpc@default:default,org.easymock@default:default,org.eclipse.acceleo.common@default:default,org.eclipse.acceleo.engine@default:default,org.eclipse.acceleo.model@default:default,org.eclipse.acceleo.profiler@default:default,org.eclipse.amalgam.discovery.core@default:default,org.eclipse.amalgam.discovery.modeling@default:default,org.eclipse.amalgam.discovery.ui@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.ui@default:default,org.eclipse.cdt.core@default:default,org.eclipse.cdt.ui@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.boot@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.linux.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.linux.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.cvs@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.draw2d.doc.isv@default:default,org.eclipse.draw2d@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.egit.core@default:default,org.eclipse.egit.doc@default:default,org.eclipse.egit.mylyn.ui@default:default,org.eclipse.egit.ui@default:default,org.eclipse.egit@default:default,org.eclipse.emf.ant@default:default,org.eclipse.emf.cdo.common.db@default:default,org.eclipse.emf.cdo.common@default:default,org.eclipse.emf.cdo.edit@default:default,org.eclipse.emf.cdo.location@default:default,org.eclipse.emf.cdo.migrator@default:default,org.eclipse.emf.cdo.net4j@default:default,org.eclipse.emf.cdo.server.net4j@default:default,org.eclipse.emf.cdo.server.ocl@default:default,org.eclipse.emf.cdo.server@default:default,org.eclipse.emf.cdo.team@default:default,org.eclipse.emf.cdo.ui.ide@default:default,org.eclipse.emf.cdo.ui.location@default:default,org.eclipse.emf.cdo.ui.shared@default:default,org.eclipse.emf.cdo.ui@default:default,org.eclipse.emf.cdo@default:default,org.eclipse.emf.cheatsheets@default:default,org.eclipse.emf.codegen.ecore.ui@default:default,org.eclipse.emf.codegen.ecore@default:default,org.eclipse.emf.codegen.ui@default:default,org.eclipse.emf.codegen@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.compare.diff.edit@default:default,org.eclipse.emf.compare.diff@default:default,org.eclipse.emf.compare.doc@default:default,org.eclipse.emf.compare.epatch@default:default,org.eclipse.emf.compare.match@default:default,org.eclipse.emf.compare.ui.capabilities@default:default,org.eclipse.emf.compare.ui@default:default,org.eclipse.emf.compare@default:default,org.eclipse.emf.converter@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.doc@default:default,org.eclipse.emf.ecore.change.edit@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.editor@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.ecoretools.diagram.ui.outline@default:default,org.eclipse.emf.ecoretools.diagram@default:default,org.eclipse.emf.ecoretools.doc@default:default,org.eclipse.emf.ecoretools.filters@default:default,org.eclipse.emf.ecoretools.properties@default:default,org.eclipse.emf.ecoretools.tabbedproperties@default:default,org.eclipse.emf.ecoretools@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.eef.codegen.ecore@default:default,org.eclipse.emf.eef.codegen@default:default,org.eclipse.emf.eef.components.edit@default:default,org.eclipse.emf.eef.components@default:default,org.eclipse.emf.eef.eefgen@default:default,org.eclipse.emf.eef.mapping.edit@default:default,org.eclipse.emf.eef.mapping@default:default,org.eclipse.emf.eef.runtime@default:default,org.eclipse.emf.eef.views.edit@default:default,org.eclipse.emf.eef.views@default:default,org.eclipse.emf.example.installer@default:default,org.eclipse.emf.exporter@default:default,org.eclipse.emf.generic.editor@default:default,org.eclipse.emf.importer.ecore@default:default,org.eclipse.emf.importer.java@default:default,org.eclipse.emf.importer.rose@default:default,org.eclipse.emf.importer@default:default,org.eclipse.emf.mapping.ecore.editor@default:default,org.eclipse.emf.mapping.ecore2ecore.editor@default:default,org.eclipse.emf.mapping.ecore2ecore@default:default,org.eclipse.emf.mapping.ecore2xml.ui@default:default,org.eclipse.emf.mapping.ecore2xml@default:default,org.eclipse.emf.mapping.ecore@default:default,org.eclipse.emf.mapping.ui@default:default,org.eclipse.emf.mapping.xsd2ecore.editor@default:default,org.eclipse.emf.mapping.xsd2ecore@default:default,org.eclipse.emf.mapping@default:default,org.eclipse.emf.mwe.activities@default:default,org.eclipse.emf.mwe.core@default:default,org.eclipse.emf.mwe.doc@default:default,org.eclipse.emf.mwe.ui.simpleEditor@default:default,org.eclipse.emf.mwe.ui@default:default,org.eclipse.emf.mwe.utils@default:default,org.eclipse.emf.mwe2.language.ui@default:default,org.eclipse.emf.mwe2.language@default:default,org.eclipse.emf.mwe2.launch@default:default,org.eclipse.emf.mwe2.lib@default:default,org.eclipse.emf.mwe2.runtime@default:default,org.eclipse.emf.query.doc@default:default,org.eclipse.emf.query.examples@default:default,org.eclipse.emf.query.ocl@default:default,org.eclipse.emf.query@default:default,org.eclipse.emf.transaction.doc@default:default,org.eclipse.emf.transaction.examples@default:default,org.eclipse.emf.transaction.ui@default:default,org.eclipse.emf.transaction@default:default,org.eclipse.emf.validation.doc@default:default,org.eclipse.emf.validation.examples@default:default,org.eclipse.emf.validation.ocl@default:default,org.eclipse.emf.validation.ui.ide@default:default,org.eclipse.emf.validation.ui@default:default,org.eclipse.emf.validation@default:default,org.eclipse.emf.workspace.doc@default:default,org.eclipse.emf.workspace.ui@default:default,org.eclipse.emf.workspace@default:default,org.eclipse.emf@default:default,org.eclipse.epp.mpc.core@default:default,org.eclipse.epp.mpc.help.ui@default:default,org.eclipse.epp.mpc.ui@default:default,org.eclipse.epp.package.modeling@default:default,org.eclipse.epp.usagedata.gathering@default:default,org.eclipse.epp.usagedata.recording@default:default,org.eclipse.epp.usagedata.ui@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.equinox.launcher.gtk.linux.x86@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.discovery.compatibility@default:default,org.eclipse.equinox.p2.discovery@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.ql@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.p2.ui.discovery@default:default,org.eclipse.equinox.p2.ui.importexport@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.gef.doc.isv@default:default,org.eclipse.gef.examples.flow@default:default,org.eclipse.gef.examples.logic@default:default,org.eclipse.gef.examples.shapes@default:default,org.eclipse.gef.examples.text@default:default,org.eclipse.gef.examples.ui.pde@default:default,org.eclipse.gef@default:default,org.eclipse.gmf.examples.runtime.common.service@default:default,org.eclipse.gmf.examples.runtime.diagram.decorator@default:default,org.eclipse.gmf.examples.runtime.diagram.geoshapes@default:default,org.eclipse.gmf.examples.runtime.diagram.layout@default:default,org.eclipse.gmf.examples.runtime.diagram.logic.model.edit@default:default,org.eclipse.gmf.examples.runtime.diagram.logic.model.editor@default:default,org.eclipse.gmf.examples.runtime.diagram.logic.model@default:default,org.eclipse.gmf.examples.runtime.diagram.logic@default:default,org.eclipse.gmf.examples.runtime.emf.clipboard@default:default,org.eclipse.gmf.examples.runtime.ui.pde@default:default,org.eclipse.gmf.examples.runtime@default:default,org.eclipse.gmf.runtime.common.core@default:default,org.eclipse.gmf.runtime.common.ui.action.ide@default:default,org.eclipse.gmf.runtime.common.ui.action@default:default,org.eclipse.gmf.runtime.common.ui.printing.win32@default:false,org.eclipse.gmf.runtime.common.ui.printing@default:default,org.eclipse.gmf.runtime.common.ui.services.action@default:default,org.eclipse.gmf.runtime.common.ui.services.dnd.ide@default:default,org.eclipse.gmf.runtime.common.ui.services.dnd@default:default,org.eclipse.gmf.runtime.common.ui.services.properties@default:default,org.eclipse.gmf.runtime.common.ui.services@default:default,org.eclipse.gmf.runtime.common.ui@default:default,org.eclipse.gmf.runtime.diagram.core@default:default,org.eclipse.gmf.runtime.diagram.ui.actions@default:default,org.eclipse.gmf.runtime.diagram.ui.dnd@default:default,org.eclipse.gmf.runtime.diagram.ui.geoshapes@default:default,org.eclipse.gmf.runtime.diagram.ui.printing.render@default:default,org.eclipse.gmf.runtime.diagram.ui.printing@default:default,org.eclipse.gmf.runtime.diagram.ui.properties@default:default,org.eclipse.gmf.runtime.diagram.ui.providers.ide@default:default,org.eclipse.gmf.runtime.diagram.ui.providers@default:default,org.eclipse.gmf.runtime.diagram.ui.render@default:default,org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide@default:default,org.eclipse.gmf.runtime.diagram.ui.resources.editor@default:default,org.eclipse.gmf.runtime.diagram.ui@default:default,org.eclipse.gmf.runtime.draw2d.ui.render.awt@default:default,org.eclipse.gmf.runtime.draw2d.ui.render@default:default,org.eclipse.gmf.runtime.draw2d.ui@default:default,org.eclipse.gmf.runtime.emf.clipboard.core@default:default,org.eclipse.gmf.runtime.emf.commands.core@default:default,org.eclipse.gmf.runtime.emf.core@default:default,org.eclipse.gmf.runtime.emf.type.core@default:default,org.eclipse.gmf.runtime.emf.type.ui@default:default,org.eclipse.gmf.runtime.emf.ui.properties@default:default,org.eclipse.gmf.runtime.emf.ui@default:default,org.eclipse.gmf.runtime.gef.ui@default:default,org.eclipse.gmf.runtime.notation.edit@default:default,org.eclipse.gmf.runtime.notation.providers@default:default,org.eclipse.gmf.runtime.notation.sdk@default:default,org.eclipse.gmf.runtime.notation@default:default,org.eclipse.gmf.runtime.sdk@default:default,org.eclipse.gmf@default:default,org.eclipse.help.appserver@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help.webapp@default:default,org.eclipse.help@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.jdt.apt.ui@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.doc.isv@default:default,org.eclipse.jdt.doc.user@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jdt@default:default,org.eclipse.jem.proxy@default:default,org.eclipse.jem.util@default:default,org.eclipse.jem.workbench@default:default,org.eclipse.jem@default:default,org.eclipse.jet.core@default:default,org.eclipse.jet.doc@default:default,org.eclipse.jet.source@default:default,org.eclipse.jet.ui@default:default,org.eclipse.jet.uml2@default:false,org.eclipse.jet@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jgit@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.jst.common.annotations.controller@default:default,org.eclipse.jst.common.annotations.core@default:default,org.eclipse.jst.common.frameworks@default:default,org.eclipse.jst.common.project.facet.core@default:default,org.eclipse.jst.j2ee.core@default:default,org.eclipse.jst.j2ee.jca@default:default,org.eclipse.jst.j2ee.web@default:default,org.eclipse.jst.j2ee@default:default,org.eclipse.jst.jee@default:default,org.eclipse.jst.jsf.common.runtime@default:default,org.eclipse.jst.jsf.common.ui@default:default,org.eclipse.jst.jsf.common@default:default,org.eclipse.jst.jsf.core@default:default,org.eclipse.jst.jsf.facesconfig@default:default,org.eclipse.jst.jsp.core@default:default,org.eclipse.jst.jsp.ui@default:default,org.eclipse.jst.pagedesigner.jsf.ui@default:default,org.eclipse.jst.pagedesigner.jsp.core@default:default,org.eclipse.jst.pagedesigner@default:default,org.eclipse.jst.server.core@default:default,org.eclipse.linuxtools.changelog.core@default:default,org.eclipse.linuxtools.changelog.cparser@default:false,org.eclipse.linuxtools.changelog.doc@default:default,org.eclipse.linuxtools.changelog.parsers.java@default:false,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.mylyn.bugzilla.core@default:default,org.eclipse.mylyn.bugzilla.ide@default:default,org.eclipse.mylyn.bugzilla.ui@default:default,org.eclipse.mylyn.commons.core@default:default,org.eclipse.mylyn.commons.identity@default:default,org.eclipse.mylyn.commons.net@default:default,org.eclipse.mylyn.commons.repositories@default:default,org.eclipse.mylyn.commons.screenshots@default:default,org.eclipse.mylyn.commons.soap@default:default,org.eclipse.mylyn.commons.team@default:default,org.eclipse.mylyn.commons.ui@default:default,org.eclipse.mylyn.commons.xmlrpc@default:default,org.eclipse.mylyn.context.core@default:default,org.eclipse.mylyn.context.ui@default:default,org.eclipse.mylyn.discovery.core@default:default,org.eclipse.mylyn.discovery.ui@default:default,org.eclipse.mylyn.help.ui@default:default,org.eclipse.mylyn.ide.ant@default:default,org.eclipse.mylyn.ide.ui@default:default,org.eclipse.mylyn.java.tasks@default:default,org.eclipse.mylyn.java.ui@default:default,org.eclipse.mylyn.jira.core@default:default,org.eclipse.mylyn.jira.ui@default:default,org.eclipse.mylyn.monitor.core@default:default,org.eclipse.mylyn.monitor.ui@default:default,org.eclipse.mylyn.pde.ui@default:default,org.eclipse.mylyn.resources.ui@default:default,org.eclipse.mylyn.tasks.bugs@default:default,org.eclipse.mylyn.tasks.core@default:default,org.eclipse.mylyn.tasks.search@default:default,org.eclipse.mylyn.tasks.ui@default:default,org.eclipse.mylyn.team.cvs@default:default,org.eclipse.mylyn.team.ui@default:default,org.eclipse.mylyn.web.tasks@default:default,org.eclipse.mylyn.wikitext.confluence.core@default:default,org.eclipse.mylyn.wikitext.confluence.ui@default:default,org.eclipse.mylyn.wikitext.core@default:default,org.eclipse.mylyn.wikitext.help.sdk@default:default,org.eclipse.mylyn.wikitext.help.ui@default:default,org.eclipse.mylyn.wikitext.mediawiki.core@default:default,org.eclipse.mylyn.wikitext.mediawiki.ui@default:default,org.eclipse.mylyn.wikitext.tasks.ui@default:default,org.eclipse.mylyn.wikitext.tests@default:default,org.eclipse.mylyn.wikitext.textile.core@default:default,org.eclipse.mylyn.wikitext.textile.ui@default:default,org.eclipse.mylyn.wikitext.tracwiki.core@default:default,org.eclipse.mylyn.wikitext.tracwiki.ui@default:default,org.eclipse.mylyn.wikitext.twiki.core@default:default,org.eclipse.mylyn.wikitext.twiki.ui@default:default,org.eclipse.mylyn.wikitext.ui@default:default,org.eclipse.mylyn@default:default,org.eclipse.net4j.db.derby@default:default,org.eclipse.net4j.db.h2@default:default,org.eclipse.net4j.db@default:default,org.eclipse.net4j.http.common@default:default,org.eclipse.net4j.http.server@default:default,org.eclipse.net4j.http@default:default,org.eclipse.net4j.jms.api@default:default,org.eclipse.net4j.jvm@default:default,org.eclipse.net4j.tcp@default:default,org.eclipse.net4j.ui.shared@default:default,org.eclipse.net4j.util.ui@default:default,org.eclipse.net4j.util@default:default,org.eclipse.net4j@default:default,org.eclipse.ocl.doc@default:default,org.eclipse.ocl.ecore.edit@default:default,org.eclipse.ocl.ecore@default:default,org.eclipse.ocl.edit@default:default,org.eclipse.ocl.uml.edit@default:default,org.eclipse.ocl.uml@default:default,org.eclipse.ocl@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.api.tools.ui@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.pde.ds.ui@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.pde.ua.ui@default:default,org.eclipse.pde.ui.templates@default:default,org.eclipse.pde.ui@default:default,org.eclipse.pde@default:default,org.eclipse.platform.doc.isv@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.platform@default:default,org.eclipse.rcp@default:default,org.eclipse.sdk@default:default,org.eclipse.search@default:default,org.eclipse.swt.gtk.linux.x86@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.ant.optional.junit3@default:false,org.eclipse.swtbot.ant.optional.junit4@default:false,org.eclipse.swtbot.eclipse.core@default:default,org.eclipse.swtbot.eclipse.finder@default:default,org.eclipse.swtbot.eclipse.gef.finder@default:default,org.eclipse.swtbot.eclipse.junit3.headless@default:default,org.eclipse.swtbot.eclipse.junit4.headless@default:default,org.eclipse.swtbot.eclipse.spy@default:default,org.eclipse.swtbot.eclipse.ui@default:default,org.eclipse.swtbot.forms.finder@default:default,org.eclipse.swtbot.go@default:default,org.eclipse.swtbot.junit4_x@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.team.core@default:default,org.eclipse.team.cvs.core@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.team.cvs.ui@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.net@default:default,org.eclipse.ui.presentations.r21@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench.compatibility@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.uml2.codegen.ecore.ui@default:default,org.eclipse.uml2.codegen.ecore@default:default,org.eclipse.uml2.common.edit@default:default,org.eclipse.uml2.common@default:default,org.eclipse.uml2.doc@default:default,org.eclipse.uml2.examples.uml.ui@default:default,org.eclipse.uml2.examples@default:default,org.eclipse.uml2.uml.ecore.exporter@default:default,org.eclipse.uml2.uml.ecore.importer@default:default,org.eclipse.uml2.uml.edit@default:default,org.eclipse.uml2.uml.editor@default:default,org.eclipse.uml2.uml.resources@default:default,org.eclipse.uml2.uml@default:default,org.eclipse.uml2@default:default,org.eclipse.update.configurator@3:true,org.eclipse.update.core.linux@default:false,org.eclipse.update.core@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.update.ui@default:default,org.eclipse.wb.core.databinding.xml@default:default,org.eclipse.wb.core.databinding@default:default,org.eclipse.wb.core.lib@default:default,org.eclipse.wb.core.ui@default:default,org.eclipse.wb.core.xml@default:default,org.eclipse.wb.core@default:default,org.eclipse.wb.discovery.core@default:default,org.eclipse.wb.discovery.ui@default:default,org.eclipse.wb.doc.user@default:default,org.eclipse.wb.jdt.fragment@default:false,org.eclipse.wb.layout.group@default:default,org.eclipse.wb.os.linux@default:default,org.eclipse.wb.os@default:default,org.eclipse.wb.rcp.SWT_AWT@default:default,org.eclipse.wb.rcp.databinding.emf@default:default,org.eclipse.wb.rcp.databinding.xwt@default:default,org.eclipse.wb.rcp.databinding@default:default,org.eclipse.wb.rcp.nebula@default:default,org.eclipse.wb.rcp.swing2swt@default:default,org.eclipse.wb.rcp@default:default,org.eclipse.wb.runtime.lib@default:default,org.eclipse.wb.runtime@default:default,org.eclipse.wb.swing.FormLayout.lib@default:default,org.eclipse.wb.swing.FormLayout@default:default,org.eclipse.wb.swing.MigLayout.lib@default:default,org.eclipse.wb.swing.MigLayout@default:default,org.eclipse.wb.swing.databinding@default:default,org.eclipse.wb.swing.java6@default:default,org.eclipse.wb.swing.jsr296@default:default,org.eclipse.wb.swing@default:default,org.eclipse.wb.swt.widgets.baseline@default:default,org.eclipse.wb.swt@default:default,org.eclipse.wb.xwt@default:default,org.eclipse.wst.common.core@default:default,org.eclipse.wst.common.emf@default:default,org.eclipse.wst.common.emfworkbench.integration@default:default,org.eclipse.wst.common.environment@default:default,org.eclipse.wst.common.frameworks.ui@default:default,org.eclipse.wst.common.frameworks@default:default,org.eclipse.wst.common.infopop@default:default,org.eclipse.wst.common.modulecore.ui@default:default,org.eclipse.wst.common.modulecore@default:default,org.eclipse.wst.common.project.facet.core@default:default,org.eclipse.wst.common.snippets@default:default,org.eclipse.wst.common.ui@default:default,org.eclipse.wst.common.uriresolver@default:default,org.eclipse.wst.css.core@default:default,org.eclipse.wst.css.ui@default:default,org.eclipse.wst.dtd.core@default:default,org.eclipse.wst.dtd.ui.infopop@default:default,org.eclipse.wst.dtd.ui@default:default,org.eclipse.wst.dtdeditor.doc.user@default:default,org.eclipse.wst.html.core@default:default,org.eclipse.wst.html.ui@default:default,org.eclipse.wst.internet.cache@default:default,org.eclipse.wst.server.core@default:default,org.eclipse.wst.sse.core@default:default,org.eclipse.wst.sse.doc.user@default:default,org.eclipse.wst.sse.ui.infopop@default:default,org.eclipse.wst.sse.ui@default:default,org.eclipse.wst.standard.schemas@default:default,org.eclipse.wst.validation.infopop@default:default,org.eclipse.wst.validation.ui@default:default,org.eclipse.wst.validation@default:default,org.eclipse.wst.web@default:default,org.eclipse.wst.xml.core@default:default,org.eclipse.wst.xml.ui.infopop@default:default,org.eclipse.wst.xml.ui@default:default,org.eclipse.wst.xml.xpath.core@default:default,org.eclipse.wst.xml.xpath.ui@default:default,org.eclipse.wst.xml.xpath2.processor.doc.user@default:default,org.eclipse.wst.xml.xpath2.processor@default:default,org.eclipse.wst.xml.xpath2.wtptypes@default:default,org.eclipse.wst.xml.xpath2@default:default,org.eclipse.wst.xmleditor.doc.user@default:default,org.eclipse.wst.xsd.core@default:default,org.eclipse.wst.xsd.ui@default:default,org.eclipse.wst.xsdeditor.doc.user@default:default,org.eclipse.wst.xsl.core@default:default,org.eclipse.wst.xsl.debug.ui@default:default,org.eclipse.wst.xsl.doc@default:default,org.eclipse.wst.xsl.exslt.core@default:default,org.eclipse.wst.xsl.exslt.ui@default:default,org.eclipse.wst.xsl.jaxp.debug.ui@default:default,org.eclipse.wst.xsl.jaxp.debug@default:default,org.eclipse.wst.xsl.jaxp.launching@default:default,org.eclipse.wst.xsl.launching@default:default,org.eclipse.wst.xsl.saxon@default:default,org.eclipse.wst.xsl.ui@default:default,org.eclipse.wst.xsl.xalan@default:default,org.eclipse.wst.xsl@default:default,org.eclipse.xpand.activities@default:default,org.eclipse.xpand.doc@default:default,org.eclipse.xpand.examples@default:default,org.eclipse.xpand.incremental@default:default,org.eclipse.xpand.support.cdt@default:default,org.eclipse.xpand.ui@default:default,org.eclipse.xpand@default:default,org.eclipse.xsd.cheatsheets@default:default,org.eclipse.xsd.doc@default:default,org.eclipse.xsd.ecore.converter@default:default,org.eclipse.xsd.ecore.exporter@default:default,org.eclipse.xsd.ecore.importer@default:default,org.eclipse.xsd.edit@default:default,org.eclipse.xsd.editor@default:default,org.eclipse.xsd.example.installer@default:default,org.eclipse.xsd.mapping.editor@default:default,org.eclipse.xsd.mapping@default:default,org.eclipse.xsd@default:default,org.eclipse.xtend.backend.compiler@default:default,org.eclipse.xtend.backend.ui@default:default,org.eclipse.xtend.backend.uml2types@default:default,org.eclipse.xtend.backend.xsdtypes@default:default,org.eclipse.xtend.backend@default:default,org.eclipse.xtend.check.ui@default:default,org.eclipse.xtend.middleend.xpand@default:default,org.eclipse.xtend.middleend.xtend@default:default,org.eclipse.xtend.profiler@default:default,org.eclipse.xtend.shared.ui@default:default,org.eclipse.xtend.typesystem.emf.ui@default:default,org.eclipse.xtend.typesystem.emf@default:default,org.eclipse.xtend.typesystem.uml2.ui@default:default,org.eclipse.xtend.typesystem.uml2@default:default,org.eclipse.xtend.typesystem.xsd.ui@default:default,org.eclipse.xtend.typesystem.xsd@default:default,org.eclipse.xtend.ui@default:default,org.eclipse.xtend.util.stdlib@default:default,org.eclipse.xtend2.lib@default:default,org.eclipse.xtend@default:default,org.eclipse.xtext.activities@default:default,org.eclipse.xtext.builder@default:default,org.eclipse.xtext.common.types.shared@default:default,org.eclipse.xtext.common.types.ui@default:default,org.eclipse.xtext.common.types@default:default,org.eclipse.xtext.doc@default:default,org.eclipse.xtext.ecore@default:default,org.eclipse.xtext.generator@default:default,org.eclipse.xtext.junit4@default:default,org.eclipse.xtext.junit@default:default,org.eclipse.xtext.logging@default:false,org.eclipse.xtext.purexbase.ui@default:default,org.eclipse.xtext.purexbase@default:default,org.eclipse.xtext.ui.codetemplates.ui@default:default,org.eclipse.xtext.ui.codetemplates@default:default,org.eclipse.xtext.ui.ecore@default:default,org.eclipse.xtext.ui.junit@default:default,org.eclipse.xtext.ui.shared@default:default,org.eclipse.xtext.ui@default:default,org.eclipse.xtext.util@default:default,org.eclipse.xtext.xbase.junit@default:default,org.eclipse.xtext.xbase.lib@default:default,org.eclipse.xtext.xbase.ui@default:default,org.eclipse.xtext.xbase@default:default,org.eclipse.xtext.xtend2.lib@default:default,org.eclipse.xtext.xtend2.ui@default:default,org.eclipse.xtext.xtend2@default:default,org.eclipse.xtext.xtext.ui.examples@default:default,org.eclipse.xtext.xtext.ui.graph@default:default,org.eclipse.xtext.xtext.ui@default:default,org.eclipse.xtext@default:default,org.h2@default:default,org.hamcrest.core@default:default,org.hamcrest.integration@default:default,org.hamcrest.library@default:default,org.hamcrest.text@default:default,org.hamcrest@default:default,org.jdom@default:default,org.jdom_jaxen@default:default,org.joda.time@default:default,org.junit*3.8.2.v3_8_2_v20100427-1100@default:default,org.junit*4.8.2.v4_8_2_v20110321-1705@default:default,org.junit4@default:default,org.mortbay.jetty.server@default:default,org.mortbay.jetty.util@default:default,org.objectweb.asm@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.slf4j.api@default:default,org.tigris.subversion.clientadapter@default:default,org.tigris.subversion.subclipse.core@default:default,org.tigris.subversion.subclipse.ui@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.parsley.tests.swtbot@default:default,org.eclipse.emf.parsley.wizards@default:default,org.eclipse.emf.parsley@default:default,org.eclipse.emf.parsley.examples.library.edit@default:default,org.eclipse.emf.parsley.examples.library.editor@default:default,org.eclipse.emf.parsley.examples.library@default:default,org.eclipse.swtbot.examples@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.xtext.example.fowlerdsl.ui@default:default,org.eclipse.xtext.example.fowlerdsl@default:default"/>
+<booleanAttribute key="show_selected_only" value="true"/>
+<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="true"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsSwtBotAllTests.launch b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsSwtBotAllTests.launch
new file mode 100644
index 000000000..977c1b865
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsSwtBotAllTests.launch
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<setAttribute key="additional_plugins"/>
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="featureDefaultLocation" value="workspace"/>
+<stringAttribute key="featurePluginResolution" value="workspace"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsTestsSuite.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.parsley.tests.EmfComponentsTestsSuite"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.tests.swtbot"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx384m -XX:MaxPermSize=256m -Dorg.eclipse.swtbot.search.timeout=20000 -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="false"/>
+<setAttribute key="selected_features">
+<setEntry value="org.eclipse.cvs.source:default"/>
+<setEntry value="org.eclipse.cvs:default"/>
+<setEntry value="org.eclipse.e4.rcp.source:default"/>
+<setEntry value="org.eclipse.e4.rcp:default"/>
+<setEntry value="org.eclipse.emf.common:default"/>
+<setEntry value="org.eclipse.emf.ecore:default"/>
+<setEntry value="org.eclipse.emf.parsley.dsl.feature:default"/>
+<setEntry value="org.eclipse.emf.parsley.examples.feature:default"/>
+<setEntry value="org.eclipse.emf.parsley.feature:default"/>
+<setEntry value="org.eclipse.emf.parsley.tests.swtbot.feature:default"/>
+<setEntry value="org.eclipse.equinox.p2.core.feature.source:default"/>
+<setEntry value="org.eclipse.equinox.p2.core.feature:default"/>
+<setEntry value="org.eclipse.equinox.p2.extras.feature.source:default"/>
+<setEntry value="org.eclipse.equinox.p2.extras.feature:default"/>
+<setEntry value="org.eclipse.equinox.p2.rcp.feature.source:default"/>
+<setEntry value="org.eclipse.equinox.p2.rcp.feature:default"/>
+<setEntry value="org.eclipse.equinox.p2.user.ui.source:default"/>
+<setEntry value="org.eclipse.equinox.p2.user.ui:default"/>
+<setEntry value="org.eclipse.help.source:default"/>
+<setEntry value="org.eclipse.help:default"/>
+<setEntry value="org.eclipse.jdt.source:default"/>
+<setEntry value="org.eclipse.jdt:default"/>
+<setEntry value="org.eclipse.pde.source:default"/>
+<setEntry value="org.eclipse.pde:default"/>
+<setEntry value="org.eclipse.platform.source:default"/>
+<setEntry value="org.eclipse.platform:default"/>
+<setEntry value="org.eclipse.rcp.source:default"/>
+<setEntry value="org.eclipse.rcp:default"/>
+<setEntry value="org.eclipse.sdk:default"/>
+<setEntry value="org.eclipse.swtbot.eclipse:default"/>
+<setEntry value="org.eclipse.swtbot.forms:default"/>
+<setEntry value="org.eclipse.swtbot.ide:default"/>
+<setEntry value="org.eclipse.swtbot:default"/>
+<setEntry value="org.eclipse.xtend.sdk:default"/>
+<setEntry value="org.eclipse.xtext.docs:default"/>
+<setEntry value="org.eclipse.xtext.examples.source:default"/>
+<setEntry value="org.eclipse.xtext.examples:default"/>
+<setEntry value="org.eclipse.xtext.runtime.source:default"/>
+<setEntry value="org.eclipse.xtext.runtime:default"/>
+<setEntry value="org.eclipse.xtext.sdk:default"/>
+<setEntry value="org.eclipse.xtext.ui.source:default"/>
+<setEntry value="org.eclipse.xtext.ui:default"/>
+<setEntry value="org.eclipse.xtext.xbase.lib.source:default"/>
+<setEntry value="org.eclipse.xtext.xbase.lib:default"/>
+<setEntry value="org.eclipse.xtext.xbase.source:default"/>
+<setEntry value="org.eclipse.xtext.xbase:default"/>
+<setEntry value="org.eclipse.xtext.xtext.ui.source:default"/>
+<setEntry value="org.eclipse.xtext.xtext.ui:default"/>
+</setAttribute>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="true"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsTestsSuite.launch b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsTestsSuite.launch
new file mode 100644
index 000000000..450741c9f
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsTestsSuite.launch
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.swtbot.eclipse.ui.launcher.JunitLaunchConfig">
+<setAttribute key="additional_plugins">
+<setEntry value="org.eclipse.emf.parsley.tests.swtbot:0.1.0.qualifier:default:false"/>
+</setAttribute>
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="deselected_workspace_plugins" value="ProvaView,ProvaWizard,it.rcpvision.cdo04.editor,it.rcpvision.cdo04.model,org.eclipse.emf.parsley.cdo,org.eclipse.emf.parsley.cdo.tests,org.eclipse.emf.parsley.cdoexample.masterdetail.table,org.eclipse.emf.parsley.cdoexample.masterdetail.tree,org.eclipse.emf.parsley.cdoexample.model,org.eclipse.emf.parsley.cdoexample.model.business,org.eclipse.emf.parsley.cdoexample.rcp,org.eclipse.emf.parsley.cdoexample.rcp.tests,org.eclipse.emf.parsley.tests.cdo.app,org.eclipse.emf.parsley.tests.cdo.model,org.eclipse.emf.parsley.tests.cdo.product,it.rcpvision.rcptutorial03.model.cdo"/>
+<stringAttribute key="featureDefaultLocation" value="workspace"/>
+<stringAttribute key="featurePluginResolution" value="workspace"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsTestsSuite.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.parsley.tests.EmfComponentsTestsSuite"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.tests.swtbot"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx384m -XX:MaxPermSize=256m -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<setAttribute key="selected_features">
+<setEntry value="org.eclipse.emf.parsley.tests.swtbot.feature:default"/>
+</setAttribute>
+<stringAttribute key="selected_target_plugins" value="ch.qos.logback.classic@default:default,ch.qos.logback.core@default:default,ch.qos.logback.slf4j@default:false,com.atlassian.connector.eclipse.branding.ui@default:default,com.atlassian.connector.eclipse.commons.core@default:default,com.atlassian.connector.eclipse.commons.ui@default:default,com.atlassian.connector.eclipse.jira.core@default:default,com.atlassian.connector.eclipse.jira.ui@default:default,com.atlassian.connector.eclipse.monitor.core@default:default,com.atlassian.connector.eclipse.monitor.ui@default:default,com.collabnet.subversion.merge@default:default,com.google.collect@default:default,com.google.guava@default:default,com.google.inject@default:default,com.ibm.icu@default:default,com.jcraft.jsch@default:default,com.sun.jna@default:default,com.sun.syndication@default:default,com.thoughtworks.xstream@default:default,de.itemis.xtext.antlr@default:default,java_cup.runtime@default:default,javax.activation@default:default,javax.inject@default:default,javax.mail@default:default,javax.persistence@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,javax.wsdl@default:default,javax.xml.bind@default:default,javax.xml.rpc@default:default,javax.xml.soap@default:default,javax.xml.stream@default:default,javax.xml@default:default,lpg.runtime.java@default:default,net.sourceforge.texlipse@default:default,org.antlr.generator@default:default,org.antlr.runtime@default:default,org.apache.ant@default:default,org.apache.axis@default:default,org.apache.batik.bridge@default:default,org.apache.batik.css@default:default,org.apache.batik.dom.svg@default:default,org.apache.batik.dom@default:default,org.apache.batik.ext.awt@default:default,org.apache.batik.parser@default:default,org.apache.batik.pdf@default:default,org.apache.batik.svggen@default:default,org.apache.batik.transcoder@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.batik.xml@default:default,org.apache.bcel@default:default,org.apache.commons.cli@default:default,org.apache.commons.codec@default:default,org.apache.commons.discovery@default:default,org.apache.commons.el@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.io@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging*1.0.4.v201101211617@default:default,org.apache.commons.logging*1.1.1.v201005080502@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.derby@default:default,org.apache.jasper@default:default,org.apache.log4j@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.apache.lucene.highlighter@default:default,org.apache.lucene.memory@default:default,org.apache.lucene.misc@default:default,org.apache.lucene.queries@default:default,org.apache.lucene.snowball@default:default,org.apache.lucene.spellchecker@default:default,org.apache.lucene@default:default,org.apache.ws.commons.util@default:default,org.apache.xalan@default:default,org.apache.xerces@default:default,org.apache.xml.resolver@default:default,org.apache.xml.serializer@default:default,org.apache.xmlrpc@default:default,org.easymock@default:default,org.eclipse.acceleo.common@default:default,org.eclipse.acceleo.engine@default:default,org.eclipse.acceleo.model@default:default,org.eclipse.acceleo.profiler@default:default,org.eclipse.amalgam.discovery.core@default:default,org.eclipse.amalgam.discovery.modeling@default:default,org.eclipse.amalgam.discovery.ui@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.ui@default:default,org.eclipse.cdt.core@default:default,org.eclipse.cdt.ui@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.boot@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.linux.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.linux.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.cvs@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.draw2d.doc.isv@default:default,org.eclipse.draw2d@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.egit.core@default:default,org.eclipse.egit.doc@default:default,org.eclipse.egit.mylyn.ui@default:default,org.eclipse.egit.ui@default:default,org.eclipse.egit@default:default,org.eclipse.emf.ant@default:default,org.eclipse.emf.cdo.common.db@default:default,org.eclipse.emf.cdo.common@default:default,org.eclipse.emf.cdo.edit@default:default,org.eclipse.emf.cdo.location@default:default,org.eclipse.emf.cdo.migrator@default:default,org.eclipse.emf.cdo.net4j@default:default,org.eclipse.emf.cdo.server.net4j@default:default,org.eclipse.emf.cdo.server.ocl@default:default,org.eclipse.emf.cdo.server@default:default,org.eclipse.emf.cdo.team@default:default,org.eclipse.emf.cdo.ui.ide@default:default,org.eclipse.emf.cdo.ui.location@default:default,org.eclipse.emf.cdo.ui.shared@default:default,org.eclipse.emf.cdo.ui@default:default,org.eclipse.emf.cdo@default:default,org.eclipse.emf.cheatsheets@default:default,org.eclipse.emf.codegen.ecore.ui@default:default,org.eclipse.emf.codegen.ecore@default:default,org.eclipse.emf.codegen.ui@default:default,org.eclipse.emf.codegen@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.compare.diff.edit@default:default,org.eclipse.emf.compare.diff@default:default,org.eclipse.emf.compare.doc@default:default,org.eclipse.emf.compare.epatch@default:default,org.eclipse.emf.compare.match@default:default,org.eclipse.emf.compare.ui.capabilities@default:default,org.eclipse.emf.compare.ui@default:default,org.eclipse.emf.compare@default:default,org.eclipse.emf.converter@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.doc@default:default,org.eclipse.emf.ecore.change.edit@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.editor@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.ecoretools.diagram.ui.outline@default:default,org.eclipse.emf.ecoretools.diagram@default:default,org.eclipse.emf.ecoretools.doc@default:default,org.eclipse.emf.ecoretools.filters@default:default,org.eclipse.emf.ecoretools.properties@default:default,org.eclipse.emf.ecoretools.tabbedproperties@default:default,org.eclipse.emf.ecoretools@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.eef.codegen.ecore@default:default,org.eclipse.emf.eef.codegen@default:default,org.eclipse.emf.eef.components.edit@default:default,org.eclipse.emf.eef.components@default:default,org.eclipse.emf.eef.eefgen@default:default,org.eclipse.emf.eef.mapping.edit@default:default,org.eclipse.emf.eef.mapping@default:default,org.eclipse.emf.eef.runtime@default:default,org.eclipse.emf.eef.views.edit@default:default,org.eclipse.emf.eef.views@default:default,org.eclipse.emf.example.installer@default:default,org.eclipse.emf.exporter@default:default,org.eclipse.emf.generic.editor@default:default,org.eclipse.emf.importer.ecore@default:default,org.eclipse.emf.importer.java@default:default,org.eclipse.emf.importer.rose@default:default,org.eclipse.emf.importer@default:default,org.eclipse.emf.mapping.ecore.editor@default:default,org.eclipse.emf.mapping.ecore2ecore.editor@default:default,org.eclipse.emf.mapping.ecore2ecore@default:default,org.eclipse.emf.mapping.ecore2xml.ui@default:default,org.eclipse.emf.mapping.ecore2xml@default:default,org.eclipse.emf.mapping.ecore@default:default,org.eclipse.emf.mapping.ui@default:default,org.eclipse.emf.mapping.xsd2ecore.editor@default:default,org.eclipse.emf.mapping.xsd2ecore@default:default,org.eclipse.emf.mapping@default:default,org.eclipse.emf.mwe.activities@default:default,org.eclipse.emf.mwe.core@default:default,org.eclipse.emf.mwe.doc@default:default,org.eclipse.emf.mwe.ui.simpleEditor@default:default,org.eclipse.emf.mwe.ui@default:default,org.eclipse.emf.mwe.utils@default:default,org.eclipse.emf.mwe2.language.ui@default:default,org.eclipse.emf.mwe2.language@default:default,org.eclipse.emf.mwe2.launch@default:default,org.eclipse.emf.mwe2.lib@default:default,org.eclipse.emf.mwe2.runtime@default:default,org.eclipse.emf.query.doc@default:default,org.eclipse.emf.query.examples@default:default,org.eclipse.emf.query.ocl@default:default,org.eclipse.emf.query@default:default,org.eclipse.emf.transaction.doc@default:default,org.eclipse.emf.transaction.examples@default:default,org.eclipse.emf.transaction.ui@default:default,org.eclipse.emf.transaction@default:default,org.eclipse.emf.validation.doc@default:default,org.eclipse.emf.validation.examples@default:default,org.eclipse.emf.validation.ocl@default:default,org.eclipse.emf.validation.ui.ide@default:default,org.eclipse.emf.validation.ui@default:default,org.eclipse.emf.validation@default:default,org.eclipse.emf.workspace.doc@default:default,org.eclipse.emf.workspace.ui@default:default,org.eclipse.emf.workspace@default:default,org.eclipse.emf@default:default,org.eclipse.epp.mpc.core@default:default,org.eclipse.epp.mpc.help.ui@default:default,org.eclipse.epp.mpc.ui@default:default,org.eclipse.epp.package.modeling@default:default,org.eclipse.epp.usagedata.gathering@default:default,org.eclipse.epp.usagedata.recording@default:default,org.eclipse.epp.usagedata.ui@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.equinox.launcher.gtk.linux.x86@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.discovery.compatibility@default:default,org.eclipse.equinox.p2.discovery@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.ql@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.p2.ui.discovery@default:default,org.eclipse.equinox.p2.ui.importexport@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.gef.doc.isv@default:default,org.eclipse.gef.examples.flow@default:default,org.eclipse.gef.examples.logic@default:default,org.eclipse.gef.examples.shapes@default:default,org.eclipse.gef.examples.text@default:default,org.eclipse.gef.examples.ui.pde@default:default,org.eclipse.gef@default:default,org.eclipse.gmf.examples.runtime.common.service@default:default,org.eclipse.gmf.examples.runtime.diagram.decorator@default:default,org.eclipse.gmf.examples.runtime.diagram.geoshapes@default:default,org.eclipse.gmf.examples.runtime.diagram.layout@default:default,org.eclipse.gmf.examples.runtime.diagram.logic.model.edit@default:default,org.eclipse.gmf.examples.runtime.diagram.logic.model.editor@default:default,org.eclipse.gmf.examples.runtime.diagram.logic.model@default:default,org.eclipse.gmf.examples.runtime.diagram.logic@default:default,org.eclipse.gmf.examples.runtime.emf.clipboard@default:default,org.eclipse.gmf.examples.runtime.ui.pde@default:default,org.eclipse.gmf.examples.runtime@default:default,org.eclipse.gmf.runtime.common.core@default:default,org.eclipse.gmf.runtime.common.ui.action.ide@default:default,org.eclipse.gmf.runtime.common.ui.action@default:default,org.eclipse.gmf.runtime.common.ui.printing.win32@default:false,org.eclipse.gmf.runtime.common.ui.printing@default:default,org.eclipse.gmf.runtime.common.ui.services.action@default:default,org.eclipse.gmf.runtime.common.ui.services.dnd.ide@default:default,org.eclipse.gmf.runtime.common.ui.services.dnd@default:default,org.eclipse.gmf.runtime.common.ui.services.properties@default:default,org.eclipse.gmf.runtime.common.ui.services@default:default,org.eclipse.gmf.runtime.common.ui@default:default,org.eclipse.gmf.runtime.diagram.core@default:default,org.eclipse.gmf.runtime.diagram.ui.actions@default:default,org.eclipse.gmf.runtime.diagram.ui.dnd@default:default,org.eclipse.gmf.runtime.diagram.ui.geoshapes@default:default,org.eclipse.gmf.runtime.diagram.ui.printing.render@default:default,org.eclipse.gmf.runtime.diagram.ui.printing@default:default,org.eclipse.gmf.runtime.diagram.ui.properties@default:default,org.eclipse.gmf.runtime.diagram.ui.providers.ide@default:default,org.eclipse.gmf.runtime.diagram.ui.providers@default:default,org.eclipse.gmf.runtime.diagram.ui.render@default:default,org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide@default:default,org.eclipse.gmf.runtime.diagram.ui.resources.editor@default:default,org.eclipse.gmf.runtime.diagram.ui@default:default,org.eclipse.gmf.runtime.draw2d.ui.render.awt@default:default,org.eclipse.gmf.runtime.draw2d.ui.render@default:default,org.eclipse.gmf.runtime.draw2d.ui@default:default,org.eclipse.gmf.runtime.emf.clipboard.core@default:default,org.eclipse.gmf.runtime.emf.commands.core@default:default,org.eclipse.gmf.runtime.emf.core@default:default,org.eclipse.gmf.runtime.emf.type.core@default:default,org.eclipse.gmf.runtime.emf.type.ui@default:default,org.eclipse.gmf.runtime.emf.ui.properties@default:default,org.eclipse.gmf.runtime.emf.ui@default:default,org.eclipse.gmf.runtime.gef.ui@default:default,org.eclipse.gmf.runtime.notation.edit@default:default,org.eclipse.gmf.runtime.notation.providers@default:default,org.eclipse.gmf.runtime.notation.sdk@default:default,org.eclipse.gmf.runtime.notation@default:default,org.eclipse.gmf.runtime.sdk@default:default,org.eclipse.gmf@default:default,org.eclipse.help.appserver@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help.webapp@default:default,org.eclipse.help@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.jdt.apt.ui@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.doc.isv@default:default,org.eclipse.jdt.doc.user@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jdt@default:default,org.eclipse.jem.proxy@default:default,org.eclipse.jem.util@default:default,org.eclipse.jem.workbench@default:default,org.eclipse.jem@default:default,org.eclipse.jet.core@default:default,org.eclipse.jet.doc@default:default,org.eclipse.jet.source@default:default,org.eclipse.jet.ui@default:default,org.eclipse.jet.uml2@default:false,org.eclipse.jet@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jgit@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.jst.common.annotations.controller@default:default,org.eclipse.jst.common.annotations.core@default:default,org.eclipse.jst.common.frameworks@default:default,org.eclipse.jst.common.project.facet.core@default:default,org.eclipse.jst.j2ee.core@default:default,org.eclipse.jst.j2ee.jca@default:default,org.eclipse.jst.j2ee.web@default:default,org.eclipse.jst.j2ee@default:default,org.eclipse.jst.jee@default:default,org.eclipse.jst.jsf.common.runtime@default:default,org.eclipse.jst.jsf.common.ui@default:default,org.eclipse.jst.jsf.common@default:default,org.eclipse.jst.jsf.core@default:default,org.eclipse.jst.jsf.facesconfig@default:default,org.eclipse.jst.jsp.core@default:default,org.eclipse.jst.jsp.ui@default:default,org.eclipse.jst.pagedesigner.jsf.ui@default:default,org.eclipse.jst.pagedesigner.jsp.core@default:default,org.eclipse.jst.pagedesigner@default:default,org.eclipse.jst.server.core@default:default,org.eclipse.linuxtools.changelog.core@default:default,org.eclipse.linuxtools.changelog.cparser@default:false,org.eclipse.linuxtools.changelog.doc@default:default,org.eclipse.linuxtools.changelog.parsers.java@default:false,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.mylyn.bugzilla.core@default:default,org.eclipse.mylyn.bugzilla.ide@default:default,org.eclipse.mylyn.bugzilla.ui@default:default,org.eclipse.mylyn.commons.core@default:default,org.eclipse.mylyn.commons.identity@default:default,org.eclipse.mylyn.commons.net@default:default,org.eclipse.mylyn.commons.repositories@default:default,org.eclipse.mylyn.commons.screenshots@default:default,org.eclipse.mylyn.commons.soap@default:default,org.eclipse.mylyn.commons.team@default:default,org.eclipse.mylyn.commons.ui@default:default,org.eclipse.mylyn.commons.xmlrpc@default:default,org.eclipse.mylyn.context.core@default:default,org.eclipse.mylyn.context.ui@default:default,org.eclipse.mylyn.discovery.core@default:default,org.eclipse.mylyn.discovery.ui@default:default,org.eclipse.mylyn.help.ui@default:default,org.eclipse.mylyn.ide.ant@default:default,org.eclipse.mylyn.ide.ui@default:default,org.eclipse.mylyn.java.tasks@default:default,org.eclipse.mylyn.java.ui@default:default,org.eclipse.mylyn.jira.core@default:default,org.eclipse.mylyn.jira.ui@default:default,org.eclipse.mylyn.monitor.core@default:default,org.eclipse.mylyn.monitor.ui@default:default,org.eclipse.mylyn.pde.ui@default:default,org.eclipse.mylyn.resources.ui@default:default,org.eclipse.mylyn.tasks.bugs@default:default,org.eclipse.mylyn.tasks.core@default:default,org.eclipse.mylyn.tasks.search@default:default,org.eclipse.mylyn.tasks.ui@default:default,org.eclipse.mylyn.team.cvs@default:default,org.eclipse.mylyn.team.ui@default:default,org.eclipse.mylyn.web.tasks@default:default,org.eclipse.mylyn.wikitext.confluence.core@default:default,org.eclipse.mylyn.wikitext.confluence.ui@default:default,org.eclipse.mylyn.wikitext.core@default:default,org.eclipse.mylyn.wikitext.help.sdk@default:default,org.eclipse.mylyn.wikitext.help.ui@default:default,org.eclipse.mylyn.wikitext.mediawiki.core@default:default,org.eclipse.mylyn.wikitext.mediawiki.ui@default:default,org.eclipse.mylyn.wikitext.tasks.ui@default:default,org.eclipse.mylyn.wikitext.tests@default:default,org.eclipse.mylyn.wikitext.textile.core@default:default,org.eclipse.mylyn.wikitext.textile.ui@default:default,org.eclipse.mylyn.wikitext.tracwiki.core@default:default,org.eclipse.mylyn.wikitext.tracwiki.ui@default:default,org.eclipse.mylyn.wikitext.twiki.core@default:default,org.eclipse.mylyn.wikitext.twiki.ui@default:default,org.eclipse.mylyn.wikitext.ui@default:default,org.eclipse.mylyn@default:default,org.eclipse.net4j.db.derby@default:default,org.eclipse.net4j.db.h2@default:default,org.eclipse.net4j.db@default:default,org.eclipse.net4j.http.common@default:default,org.eclipse.net4j.http.server@default:default,org.eclipse.net4j.http@default:default,org.eclipse.net4j.jms.api@default:default,org.eclipse.net4j.jvm@default:default,org.eclipse.net4j.tcp@default:default,org.eclipse.net4j.ui.shared@default:default,org.eclipse.net4j.util.ui@default:default,org.eclipse.net4j.util@default:default,org.eclipse.net4j@default:default,org.eclipse.ocl.doc@default:default,org.eclipse.ocl.ecore.edit@default:default,org.eclipse.ocl.ecore@default:default,org.eclipse.ocl.edit@default:default,org.eclipse.ocl.uml.edit@default:default,org.eclipse.ocl.uml@default:default,org.eclipse.ocl@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.api.tools.ui@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.pde.ds.ui@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.pde.ua.ui@default:default,org.eclipse.pde.ui.templates@default:default,org.eclipse.pde.ui@default:default,org.eclipse.pde@default:default,org.eclipse.platform.doc.isv@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.platform@default:default,org.eclipse.rcp@default:default,org.eclipse.sdk@default:default,org.eclipse.search@default:default,org.eclipse.swt.gtk.linux.x86@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.ant.optional.junit3@default:false,org.eclipse.swtbot.ant.optional.junit4@default:false,org.eclipse.swtbot.eclipse.core@default:default,org.eclipse.swtbot.eclipse.finder@default:default,org.eclipse.swtbot.eclipse.gef.finder@default:default,org.eclipse.swtbot.eclipse.junit3.headless@default:default,org.eclipse.swtbot.eclipse.junit4.headless@default:default,org.eclipse.swtbot.eclipse.spy@default:default,org.eclipse.swtbot.eclipse.ui@default:default,org.eclipse.swtbot.forms.finder@default:default,org.eclipse.swtbot.go@default:default,org.eclipse.swtbot.junit4_x@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.team.core@default:default,org.eclipse.team.cvs.core@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.team.cvs.ui@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.net@default:default,org.eclipse.ui.presentations.r21@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench.compatibility@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.uml2.codegen.ecore.ui@default:default,org.eclipse.uml2.codegen.ecore@default:default,org.eclipse.uml2.common.edit@default:default,org.eclipse.uml2.common@default:default,org.eclipse.uml2.doc@default:default,org.eclipse.uml2.examples.uml.ui@default:default,org.eclipse.uml2.examples@default:default,org.eclipse.uml2.uml.ecore.exporter@default:default,org.eclipse.uml2.uml.ecore.importer@default:default,org.eclipse.uml2.uml.edit@default:default,org.eclipse.uml2.uml.editor@default:default,org.eclipse.uml2.uml.resources@default:default,org.eclipse.uml2.uml@default:default,org.eclipse.uml2@default:default,org.eclipse.update.configurator@3:true,org.eclipse.update.core.linux@default:false,org.eclipse.update.core@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.update.ui@default:default,org.eclipse.wb.core.databinding.xml@default:default,org.eclipse.wb.core.databinding@default:default,org.eclipse.wb.core.lib@default:default,org.eclipse.wb.core.ui@default:default,org.eclipse.wb.core.xml@default:default,org.eclipse.wb.core@default:default,org.eclipse.wb.discovery.core@default:default,org.eclipse.wb.discovery.ui@default:default,org.eclipse.wb.doc.user@default:default,org.eclipse.wb.jdt.fragment@default:false,org.eclipse.wb.layout.group@default:default,org.eclipse.wb.os.linux@default:default,org.eclipse.wb.os@default:default,org.eclipse.wb.rcp.SWT_AWT@default:default,org.eclipse.wb.rcp.databinding.emf@default:default,org.eclipse.wb.rcp.databinding.xwt@default:default,org.eclipse.wb.rcp.databinding@default:default,org.eclipse.wb.rcp.nebula@default:default,org.eclipse.wb.rcp.swing2swt@default:default,org.eclipse.wb.rcp@default:default,org.eclipse.wb.runtime.lib@default:default,org.eclipse.wb.runtime@default:default,org.eclipse.wb.swing.FormLayout.lib@default:default,org.eclipse.wb.swing.FormLayout@default:default,org.eclipse.wb.swing.MigLayout.lib@default:default,org.eclipse.wb.swing.MigLayout@default:default,org.eclipse.wb.swing.databinding@default:default,org.eclipse.wb.swing.java6@default:default,org.eclipse.wb.swing.jsr296@default:default,org.eclipse.wb.swing@default:default,org.eclipse.wb.swt.widgets.baseline@default:default,org.eclipse.wb.swt@default:default,org.eclipse.wb.xwt@default:default,org.eclipse.wst.common.core@default:default,org.eclipse.wst.common.emf@default:default,org.eclipse.wst.common.emfworkbench.integration@default:default,org.eclipse.wst.common.environment@default:default,org.eclipse.wst.common.frameworks.ui@default:default,org.eclipse.wst.common.frameworks@default:default,org.eclipse.wst.common.infopop@default:default,org.eclipse.wst.common.modulecore.ui@default:default,org.eclipse.wst.common.modulecore@default:default,org.eclipse.wst.common.project.facet.core@default:default,org.eclipse.wst.common.snippets@default:default,org.eclipse.wst.common.ui@default:default,org.eclipse.wst.common.uriresolver@default:default,org.eclipse.wst.css.core@default:default,org.eclipse.wst.css.ui@default:default,org.eclipse.wst.dtd.core@default:default,org.eclipse.wst.dtd.ui.infopop@default:default,org.eclipse.wst.dtd.ui@default:default,org.eclipse.wst.dtdeditor.doc.user@default:default,org.eclipse.wst.html.core@default:default,org.eclipse.wst.html.ui@default:default,org.eclipse.wst.internet.cache@default:default,org.eclipse.wst.server.core@default:default,org.eclipse.wst.sse.core@default:default,org.eclipse.wst.sse.doc.user@default:default,org.eclipse.wst.sse.ui.infopop@default:default,org.eclipse.wst.sse.ui@default:default,org.eclipse.wst.standard.schemas@default:default,org.eclipse.wst.validation.infopop@default:default,org.eclipse.wst.validation.ui@default:default,org.eclipse.wst.validation@default:default,org.eclipse.wst.web@default:default,org.eclipse.wst.xml.core@default:default,org.eclipse.wst.xml.ui.infopop@default:default,org.eclipse.wst.xml.ui@default:default,org.eclipse.wst.xml.xpath.core@default:default,org.eclipse.wst.xml.xpath.ui@default:default,org.eclipse.wst.xml.xpath2.processor.doc.user@default:default,org.eclipse.wst.xml.xpath2.processor@default:default,org.eclipse.wst.xml.xpath2.wtptypes@default:default,org.eclipse.wst.xml.xpath2@default:default,org.eclipse.wst.xmleditor.doc.user@default:default,org.eclipse.wst.xsd.core@default:default,org.eclipse.wst.xsd.ui@default:default,org.eclipse.wst.xsdeditor.doc.user@default:default,org.eclipse.wst.xsl.core@default:default,org.eclipse.wst.xsl.debug.ui@default:default,org.eclipse.wst.xsl.doc@default:default,org.eclipse.wst.xsl.exslt.core@default:default,org.eclipse.wst.xsl.exslt.ui@default:default,org.eclipse.wst.xsl.jaxp.debug.ui@default:default,org.eclipse.wst.xsl.jaxp.debug@default:default,org.eclipse.wst.xsl.jaxp.launching@default:default,org.eclipse.wst.xsl.launching@default:default,org.eclipse.wst.xsl.saxon@default:default,org.eclipse.wst.xsl.ui@default:default,org.eclipse.wst.xsl.xalan@default:default,org.eclipse.wst.xsl@default:default,org.eclipse.xpand.activities@default:default,org.eclipse.xpand.doc@default:default,org.eclipse.xpand.examples@default:default,org.eclipse.xpand.incremental@default:default,org.eclipse.xpand.support.cdt@default:default,org.eclipse.xpand.ui@default:default,org.eclipse.xpand@default:default,org.eclipse.xsd.cheatsheets@default:default,org.eclipse.xsd.doc@default:default,org.eclipse.xsd.ecore.converter@default:default,org.eclipse.xsd.ecore.exporter@default:default,org.eclipse.xsd.ecore.importer@default:default,org.eclipse.xsd.edit@default:default,org.eclipse.xsd.editor@default:default,org.eclipse.xsd.example.installer@default:default,org.eclipse.xsd.mapping.editor@default:default,org.eclipse.xsd.mapping@default:default,org.eclipse.xsd@default:default,org.eclipse.xtend.backend.compiler@default:default,org.eclipse.xtend.backend.ui@default:default,org.eclipse.xtend.backend.uml2types@default:default,org.eclipse.xtend.backend.xsdtypes@default:default,org.eclipse.xtend.backend@default:default,org.eclipse.xtend.check.ui@default:default,org.eclipse.xtend.middleend.xpand@default:default,org.eclipse.xtend.middleend.xtend@default:default,org.eclipse.xtend.profiler@default:default,org.eclipse.xtend.shared.ui@default:default,org.eclipse.xtend.typesystem.emf.ui@default:default,org.eclipse.xtend.typesystem.emf@default:default,org.eclipse.xtend.typesystem.uml2.ui@default:default,org.eclipse.xtend.typesystem.uml2@default:default,org.eclipse.xtend.typesystem.xsd.ui@default:default,org.eclipse.xtend.typesystem.xsd@default:default,org.eclipse.xtend.ui@default:default,org.eclipse.xtend.util.stdlib@default:default,org.eclipse.xtend2.lib@default:default,org.eclipse.xtend@default:default,org.eclipse.xtext.activities@default:default,org.eclipse.xtext.builder@default:default,org.eclipse.xtext.common.types.shared@default:default,org.eclipse.xtext.common.types.ui@default:default,org.eclipse.xtext.common.types@default:default,org.eclipse.xtext.doc@default:default,org.eclipse.xtext.ecore@default:default,org.eclipse.xtext.generator@default:default,org.eclipse.xtext.junit4@default:default,org.eclipse.xtext.junit@default:default,org.eclipse.xtext.logging@default:false,org.eclipse.xtext.purexbase.ui@default:default,org.eclipse.xtext.purexbase@default:default,org.eclipse.xtext.ui.codetemplates.ui@default:default,org.eclipse.xtext.ui.codetemplates@default:default,org.eclipse.xtext.ui.ecore@default:default,org.eclipse.xtext.ui.junit@default:default,org.eclipse.xtext.ui.shared@default:default,org.eclipse.xtext.ui@default:default,org.eclipse.xtext.util@default:default,org.eclipse.xtext.xbase.junit@default:default,org.eclipse.xtext.xbase.lib@default:default,org.eclipse.xtext.xbase.ui@default:default,org.eclipse.xtext.xbase@default:default,org.eclipse.xtext.xtend2.lib@default:default,org.eclipse.xtext.xtend2.ui@default:default,org.eclipse.xtext.xtend2@default:default,org.eclipse.xtext.xtext.ui.examples@default:default,org.eclipse.xtext.xtext.ui.graph@default:default,org.eclipse.xtext.xtext.ui@default:default,org.eclipse.xtext@default:default,org.h2@default:default,org.hamcrest.core@default:default,org.hamcrest.integration@default:default,org.hamcrest.library@default:default,org.hamcrest.text@default:default,org.hamcrest@default:default,org.jdom@default:default,org.jdom_jaxen@default:default,org.joda.time@default:default,org.junit*3.8.2.v3_8_2_v20100427-1100@default:default,org.junit*4.8.2.v4_8_2_v20110321-1705@default:default,org.junit4@default:default,org.mortbay.jetty.server@default:default,org.mortbay.jetty.util@default:default,org.objectweb.asm@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.slf4j.api@default:default,org.tigris.subversion.clientadapter@default:default,org.tigris.subversion.subclipse.core@default:default,org.tigris.subversion.subclipse.ui@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.parsley.tests.swtbot@default:default,org.eclipse.emf.parsley.wizards@default:default,org.eclipse.emf.parsley@default:default,org.eclipse.emf.parsley.examples.library.edit@default:default,org.eclipse.emf.parsley.examples.library.editor@default:default,org.eclipse.emf.parsley.examples.library@default:default,org.eclipse.swtbot.examples@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.xtext.example.fowlerdsl.ui@default:default,org.eclipse.xtext.example.fowlerdsl@default:default"/>
+<booleanAttribute key="show_selected_only" value="true"/>
+<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="true"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsViewTests.launch b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsViewTests.launch
new file mode 100644
index 000000000..5347670f1
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsViewTests.launch
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.swtbot.eclipse.ui.launcher.JunitLaunchConfig">
+<setAttribute key="additional_plugins">
+<setEntry value="org.eclipse.emf.parsley.tests.swtbot:0.1.0.qualifier:default:false"/>
+</setAttribute>
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="deselected_workspace_plugins" value="ProvaView,ProvaWizard,it.rcpvision.cdo04.editor,it.rcpvision.cdo04.model,org.eclipse.emf.parsley.cdo,org.eclipse.emf.parsley.cdo.tests,org.eclipse.emf.parsley.cdoexample.masterdetail.table,org.eclipse.emf.parsley.cdoexample.masterdetail.tree,org.eclipse.emf.parsley.cdoexample.model,org.eclipse.emf.parsley.cdoexample.model.business,org.eclipse.emf.parsley.cdoexample.rcp,org.eclipse.emf.parsley.cdoexample.rcp.tests,org.eclipse.emf.parsley.tests.cdo.app,org.eclipse.emf.parsley.tests.cdo.model,org.eclipse.emf.parsley.tests.cdo.product,it.rcpvision.rcptutorial03.model.cdo"/>
+<stringAttribute key="featureDefaultLocation" value="workspace"/>
+<stringAttribute key="featurePluginResolution" value="workspace"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsViewTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.parsley.tests.EmfComponentsViewTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.tests.swtbot"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx384m -XX:MaxPermSize=256m -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<setAttribute key="selected_features">
+<setEntry value="org.eclipse.emf.parsley.tests.swtbot.feature:default"/>
+</setAttribute>
+<stringAttribute key="selected_target_plugins" value="ch.qos.logback.classic@default:default,ch.qos.logback.core@default:default,ch.qos.logback.slf4j@default:false,com.atlassian.connector.eclipse.branding.ui@default:default,com.atlassian.connector.eclipse.commons.core@default:default,com.atlassian.connector.eclipse.commons.ui@default:default,com.atlassian.connector.eclipse.jira.core@default:default,com.atlassian.connector.eclipse.jira.ui@default:default,com.atlassian.connector.eclipse.monitor.core@default:default,com.atlassian.connector.eclipse.monitor.ui@default:default,com.collabnet.subversion.merge@default:default,com.google.collect@default:default,com.google.guava@default:default,com.google.inject@default:default,com.ibm.icu@default:default,com.jcraft.jsch@default:default,com.sun.jna@default:default,com.sun.syndication@default:default,com.thoughtworks.xstream@default:default,de.itemis.xtext.antlr@default:default,java_cup.runtime@default:default,javax.activation@default:default,javax.inject@default:default,javax.mail@default:default,javax.persistence@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,javax.wsdl@default:default,javax.xml.bind@default:default,javax.xml.rpc@default:default,javax.xml.soap@default:default,javax.xml.stream@default:default,javax.xml@default:default,lpg.runtime.java@default:default,net.sourceforge.texlipse@default:default,org.antlr.generator@default:default,org.antlr.runtime@default:default,org.apache.ant@default:default,org.apache.axis@default:default,org.apache.batik.bridge@default:default,org.apache.batik.css@default:default,org.apache.batik.dom.svg@default:default,org.apache.batik.dom@default:default,org.apache.batik.ext.awt@default:default,org.apache.batik.parser@default:default,org.apache.batik.pdf@default:default,org.apache.batik.svggen@default:default,org.apache.batik.transcoder@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.batik.xml@default:default,org.apache.bcel@default:default,org.apache.commons.cli@default:default,org.apache.commons.codec@default:default,org.apache.commons.discovery@default:default,org.apache.commons.el@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.io@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging*1.0.4.v201101211617@default:default,org.apache.commons.logging*1.1.1.v201005080502@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.derby@default:default,org.apache.jasper@default:default,org.apache.log4j@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.apache.lucene.highlighter@default:default,org.apache.lucene.memory@default:default,org.apache.lucene.misc@default:default,org.apache.lucene.queries@default:default,org.apache.lucene.snowball@default:default,org.apache.lucene.spellchecker@default:default,org.apache.lucene@default:default,org.apache.ws.commons.util@default:default,org.apache.xalan@default:default,org.apache.xerces@default:default,org.apache.xml.resolver@default:default,org.apache.xml.serializer@default:default,org.apache.xmlrpc@default:default,org.easymock@default:default,org.eclipse.acceleo.common@default:default,org.eclipse.acceleo.engine@default:default,org.eclipse.acceleo.model@default:default,org.eclipse.acceleo.profiler@default:default,org.eclipse.amalgam.discovery.core@default:default,org.eclipse.amalgam.discovery.modeling@default:default,org.eclipse.amalgam.discovery.ui@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.ui@default:default,org.eclipse.cdt.core@default:default,org.eclipse.cdt.ui@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.boot@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.linux.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.linux.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.cvs@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.draw2d.doc.isv@default:default,org.eclipse.draw2d@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.egit.core@default:default,org.eclipse.egit.doc@default:default,org.eclipse.egit.mylyn.ui@default:default,org.eclipse.egit.ui@default:default,org.eclipse.egit@default:default,org.eclipse.emf.ant@default:default,org.eclipse.emf.cdo.common.db@default:default,org.eclipse.emf.cdo.common@default:default,org.eclipse.emf.cdo.edit@default:default,org.eclipse.emf.cdo.location@default:default,org.eclipse.emf.cdo.migrator@default:default,org.eclipse.emf.cdo.net4j@default:default,org.eclipse.emf.cdo.server.net4j@default:default,org.eclipse.emf.cdo.server.ocl@default:default,org.eclipse.emf.cdo.server@default:default,org.eclipse.emf.cdo.team@default:default,org.eclipse.emf.cdo.ui.ide@default:default,org.eclipse.emf.cdo.ui.location@default:default,org.eclipse.emf.cdo.ui.shared@default:default,org.eclipse.emf.cdo.ui@default:default,org.eclipse.emf.cdo@default:default,org.eclipse.emf.cheatsheets@default:default,org.eclipse.emf.codegen.ecore.ui@default:default,org.eclipse.emf.codegen.ecore@default:default,org.eclipse.emf.codegen.ui@default:default,org.eclipse.emf.codegen@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.compare.diff.edit@default:default,org.eclipse.emf.compare.diff@default:default,org.eclipse.emf.compare.doc@default:default,org.eclipse.emf.compare.epatch@default:default,org.eclipse.emf.compare.match@default:default,org.eclipse.emf.compare.ui.capabilities@default:default,org.eclipse.emf.compare.ui@default:default,org.eclipse.emf.compare@default:default,org.eclipse.emf.converter@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.doc@default:default,org.eclipse.emf.ecore.change.edit@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.editor@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.ecoretools.diagram.ui.outline@default:default,org.eclipse.emf.ecoretools.diagram@default:default,org.eclipse.emf.ecoretools.doc@default:default,org.eclipse.emf.ecoretools.filters@default:default,org.eclipse.emf.ecoretools.properties@default:default,org.eclipse.emf.ecoretools.tabbedproperties@default:default,org.eclipse.emf.ecoretools@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.eef.codegen.ecore@default:default,org.eclipse.emf.eef.codegen@default:default,org.eclipse.emf.eef.components.edit@default:default,org.eclipse.emf.eef.components@default:default,org.eclipse.emf.eef.eefgen@default:default,org.eclipse.emf.eef.mapping.edit@default:default,org.eclipse.emf.eef.mapping@default:default,org.eclipse.emf.eef.runtime@default:default,org.eclipse.emf.eef.views.edit@default:default,org.eclipse.emf.eef.views@default:default,org.eclipse.emf.example.installer@default:default,org.eclipse.emf.exporter@default:default,org.eclipse.emf.generic.editor@default:default,org.eclipse.emf.importer.ecore@default:default,org.eclipse.emf.importer.java@default:default,org.eclipse.emf.importer.rose@default:default,org.eclipse.emf.importer@default:default,org.eclipse.emf.mapping.ecore.editor@default:default,org.eclipse.emf.mapping.ecore2ecore.editor@default:default,org.eclipse.emf.mapping.ecore2ecore@default:default,org.eclipse.emf.mapping.ecore2xml.ui@default:default,org.eclipse.emf.mapping.ecore2xml@default:default,org.eclipse.emf.mapping.ecore@default:default,org.eclipse.emf.mapping.ui@default:default,org.eclipse.emf.mapping.xsd2ecore.editor@default:default,org.eclipse.emf.mapping.xsd2ecore@default:default,org.eclipse.emf.mapping@default:default,org.eclipse.emf.mwe.activities@default:default,org.eclipse.emf.mwe.core@default:default,org.eclipse.emf.mwe.doc@default:default,org.eclipse.emf.mwe.ui.simpleEditor@default:default,org.eclipse.emf.mwe.ui@default:default,org.eclipse.emf.mwe.utils@default:default,org.eclipse.emf.mwe2.language.ui@default:default,org.eclipse.emf.mwe2.language@default:default,org.eclipse.emf.mwe2.launch@default:default,org.eclipse.emf.mwe2.lib@default:default,org.eclipse.emf.mwe2.runtime@default:default,org.eclipse.emf.query.doc@default:default,org.eclipse.emf.query.examples@default:default,org.eclipse.emf.query.ocl@default:default,org.eclipse.emf.query@default:default,org.eclipse.emf.transaction.doc@default:default,org.eclipse.emf.transaction.examples@default:default,org.eclipse.emf.transaction.ui@default:default,org.eclipse.emf.transaction@default:default,org.eclipse.emf.validation.doc@default:default,org.eclipse.emf.validation.examples@default:default,org.eclipse.emf.validation.ocl@default:default,org.eclipse.emf.validation.ui.ide@default:default,org.eclipse.emf.validation.ui@default:default,org.eclipse.emf.validation@default:default,org.eclipse.emf.workspace.doc@default:default,org.eclipse.emf.workspace.ui@default:default,org.eclipse.emf.workspace@default:default,org.eclipse.emf@default:default,org.eclipse.epp.mpc.core@default:default,org.eclipse.epp.mpc.help.ui@default:default,org.eclipse.epp.mpc.ui@default:default,org.eclipse.epp.package.modeling@default:default,org.eclipse.epp.usagedata.gathering@default:default,org.eclipse.epp.usagedata.recording@default:default,org.eclipse.epp.usagedata.ui@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.equinox.launcher.gtk.linux.x86@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.discovery.compatibility@default:default,org.eclipse.equinox.p2.discovery@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.ql@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.p2.ui.discovery@default:default,org.eclipse.equinox.p2.ui.importexport@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.gef.doc.isv@default:default,org.eclipse.gef.examples.flow@default:default,org.eclipse.gef.examples.logic@default:default,org.eclipse.gef.examples.shapes@default:default,org.eclipse.gef.examples.text@default:default,org.eclipse.gef.examples.ui.pde@default:default,org.eclipse.gef@default:default,org.eclipse.gmf.examples.runtime.common.service@default:default,org.eclipse.gmf.examples.runtime.diagram.decorator@default:default,org.eclipse.gmf.examples.runtime.diagram.geoshapes@default:default,org.eclipse.gmf.examples.runtime.diagram.layout@default:default,org.eclipse.gmf.examples.runtime.diagram.logic.model.edit@default:default,org.eclipse.gmf.examples.runtime.diagram.logic.model.editor@default:default,org.eclipse.gmf.examples.runtime.diagram.logic.model@default:default,org.eclipse.gmf.examples.runtime.diagram.logic@default:default,org.eclipse.gmf.examples.runtime.emf.clipboard@default:default,org.eclipse.gmf.examples.runtime.ui.pde@default:default,org.eclipse.gmf.examples.runtime@default:default,org.eclipse.gmf.runtime.common.core@default:default,org.eclipse.gmf.runtime.common.ui.action.ide@default:default,org.eclipse.gmf.runtime.common.ui.action@default:default,org.eclipse.gmf.runtime.common.ui.printing.win32@default:false,org.eclipse.gmf.runtime.common.ui.printing@default:default,org.eclipse.gmf.runtime.common.ui.services.action@default:default,org.eclipse.gmf.runtime.common.ui.services.dnd.ide@default:default,org.eclipse.gmf.runtime.common.ui.services.dnd@default:default,org.eclipse.gmf.runtime.common.ui.services.properties@default:default,org.eclipse.gmf.runtime.common.ui.services@default:default,org.eclipse.gmf.runtime.common.ui@default:default,org.eclipse.gmf.runtime.diagram.core@default:default,org.eclipse.gmf.runtime.diagram.ui.actions@default:default,org.eclipse.gmf.runtime.diagram.ui.dnd@default:default,org.eclipse.gmf.runtime.diagram.ui.geoshapes@default:default,org.eclipse.gmf.runtime.diagram.ui.printing.render@default:default,org.eclipse.gmf.runtime.diagram.ui.printing@default:default,org.eclipse.gmf.runtime.diagram.ui.properties@default:default,org.eclipse.gmf.runtime.diagram.ui.providers.ide@default:default,org.eclipse.gmf.runtime.diagram.ui.providers@default:default,org.eclipse.gmf.runtime.diagram.ui.render@default:default,org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide@default:default,org.eclipse.gmf.runtime.diagram.ui.resources.editor@default:default,org.eclipse.gmf.runtime.diagram.ui@default:default,org.eclipse.gmf.runtime.draw2d.ui.render.awt@default:default,org.eclipse.gmf.runtime.draw2d.ui.render@default:default,org.eclipse.gmf.runtime.draw2d.ui@default:default,org.eclipse.gmf.runtime.emf.clipboard.core@default:default,org.eclipse.gmf.runtime.emf.commands.core@default:default,org.eclipse.gmf.runtime.emf.core@default:default,org.eclipse.gmf.runtime.emf.type.core@default:default,org.eclipse.gmf.runtime.emf.type.ui@default:default,org.eclipse.gmf.runtime.emf.ui.properties@default:default,org.eclipse.gmf.runtime.emf.ui@default:default,org.eclipse.gmf.runtime.gef.ui@default:default,org.eclipse.gmf.runtime.notation.edit@default:default,org.eclipse.gmf.runtime.notation.providers@default:default,org.eclipse.gmf.runtime.notation.sdk@default:default,org.eclipse.gmf.runtime.notation@default:default,org.eclipse.gmf.runtime.sdk@default:default,org.eclipse.gmf@default:default,org.eclipse.help.appserver@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help.webapp@default:default,org.eclipse.help@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.jdt.apt.ui@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.doc.isv@default:default,org.eclipse.jdt.doc.user@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jdt@default:default,org.eclipse.jem.proxy@default:default,org.eclipse.jem.util@default:default,org.eclipse.jem.workbench@default:default,org.eclipse.jem@default:default,org.eclipse.jet.core@default:default,org.eclipse.jet.doc@default:default,org.eclipse.jet.source@default:default,org.eclipse.jet.ui@default:default,org.eclipse.jet.uml2@default:false,org.eclipse.jet@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jgit@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.jst.common.annotations.controller@default:default,org.eclipse.jst.common.annotations.core@default:default,org.eclipse.jst.common.frameworks@default:default,org.eclipse.jst.common.project.facet.core@default:default,org.eclipse.jst.j2ee.core@default:default,org.eclipse.jst.j2ee.jca@default:default,org.eclipse.jst.j2ee.web@default:default,org.eclipse.jst.j2ee@default:default,org.eclipse.jst.jee@default:default,org.eclipse.jst.jsf.common.runtime@default:default,org.eclipse.jst.jsf.common.ui@default:default,org.eclipse.jst.jsf.common@default:default,org.eclipse.jst.jsf.core@default:default,org.eclipse.jst.jsf.facesconfig@default:default,org.eclipse.jst.jsp.core@default:default,org.eclipse.jst.jsp.ui@default:default,org.eclipse.jst.pagedesigner.jsf.ui@default:default,org.eclipse.jst.pagedesigner.jsp.core@default:default,org.eclipse.jst.pagedesigner@default:default,org.eclipse.jst.server.core@default:default,org.eclipse.linuxtools.changelog.core@default:default,org.eclipse.linuxtools.changelog.cparser@default:false,org.eclipse.linuxtools.changelog.doc@default:default,org.eclipse.linuxtools.changelog.parsers.java@default:false,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.mylyn.bugzilla.core@default:default,org.eclipse.mylyn.bugzilla.ide@default:default,org.eclipse.mylyn.bugzilla.ui@default:default,org.eclipse.mylyn.commons.core@default:default,org.eclipse.mylyn.commons.identity@default:default,org.eclipse.mylyn.commons.net@default:default,org.eclipse.mylyn.commons.repositories@default:default,org.eclipse.mylyn.commons.screenshots@default:default,org.eclipse.mylyn.commons.soap@default:default,org.eclipse.mylyn.commons.team@default:default,org.eclipse.mylyn.commons.ui@default:default,org.eclipse.mylyn.commons.xmlrpc@default:default,org.eclipse.mylyn.context.core@default:default,org.eclipse.mylyn.context.ui@default:default,org.eclipse.mylyn.discovery.core@default:default,org.eclipse.mylyn.discovery.ui@default:default,org.eclipse.mylyn.help.ui@default:default,org.eclipse.mylyn.ide.ant@default:default,org.eclipse.mylyn.ide.ui@default:default,org.eclipse.mylyn.java.tasks@default:default,org.eclipse.mylyn.java.ui@default:default,org.eclipse.mylyn.jira.core@default:default,org.eclipse.mylyn.jira.ui@default:default,org.eclipse.mylyn.monitor.core@default:default,org.eclipse.mylyn.monitor.ui@default:default,org.eclipse.mylyn.pde.ui@default:default,org.eclipse.mylyn.resources.ui@default:default,org.eclipse.mylyn.tasks.bugs@default:default,org.eclipse.mylyn.tasks.core@default:default,org.eclipse.mylyn.tasks.search@default:default,org.eclipse.mylyn.tasks.ui@default:default,org.eclipse.mylyn.team.cvs@default:default,org.eclipse.mylyn.team.ui@default:default,org.eclipse.mylyn.web.tasks@default:default,org.eclipse.mylyn.wikitext.confluence.core@default:default,org.eclipse.mylyn.wikitext.confluence.ui@default:default,org.eclipse.mylyn.wikitext.core@default:default,org.eclipse.mylyn.wikitext.help.sdk@default:default,org.eclipse.mylyn.wikitext.help.ui@default:default,org.eclipse.mylyn.wikitext.mediawiki.core@default:default,org.eclipse.mylyn.wikitext.mediawiki.ui@default:default,org.eclipse.mylyn.wikitext.tasks.ui@default:default,org.eclipse.mylyn.wikitext.tests@default:default,org.eclipse.mylyn.wikitext.textile.core@default:default,org.eclipse.mylyn.wikitext.textile.ui@default:default,org.eclipse.mylyn.wikitext.tracwiki.core@default:default,org.eclipse.mylyn.wikitext.tracwiki.ui@default:default,org.eclipse.mylyn.wikitext.twiki.core@default:default,org.eclipse.mylyn.wikitext.twiki.ui@default:default,org.eclipse.mylyn.wikitext.ui@default:default,org.eclipse.mylyn@default:default,org.eclipse.net4j.db.derby@default:default,org.eclipse.net4j.db.h2@default:default,org.eclipse.net4j.db@default:default,org.eclipse.net4j.http.common@default:default,org.eclipse.net4j.http.server@default:default,org.eclipse.net4j.http@default:default,org.eclipse.net4j.jms.api@default:default,org.eclipse.net4j.jvm@default:default,org.eclipse.net4j.tcp@default:default,org.eclipse.net4j.ui.shared@default:default,org.eclipse.net4j.util.ui@default:default,org.eclipse.net4j.util@default:default,org.eclipse.net4j@default:default,org.eclipse.ocl.doc@default:default,org.eclipse.ocl.ecore.edit@default:default,org.eclipse.ocl.ecore@default:default,org.eclipse.ocl.edit@default:default,org.eclipse.ocl.uml.edit@default:default,org.eclipse.ocl.uml@default:default,org.eclipse.ocl@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.api.tools.ui@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.pde.ds.ui@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.pde.ua.ui@default:default,org.eclipse.pde.ui.templates@default:default,org.eclipse.pde.ui@default:default,org.eclipse.pde@default:default,org.eclipse.platform.doc.isv@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.platform@default:default,org.eclipse.rcp@default:default,org.eclipse.sdk@default:default,org.eclipse.search@default:default,org.eclipse.swt.gtk.linux.x86@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.ant.optional.junit3@default:false,org.eclipse.swtbot.ant.optional.junit4@default:false,org.eclipse.swtbot.eclipse.core@default:default,org.eclipse.swtbot.eclipse.finder@default:default,org.eclipse.swtbot.eclipse.gef.finder@default:default,org.eclipse.swtbot.eclipse.junit3.headless@default:default,org.eclipse.swtbot.eclipse.junit4.headless@default:default,org.eclipse.swtbot.eclipse.spy@default:default,org.eclipse.swtbot.eclipse.ui@default:default,org.eclipse.swtbot.forms.finder@default:default,org.eclipse.swtbot.go@default:default,org.eclipse.swtbot.junit4_x@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.team.core@default:default,org.eclipse.team.cvs.core@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.team.cvs.ui@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.net@default:default,org.eclipse.ui.presentations.r21@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench.compatibility@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.uml2.codegen.ecore.ui@default:default,org.eclipse.uml2.codegen.ecore@default:default,org.eclipse.uml2.common.edit@default:default,org.eclipse.uml2.common@default:default,org.eclipse.uml2.doc@default:default,org.eclipse.uml2.examples.uml.ui@default:default,org.eclipse.uml2.examples@default:default,org.eclipse.uml2.uml.ecore.exporter@default:default,org.eclipse.uml2.uml.ecore.importer@default:default,org.eclipse.uml2.uml.edit@default:default,org.eclipse.uml2.uml.editor@default:default,org.eclipse.uml2.uml.resources@default:default,org.eclipse.uml2.uml@default:default,org.eclipse.uml2@default:default,org.eclipse.update.configurator@3:true,org.eclipse.update.core.linux@default:false,org.eclipse.update.core@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.update.ui@default:default,org.eclipse.wb.core.databinding.xml@default:default,org.eclipse.wb.core.databinding@default:default,org.eclipse.wb.core.lib@default:default,org.eclipse.wb.core.ui@default:default,org.eclipse.wb.core.xml@default:default,org.eclipse.wb.core@default:default,org.eclipse.wb.discovery.core@default:default,org.eclipse.wb.discovery.ui@default:default,org.eclipse.wb.doc.user@default:default,org.eclipse.wb.jdt.fragment@default:false,org.eclipse.wb.layout.group@default:default,org.eclipse.wb.os.linux@default:default,org.eclipse.wb.os@default:default,org.eclipse.wb.rcp.SWT_AWT@default:default,org.eclipse.wb.rcp.databinding.emf@default:default,org.eclipse.wb.rcp.databinding.xwt@default:default,org.eclipse.wb.rcp.databinding@default:default,org.eclipse.wb.rcp.nebula@default:default,org.eclipse.wb.rcp.swing2swt@default:default,org.eclipse.wb.rcp@default:default,org.eclipse.wb.runtime.lib@default:default,org.eclipse.wb.runtime@default:default,org.eclipse.wb.swing.FormLayout.lib@default:default,org.eclipse.wb.swing.FormLayout@default:default,org.eclipse.wb.swing.MigLayout.lib@default:default,org.eclipse.wb.swing.MigLayout@default:default,org.eclipse.wb.swing.databinding@default:default,org.eclipse.wb.swing.java6@default:default,org.eclipse.wb.swing.jsr296@default:default,org.eclipse.wb.swing@default:default,org.eclipse.wb.swt.widgets.baseline@default:default,org.eclipse.wb.swt@default:default,org.eclipse.wb.xwt@default:default,org.eclipse.wst.common.core@default:default,org.eclipse.wst.common.emf@default:default,org.eclipse.wst.common.emfworkbench.integration@default:default,org.eclipse.wst.common.environment@default:default,org.eclipse.wst.common.frameworks.ui@default:default,org.eclipse.wst.common.frameworks@default:default,org.eclipse.wst.common.infopop@default:default,org.eclipse.wst.common.modulecore.ui@default:default,org.eclipse.wst.common.modulecore@default:default,org.eclipse.wst.common.project.facet.core@default:default,org.eclipse.wst.common.snippets@default:default,org.eclipse.wst.common.ui@default:default,org.eclipse.wst.common.uriresolver@default:default,org.eclipse.wst.css.core@default:default,org.eclipse.wst.css.ui@default:default,org.eclipse.wst.dtd.core@default:default,org.eclipse.wst.dtd.ui.infopop@default:default,org.eclipse.wst.dtd.ui@default:default,org.eclipse.wst.dtdeditor.doc.user@default:default,org.eclipse.wst.html.core@default:default,org.eclipse.wst.html.ui@default:default,org.eclipse.wst.internet.cache@default:default,org.eclipse.wst.server.core@default:default,org.eclipse.wst.sse.core@default:default,org.eclipse.wst.sse.doc.user@default:default,org.eclipse.wst.sse.ui.infopop@default:default,org.eclipse.wst.sse.ui@default:default,org.eclipse.wst.standard.schemas@default:default,org.eclipse.wst.validation.infopop@default:default,org.eclipse.wst.validation.ui@default:default,org.eclipse.wst.validation@default:default,org.eclipse.wst.web@default:default,org.eclipse.wst.xml.core@default:default,org.eclipse.wst.xml.ui.infopop@default:default,org.eclipse.wst.xml.ui@default:default,org.eclipse.wst.xml.xpath.core@default:default,org.eclipse.wst.xml.xpath.ui@default:default,org.eclipse.wst.xml.xpath2.processor.doc.user@default:default,org.eclipse.wst.xml.xpath2.processor@default:default,org.eclipse.wst.xml.xpath2.wtptypes@default:default,org.eclipse.wst.xml.xpath2@default:default,org.eclipse.wst.xmleditor.doc.user@default:default,org.eclipse.wst.xsd.core@default:default,org.eclipse.wst.xsd.ui@default:default,org.eclipse.wst.xsdeditor.doc.user@default:default,org.eclipse.wst.xsl.core@default:default,org.eclipse.wst.xsl.debug.ui@default:default,org.eclipse.wst.xsl.doc@default:default,org.eclipse.wst.xsl.exslt.core@default:default,org.eclipse.wst.xsl.exslt.ui@default:default,org.eclipse.wst.xsl.jaxp.debug.ui@default:default,org.eclipse.wst.xsl.jaxp.debug@default:default,org.eclipse.wst.xsl.jaxp.launching@default:default,org.eclipse.wst.xsl.launching@default:default,org.eclipse.wst.xsl.saxon@default:default,org.eclipse.wst.xsl.ui@default:default,org.eclipse.wst.xsl.xalan@default:default,org.eclipse.wst.xsl@default:default,org.eclipse.xpand.activities@default:default,org.eclipse.xpand.doc@default:default,org.eclipse.xpand.examples@default:default,org.eclipse.xpand.incremental@default:default,org.eclipse.xpand.support.cdt@default:default,org.eclipse.xpand.ui@default:default,org.eclipse.xpand@default:default,org.eclipse.xsd.cheatsheets@default:default,org.eclipse.xsd.doc@default:default,org.eclipse.xsd.ecore.converter@default:default,org.eclipse.xsd.ecore.exporter@default:default,org.eclipse.xsd.ecore.importer@default:default,org.eclipse.xsd.edit@default:default,org.eclipse.xsd.editor@default:default,org.eclipse.xsd.example.installer@default:default,org.eclipse.xsd.mapping.editor@default:default,org.eclipse.xsd.mapping@default:default,org.eclipse.xsd@default:default,org.eclipse.xtend.backend.compiler@default:default,org.eclipse.xtend.backend.ui@default:default,org.eclipse.xtend.backend.uml2types@default:default,org.eclipse.xtend.backend.xsdtypes@default:default,org.eclipse.xtend.backend@default:default,org.eclipse.xtend.check.ui@default:default,org.eclipse.xtend.middleend.xpand@default:default,org.eclipse.xtend.middleend.xtend@default:default,org.eclipse.xtend.profiler@default:default,org.eclipse.xtend.shared.ui@default:default,org.eclipse.xtend.typesystem.emf.ui@default:default,org.eclipse.xtend.typesystem.emf@default:default,org.eclipse.xtend.typesystem.uml2.ui@default:default,org.eclipse.xtend.typesystem.uml2@default:default,org.eclipse.xtend.typesystem.xsd.ui@default:default,org.eclipse.xtend.typesystem.xsd@default:default,org.eclipse.xtend.ui@default:default,org.eclipse.xtend.util.stdlib@default:default,org.eclipse.xtend2.lib@default:default,org.eclipse.xtend@default:default,org.eclipse.xtext.activities@default:default,org.eclipse.xtext.builder@default:default,org.eclipse.xtext.common.types.shared@default:default,org.eclipse.xtext.common.types.ui@default:default,org.eclipse.xtext.common.types@default:default,org.eclipse.xtext.doc@default:default,org.eclipse.xtext.ecore@default:default,org.eclipse.xtext.generator@default:default,org.eclipse.xtext.junit4@default:default,org.eclipse.xtext.junit@default:default,org.eclipse.xtext.logging@default:false,org.eclipse.xtext.purexbase.ui@default:default,org.eclipse.xtext.purexbase@default:default,org.eclipse.xtext.ui.codetemplates.ui@default:default,org.eclipse.xtext.ui.codetemplates@default:default,org.eclipse.xtext.ui.ecore@default:default,org.eclipse.xtext.ui.junit@default:default,org.eclipse.xtext.ui.shared@default:default,org.eclipse.xtext.ui@default:default,org.eclipse.xtext.util@default:default,org.eclipse.xtext.xbase.junit@default:default,org.eclipse.xtext.xbase.lib@default:default,org.eclipse.xtext.xbase.ui@default:default,org.eclipse.xtext.xbase@default:default,org.eclipse.xtext.xtend2.lib@default:default,org.eclipse.xtext.xtend2.ui@default:default,org.eclipse.xtext.xtend2@default:default,org.eclipse.xtext.xtext.ui.examples@default:default,org.eclipse.xtext.xtext.ui.graph@default:default,org.eclipse.xtext.xtext.ui@default:default,org.eclipse.xtext@default:default,org.h2@default:default,org.hamcrest.core@default:default,org.hamcrest.integration@default:default,org.hamcrest.library@default:default,org.hamcrest.text@default:default,org.hamcrest@default:default,org.jdom@default:default,org.jdom_jaxen@default:default,org.joda.time@default:default,org.junit*3.8.2.v3_8_2_v20100427-1100@default:default,org.junit*4.8.2.v4_8_2_v20110321-1705@default:default,org.junit4@default:default,org.mortbay.jetty.server@default:default,org.mortbay.jetty.util@default:default,org.objectweb.asm@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.slf4j.api@default:default,org.tigris.subversion.clientadapter@default:default,org.tigris.subversion.subclipse.core@default:default,org.tigris.subversion.subclipse.ui@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.parsley.tests.swtbot@default:default,org.eclipse.emf.parsley.wizards@default:default,org.eclipse.emf.parsley@default:default,org.eclipse.emf.parsley.examples.library.edit@default:default,org.eclipse.emf.parsley.examples.library.editor@default:default,org.eclipse.emf.parsley.examples.library@default:default,org.eclipse.swtbot.examples@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.xtext.example.fowlerdsl.ui@default:default,org.eclipse.xtext.example.fowlerdsl@default:default"/>
+<booleanAttribute key="show_selected_only" value="true"/>
+<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="true"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsWizardsTests.launch b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsWizardsTests.launch
new file mode 100644
index 000000000..a7b67b97d
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/EmfComponentsWizardsTests.launch
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.swtbot.eclipse.ui.launcher.JunitLaunchConfig">
+<setAttribute key="additional_plugins">
+<setEntry value="org.eclipse.emf.parsley.tests.swtbot:0.1.0.qualifier:default:false"/>
+</setAttribute>
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="deselected_workspace_plugins" value="ProvaView,ProvaWizard,it.rcpvision.cdo04.editor,it.rcpvision.cdo04.model,org.eclipse.emf.parsley.cdo,org.eclipse.emf.parsley.cdo.tests,org.eclipse.emf.parsley.cdoexample.masterdetail.table,org.eclipse.emf.parsley.cdoexample.masterdetail.tree,org.eclipse.emf.parsley.cdoexample.model,org.eclipse.emf.parsley.cdoexample.model.business,org.eclipse.emf.parsley.cdoexample.rcp,org.eclipse.emf.parsley.cdoexample.rcp.tests,org.eclipse.emf.parsley.tests.cdo.app,org.eclipse.emf.parsley.tests.cdo.model,org.eclipse.emf.parsley.tests.cdo.product,it.rcpvision.rcptutorial03.model.cdo"/>
+<stringAttribute key="featureDefaultLocation" value="workspace"/>
+<stringAttribute key="featurePluginResolution" value="workspace"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsWizardsTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.parsley.tests.EmfComponentsWizardsTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.tests.swtbot"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx384m -XX:MaxPermSize=256m -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<setAttribute key="selected_features">
+<setEntry value="org.eclipse.emf.parsley.tests.swtbot.feature:default"/>
+</setAttribute>
+<stringAttribute key="selected_target_plugins" value="ch.qos.logback.classic@default:default,ch.qos.logback.core@default:default,ch.qos.logback.slf4j@default:false,com.google.collect@default:default,com.google.guava@default:default,com.google.inject@default:default,com.ibm.icu@default:default,com.jcraft.jsch@default:default,com.sun.jna@default:default,com.sun.syndication@default:default,com.thoughtworks.xstream@default:default,de.itemis.xtext.antlr@default:default,java_cup.runtime@default:default,javax.activation@default:default,javax.inject@default:default,javax.mail@default:default,javax.persistence@default:default,javax.servlet.jsp@default:default,javax.servlet@default:default,javax.wsdl@default:default,javax.xml.bind@default:default,javax.xml.rpc@default:default,javax.xml.soap@default:default,javax.xml.stream@default:default,javax.xml@default:default,lpg.runtime.java@default:default,net.sourceforge.texlipse@default:default,org.antlr.generator@default:default,org.antlr.runtime@default:default,org.apache.ant@default:default,org.apache.axis@default:default,org.apache.batik.bridge@default:default,org.apache.batik.css@default:default,org.apache.batik.dom.svg@default:default,org.apache.batik.dom@default:default,org.apache.batik.ext.awt@default:default,org.apache.batik.parser@default:default,org.apache.batik.pdf@default:default,org.apache.batik.svggen@default:default,org.apache.batik.transcoder@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.batik.xml@default:default,org.apache.bcel@default:default,org.apache.commons.cli@default:default,org.apache.commons.codec@default:default,org.apache.commons.discovery@default:default,org.apache.commons.el@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.io@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging*1.0.4.v201101211617@default:default,org.apache.commons.logging*1.1.1.v201005080502@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.derby@default:default,org.apache.jasper@default:default,org.apache.log4j@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.apache.lucene.highlighter@default:default,org.apache.lucene.memory@default:default,org.apache.lucene.misc@default:default,org.apache.lucene.queries@default:default,org.apache.lucene.snowball@default:default,org.apache.lucene.spellchecker@default:default,org.apache.lucene@default:default,org.apache.ws.commons.util@default:default,org.apache.xalan@default:default,org.apache.xerces@default:default,org.apache.xml.resolver@default:default,org.apache.xml.serializer@default:default,org.apache.xmlrpc@default:default,org.easymock@default:default,org.eclipse.acceleo.common@default:default,org.eclipse.acceleo.engine@default:default,org.eclipse.acceleo.model@default:default,org.eclipse.acceleo.profiler@default:default,org.eclipse.amalgam.discovery.core@default:default,org.eclipse.amalgam.discovery.modeling@default:default,org.eclipse.amalgam.discovery.ui@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.ui@default:default,org.eclipse.cdt.core@default:default,org.eclipse.cdt.ui@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.boot@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.linux.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.linux.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.cvs@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.draw2d.doc.isv@default:default,org.eclipse.draw2d@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.egit.core@default:default,org.eclipse.egit.doc@default:default,org.eclipse.egit.ui@default:default,org.eclipse.egit@default:default,org.eclipse.emf.ant@default:default,org.eclipse.emf.cheatsheets@default:default,org.eclipse.emf.codegen.ecore.ui@default:default,org.eclipse.emf.codegen.ecore@default:default,org.eclipse.emf.codegen.ui@default:default,org.eclipse.emf.codegen@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.compare.diff.edit@default:default,org.eclipse.emf.compare.diff@default:default,org.eclipse.emf.compare.doc@default:default,org.eclipse.emf.compare.epatch@default:default,org.eclipse.emf.compare.match@default:default,org.eclipse.emf.compare.ui.capabilities@default:default,org.eclipse.emf.compare.ui@default:default,org.eclipse.emf.compare@default:default,org.eclipse.emf.converter@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.doc@default:default,org.eclipse.emf.ecore.change.edit@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.editor@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.ecoretools.diagram.ui.outline@default:default,org.eclipse.emf.ecoretools.diagram@default:default,org.eclipse.emf.ecoretools.doc@default:default,org.eclipse.emf.ecoretools.filters@default:default,org.eclipse.emf.ecoretools.properties@default:default,org.eclipse.emf.ecoretools.tabbedproperties@default:default,org.eclipse.emf.ecoretools@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.eef.codegen.ecore@default:default,org.eclipse.emf.eef.codegen@default:default,org.eclipse.emf.eef.components.edit@default:default,org.eclipse.emf.eef.components@default:default,org.eclipse.emf.eef.eefgen@default:default,org.eclipse.emf.eef.mapping.edit@default:default,org.eclipse.emf.eef.mapping@default:default,org.eclipse.emf.eef.runtime@default:default,org.eclipse.emf.eef.views.edit@default:default,org.eclipse.emf.eef.views@default:default,org.eclipse.emf.example.installer@default:default,org.eclipse.emf.exporter@default:default,org.eclipse.emf.generic.editor@default:default,org.eclipse.emf.importer.ecore@default:default,org.eclipse.emf.importer.java@default:default,org.eclipse.emf.importer.rose@default:default,org.eclipse.emf.importer@default:default,org.eclipse.emf.mapping.ecore.editor@default:default,org.eclipse.emf.mapping.ecore2ecore.editor@default:default,org.eclipse.emf.mapping.ecore2ecore@default:default,org.eclipse.emf.mapping.ecore2xml.ui@default:default,org.eclipse.emf.mapping.ecore2xml@default:default,org.eclipse.emf.mapping.ecore@default:default,org.eclipse.emf.mapping.ui@default:default,org.eclipse.emf.mapping.xsd2ecore.editor@default:default,org.eclipse.emf.mapping.xsd2ecore@default:default,org.eclipse.emf.mapping@default:default,org.eclipse.emf.mwe.activities@default:default,org.eclipse.emf.mwe.core@default:default,org.eclipse.emf.mwe.doc@default:default,org.eclipse.emf.mwe.ui.simpleEditor@default:default,org.eclipse.emf.mwe.ui@default:default,org.eclipse.emf.mwe.utils@default:default,org.eclipse.emf.mwe2.language.ui@default:default,org.eclipse.emf.mwe2.language@default:default,org.eclipse.emf.mwe2.launch@default:default,org.eclipse.emf.mwe2.lib@default:default,org.eclipse.emf.mwe2.runtime@default:default,org.eclipse.emf.query.doc@default:default,org.eclipse.emf.query.examples@default:default,org.eclipse.emf.query.ocl@default:default,org.eclipse.emf.query@default:default,org.eclipse.emf.transaction.doc@default:default,org.eclipse.emf.transaction.examples@default:default,org.eclipse.emf.transaction.ui@default:default,org.eclipse.emf.transaction@default:default,org.eclipse.emf.validation.doc@default:default,org.eclipse.emf.validation.examples@default:default,org.eclipse.emf.validation.ocl@default:default,org.eclipse.emf.validation.ui.ide@default:default,org.eclipse.emf.validation.ui@default:default,org.eclipse.emf.validation@default:default,org.eclipse.emf.workspace.doc@default:default,org.eclipse.emf.workspace.ui@default:default,org.eclipse.emf.workspace@default:default,org.eclipse.emf@default:default,org.eclipse.epp.mpc.core@default:default,org.eclipse.epp.mpc.help.ui@default:default,org.eclipse.epp.mpc.ui@default:default,org.eclipse.epp.package.modeling@default:default,org.eclipse.epp.usagedata.gathering@default:default,org.eclipse.epp.usagedata.recording@default:default,org.eclipse.epp.usagedata.ui@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.jsp.jasper.registry@default:default,org.eclipse.equinox.jsp.jasper@default:default,org.eclipse.equinox.launcher.gtk.linux.x86@default:false,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.discovery.compatibility@default:default,org.eclipse.equinox.p2.discovery@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.ql@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.p2.ui.discovery@default:default,org.eclipse.equinox.p2.ui.importexport@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.gef@default:default,org.eclipse.gmf.runtime.common.core@default:default,org.eclipse.gmf.runtime.common.ui.action.ide@default:default,org.eclipse.gmf.runtime.common.ui.action@default:default,org.eclipse.gmf.runtime.common.ui.printing.win32@default:false,org.eclipse.gmf.runtime.common.ui.printing@default:default,org.eclipse.gmf.runtime.common.ui.services.action@default:default,org.eclipse.gmf.runtime.common.ui.services.properties@default:default,org.eclipse.gmf.runtime.common.ui.services@default:default,org.eclipse.gmf.runtime.common.ui@default:default,org.eclipse.gmf.runtime.diagram.core@default:default,org.eclipse.gmf.runtime.diagram.ui.actions@default:default,org.eclipse.gmf.runtime.diagram.ui.printing.render@default:default,org.eclipse.gmf.runtime.diagram.ui.printing@default:default,org.eclipse.gmf.runtime.diagram.ui.properties@default:default,org.eclipse.gmf.runtime.diagram.ui.providers.ide@default:default,org.eclipse.gmf.runtime.diagram.ui.providers@default:default,org.eclipse.gmf.runtime.diagram.ui.render@default:default,org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide@default:default,org.eclipse.gmf.runtime.diagram.ui.resources.editor@default:default,org.eclipse.gmf.runtime.diagram.ui@default:default,org.eclipse.gmf.runtime.draw2d.ui.render.awt@default:default,org.eclipse.gmf.runtime.draw2d.ui.render@default:default,org.eclipse.gmf.runtime.draw2d.ui@default:default,org.eclipse.gmf.runtime.emf.clipboard.core@default:default,org.eclipse.gmf.runtime.emf.commands.core@default:default,org.eclipse.gmf.runtime.emf.core@default:default,org.eclipse.gmf.runtime.emf.type.core@default:default,org.eclipse.gmf.runtime.emf.ui.properties@default:default,org.eclipse.gmf.runtime.emf.ui@default:default,org.eclipse.gmf.runtime.gef.ui@default:default,org.eclipse.gmf.runtime.notation@default:default,org.eclipse.help.appserver@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help.webapp@default:default,org.eclipse.help@default:default,org.eclipse.jdt.apt.core@default:default,org.eclipse.jdt.apt.pluggable.core@default:default,org.eclipse.jdt.apt.ui@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.doc.isv@default:default,org.eclipse.jdt.doc.user@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit4.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jdt@default:default,org.eclipse.jem.proxy@default:default,org.eclipse.jem.util@default:default,org.eclipse.jem.workbench@default:default,org.eclipse.jem@default:default,org.eclipse.jet.core@default:default,org.eclipse.jet.doc@default:default,org.eclipse.jet.source@default:default,org.eclipse.jet.ui@default:default,org.eclipse.jet.uml2@default:false,org.eclipse.jet@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jgit@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.jst.common.annotations.controller@default:default,org.eclipse.jst.common.annotations.core@default:default,org.eclipse.jst.common.frameworks@default:default,org.eclipse.jst.common.project.facet.core@default:default,org.eclipse.jst.j2ee.core@default:default,org.eclipse.jst.j2ee.jca@default:default,org.eclipse.jst.j2ee.web@default:default,org.eclipse.jst.j2ee@default:default,org.eclipse.jst.jee@default:default,org.eclipse.jst.jsf.common.runtime@default:default,org.eclipse.jst.jsf.common.ui@default:default,org.eclipse.jst.jsf.common@default:default,org.eclipse.jst.jsf.core@default:default,org.eclipse.jst.jsf.facesconfig@default:default,org.eclipse.jst.jsp.core@default:default,org.eclipse.jst.jsp.ui@default:default,org.eclipse.jst.pagedesigner.jsf.ui@default:default,org.eclipse.jst.pagedesigner.jsp.core@default:default,org.eclipse.jst.pagedesigner@default:default,org.eclipse.jst.server.core@default:default,org.eclipse.linuxtools.changelog.core@default:default,org.eclipse.linuxtools.changelog.cparser@default:false,org.eclipse.linuxtools.changelog.doc@default:default,org.eclipse.linuxtools.changelog.parsers.java@default:false,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.mylyn.commons.core@default:default,org.eclipse.mylyn.commons.identity@default:default,org.eclipse.mylyn.commons.net@default:default,org.eclipse.mylyn.commons.repositories@default:default,org.eclipse.mylyn.commons.screenshots@default:default,org.eclipse.mylyn.commons.ui@default:default,org.eclipse.mylyn.context.core@default:default,org.eclipse.mylyn.discovery.core@default:default,org.eclipse.mylyn.discovery.ui@default:default,org.eclipse.mylyn.monitor.core@default:default,org.eclipse.mylyn.monitor.ui@default:default,org.eclipse.mylyn.tasks.bugs@default:default,org.eclipse.mylyn.tasks.core@default:default,org.eclipse.mylyn.tasks.ui@default:default,org.eclipse.mylyn.wikitext.core@default:default,org.eclipse.mylyn.wikitext.mediawiki.core@default:default,org.eclipse.net4j.jms.api@default:default,org.eclipse.ocl.doc@default:default,org.eclipse.ocl.ecore.edit@default:default,org.eclipse.ocl.ecore@default:default,org.eclipse.ocl.edit@default:default,org.eclipse.ocl.uml.edit@default:default,org.eclipse.ocl.uml@default:default,org.eclipse.ocl@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.api.tools.ui@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.doc.user@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.pde.ds.ui@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.pde.ua.ui@default:default,org.eclipse.pde.ui.templates@default:default,org.eclipse.pde.ui@default:default,org.eclipse.pde@default:default,org.eclipse.platform.doc.isv@default:default,org.eclipse.platform.doc.user@default:default,org.eclipse.platform@default:default,org.eclipse.rcp@default:default,org.eclipse.sdk@default:default,org.eclipse.search@default:default,org.eclipse.swt.gtk.linux.x86@default:false,org.eclipse.swt@default:default,org.eclipse.swtbot.ant.optional.junit3@default:false,org.eclipse.swtbot.ant.optional.junit4@default:false,org.eclipse.swtbot.eclipse.core@default:default,org.eclipse.swtbot.eclipse.finder@default:default,org.eclipse.swtbot.eclipse.gef.finder@default:default,org.eclipse.swtbot.eclipse.junit3.headless@default:default,org.eclipse.swtbot.eclipse.junit4.headless@default:default,org.eclipse.swtbot.eclipse.spy@default:default,org.eclipse.swtbot.eclipse.ui@default:default,org.eclipse.swtbot.forms.finder@default:default,org.eclipse.swtbot.go@default:default,org.eclipse.swtbot.junit4_x@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.team.core@default:default,org.eclipse.team.cvs.core@default:default,org.eclipse.team.cvs.ssh2@default:default,org.eclipse.team.cvs.ui@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.net@default:default,org.eclipse.ui.presentations.r21@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench.compatibility@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.uml2.codegen.ecore.ui@default:default,org.eclipse.uml2.codegen.ecore@default:default,org.eclipse.uml2.common.edit@default:default,org.eclipse.uml2.common@default:default,org.eclipse.uml2.doc@default:default,org.eclipse.uml2.examples.uml.ui@default:default,org.eclipse.uml2.examples@default:default,org.eclipse.uml2.uml.ecore.exporter@default:default,org.eclipse.uml2.uml.ecore.importer@default:default,org.eclipse.uml2.uml.edit@default:default,org.eclipse.uml2.uml.editor@default:default,org.eclipse.uml2.uml.resources@default:default,org.eclipse.uml2.uml@default:default,org.eclipse.uml2@default:default,org.eclipse.update.configurator@3:true,org.eclipse.update.core.linux@default:false,org.eclipse.update.core@default:default,org.eclipse.update.scheduler@default:default,org.eclipse.update.ui@default:default,org.eclipse.wb.core.databinding.xml@default:default,org.eclipse.wb.core.databinding@default:default,org.eclipse.wb.core.lib@default:default,org.eclipse.wb.core.ui@default:default,org.eclipse.wb.core.xml@default:default,org.eclipse.wb.core@default:default,org.eclipse.wb.discovery.core@default:default,org.eclipse.wb.discovery.ui@default:default,org.eclipse.wb.doc.user@default:default,org.eclipse.wb.jdt.fragment@default:false,org.eclipse.wb.layout.group@default:default,org.eclipse.wb.os.linux@default:default,org.eclipse.wb.os@default:default,org.eclipse.wb.rcp.SWT_AWT@default:default,org.eclipse.wb.rcp.databinding.emf@default:default,org.eclipse.wb.rcp.databinding.xwt@default:default,org.eclipse.wb.rcp.databinding@default:default,org.eclipse.wb.rcp.nebula@default:default,org.eclipse.wb.rcp.swing2swt@default:default,org.eclipse.wb.rcp@default:default,org.eclipse.wb.runtime.lib@default:default,org.eclipse.wb.runtime@default:default,org.eclipse.wb.swing.FormLayout.lib@default:default,org.eclipse.wb.swing.FormLayout@default:default,org.eclipse.wb.swing.MigLayout.lib@default:default,org.eclipse.wb.swing.MigLayout@default:default,org.eclipse.wb.swing.databinding@default:default,org.eclipse.wb.swing.java6@default:default,org.eclipse.wb.swing.jsr296@default:default,org.eclipse.wb.swing@default:default,org.eclipse.wb.swt.widgets.baseline@default:default,org.eclipse.wb.swt@default:default,org.eclipse.wb.xwt@default:default,org.eclipse.wst.common.core@default:default,org.eclipse.wst.common.emf@default:default,org.eclipse.wst.common.emfworkbench.integration@default:default,org.eclipse.wst.common.environment@default:default,org.eclipse.wst.common.frameworks.ui@default:default,org.eclipse.wst.common.frameworks@default:default,org.eclipse.wst.common.infopop@default:default,org.eclipse.wst.common.modulecore.ui@default:default,org.eclipse.wst.common.modulecore@default:default,org.eclipse.wst.common.project.facet.core@default:default,org.eclipse.wst.common.snippets@default:default,org.eclipse.wst.common.ui@default:default,org.eclipse.wst.common.uriresolver@default:default,org.eclipse.wst.css.core@default:default,org.eclipse.wst.css.ui@default:default,org.eclipse.wst.dtd.core@default:default,org.eclipse.wst.dtd.ui.infopop@default:default,org.eclipse.wst.dtd.ui@default:default,org.eclipse.wst.dtdeditor.doc.user@default:default,org.eclipse.wst.html.core@default:default,org.eclipse.wst.html.ui@default:default,org.eclipse.wst.internet.cache@default:default,org.eclipse.wst.server.core@default:default,org.eclipse.wst.sse.core@default:default,org.eclipse.wst.sse.doc.user@default:default,org.eclipse.wst.sse.ui.infopop@default:default,org.eclipse.wst.sse.ui@default:default,org.eclipse.wst.standard.schemas@default:default,org.eclipse.wst.validation.infopop@default:default,org.eclipse.wst.validation.ui@default:default,org.eclipse.wst.validation@default:default,org.eclipse.wst.web@default:default,org.eclipse.wst.xml.core@default:default,org.eclipse.wst.xml.ui.infopop@default:default,org.eclipse.wst.xml.ui@default:default,org.eclipse.wst.xml.xpath.core@default:default,org.eclipse.wst.xml.xpath.ui@default:default,org.eclipse.wst.xml.xpath2.processor.doc.user@default:default,org.eclipse.wst.xml.xpath2.processor@default:default,org.eclipse.wst.xml.xpath2.wtptypes@default:default,org.eclipse.wst.xml.xpath2@default:default,org.eclipse.wst.xmleditor.doc.user@default:default,org.eclipse.wst.xsd.core@default:default,org.eclipse.wst.xsd.ui@default:default,org.eclipse.wst.xsdeditor.doc.user@default:default,org.eclipse.wst.xsl.core@default:default,org.eclipse.wst.xsl.debug.ui@default:default,org.eclipse.wst.xsl.doc@default:default,org.eclipse.wst.xsl.exslt.core@default:default,org.eclipse.wst.xsl.exslt.ui@default:default,org.eclipse.wst.xsl.jaxp.debug.ui@default:default,org.eclipse.wst.xsl.jaxp.debug@default:default,org.eclipse.wst.xsl.jaxp.launching@default:default,org.eclipse.wst.xsl.launching@default:default,org.eclipse.wst.xsl.saxon@default:default,org.eclipse.wst.xsl.ui@default:default,org.eclipse.wst.xsl.xalan@default:default,org.eclipse.wst.xsl@default:default,org.eclipse.xpand.activities@default:default,org.eclipse.xpand.doc@default:default,org.eclipse.xpand.examples@default:default,org.eclipse.xpand.incremental@default:default,org.eclipse.xpand.support.cdt@default:default,org.eclipse.xpand.ui@default:default,org.eclipse.xpand@default:default,org.eclipse.xsd.cheatsheets@default:default,org.eclipse.xsd.doc@default:default,org.eclipse.xsd.ecore.converter@default:default,org.eclipse.xsd.ecore.exporter@default:default,org.eclipse.xsd.ecore.importer@default:default,org.eclipse.xsd.edit@default:default,org.eclipse.xsd.editor@default:default,org.eclipse.xsd.example.installer@default:default,org.eclipse.xsd.mapping.editor@default:default,org.eclipse.xsd.mapping@default:default,org.eclipse.xsd@default:default,org.eclipse.xtend.backend.compiler@default:default,org.eclipse.xtend.backend.ui@default:default,org.eclipse.xtend.backend.uml2types@default:default,org.eclipse.xtend.backend.xsdtypes@default:default,org.eclipse.xtend.backend@default:default,org.eclipse.xtend.check.ui@default:default,org.eclipse.xtend.middleend.xpand@default:default,org.eclipse.xtend.middleend.xtend@default:default,org.eclipse.xtend.profiler@default:default,org.eclipse.xtend.shared.ui@default:default,org.eclipse.xtend.typesystem.emf.ui@default:default,org.eclipse.xtend.typesystem.emf@default:default,org.eclipse.xtend.typesystem.uml2.ui@default:default,org.eclipse.xtend.typesystem.uml2@default:default,org.eclipse.xtend.typesystem.xsd.ui@default:default,org.eclipse.xtend.typesystem.xsd@default:default,org.eclipse.xtend.ui@default:default,org.eclipse.xtend.util.stdlib@default:default,org.eclipse.xtend2.lib@default:default,org.eclipse.xtend@default:default,org.eclipse.xtext.activities@default:default,org.eclipse.xtext.builder@default:default,org.eclipse.xtext.common.types.shared@default:default,org.eclipse.xtext.common.types.ui@default:default,org.eclipse.xtext.common.types@default:default,org.eclipse.xtext.doc@default:default,org.eclipse.xtext.ecore@default:default,org.eclipse.xtext.generator@default:default,org.eclipse.xtext.junit4@default:default,org.eclipse.xtext.junit@default:default,org.eclipse.xtext.logging@default:false,org.eclipse.xtext.purexbase.ui@default:default,org.eclipse.xtext.purexbase@default:default,org.eclipse.xtext.ui.codetemplates.ui@default:default,org.eclipse.xtext.ui.codetemplates@default:default,org.eclipse.xtext.ui.ecore@default:default,org.eclipse.xtext.ui.junit@default:default,org.eclipse.xtext.ui.shared@default:default,org.eclipse.xtext.ui@default:default,org.eclipse.xtext.util@default:default,org.eclipse.xtext.xbase.junit@default:default,org.eclipse.xtext.xbase.lib@default:default,org.eclipse.xtext.xbase.ui@default:default,org.eclipse.xtext.xbase@default:default,org.eclipse.xtext.xtend2.lib@default:default,org.eclipse.xtext.xtend2.ui@default:default,org.eclipse.xtext.xtend2@default:default,org.eclipse.xtext.xtext.ui.examples@default:default,org.eclipse.xtext.xtext.ui.graph@default:default,org.eclipse.xtext.xtext.ui@default:default,org.eclipse.xtext@default:default,org.h2@default:default,org.hamcrest.core@default:default,org.hamcrest.integration@default:default,org.hamcrest.library@default:default,org.hamcrest.text@default:default,org.hamcrest@default:default,org.jdom@default:default,org.jdom_jaxen@default:default,org.joda.time@default:default,org.junit*3.8.2.v3_8_2_v20100427-1100@default:default,org.junit*4.8.2.v4_8_2_v20110321-1705@default:default,org.junit4@default:default,org.mortbay.jetty.server@default:default,org.mortbay.jetty.util@default:default,org.objectweb.asm@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.slf4j.api@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.parsley.tests.swtbot@default:default,org.eclipse.emf.parsley.wizards@default:default,org.eclipse.emf.parsley@default:default,org.eclipse.emf.parsley.examples.library.edit@default:default,org.eclipse.emf.parsley.examples.library.editor@default:default,org.eclipse.emf.parsley.examples.library@default:default,org.eclipse.swtbot.examples@default:default,org.eclipse.swtbot.swt.finder@default:default,org.eclipse.xtext.example.fowlerdsl.ui@default:default,org.eclipse.xtext.example.fowlerdsl@default:default"/>
+<booleanAttribute key="show_selected_only" value="true"/>
+<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="true"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/Launch Runtime Eclipse Parsley.launch b/tests/org.eclipse.emf.parsley.tests.swtbot/Launch Runtime Eclipse Parsley.launch
new file mode 100644
index 000000000..9610c2e09
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/Launch Runtime Eclipse Parsley.launch
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.RuntimeWorkbench">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="true"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bad_container_name" value="/org.eclipse.emf.parsley.examples.fowlerdsl/.launch/"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="false"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/Launch Runtime Eclipse Parsley"/>
+<booleanAttribute key="default" value="true"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../runtime-EmfParsleyKepler"/>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx384m -XX:MaxPermSize=256m -Dorg.eclipse.swtbot.search.timeout=20000 -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+<booleanAttribute key="useProduct" value="true"/>
+<booleanAttribute key="usefeatures" value="false"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.parsley.tests.swtbot/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..88af9552a
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/META-INF/MANIFEST.MF
@@ -0,0 +1,28 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: EMF Components SWTBOT Tests
+Bundle-SymbolicName: org.eclipse.emf.parsley.tests.swtbot;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: RCP-VISION
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: org.eclipse.swtbot.go;bundle-version="2.1.0",
+ org.eclipse.xtext.ui.junit;bundle-version="[2.4.2,2.5.0)",
+ org.eclipse.core.resources;bundle-version="3.7.100",
+ org.eclipse.emf.parsley;bundle-version="0.1.0",
+ org.eclipse.emf.parsley.examples.library.edit;bundle-version="0.1.0",
+ org.eclipse.swtbot.forms.finder;bundle-version="2.1.0",
+ org.eclipse.emf.parsley.wizards;bundle-version="0.1.0",
+ org.eclipse.emf.parsley.examples.library.editor;bundle-version="0.1.0",
+ com.google.inject,
+ com.google.guava,
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.4.2,2.5.0)",
+ org.eclipse.emf.parsley.examples.fowlerdsl;bundle-version="0.1.0",
+ org.eclipse.emf.parsley.examples.fowlerdsl.ui;bundle-version="0.1.0",
+ org.eclipse.emf.parsley.dsl.ui;bundle-version="0.1.0",
+ org.eclipse.emf.parsley.views;bundle-version="0.1.0",
+ org.eclipse.emf.parsley.editors;bundle-version="0.1.0"
+Bundle-Activator: org.eclipse.emf.parsley.tests.EmfComponentsTestsActivator
+Export-Package: org.eclipse.emf.parsley.tests,
+ org.eclipse.emf.parsley.tests.editors,
+ org.eclipse.emf.parsley.tests.views
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/README-launches.txt b/tests/org.eclipse.emf.parsley.tests.swtbot/README-launches.txt
new file mode 100644
index 000000000..289dcd7e8
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/README-launches.txt
@@ -0,0 +1,14 @@
+EmfComponentsTestsSuite.launch is the launch configuration for
+running all SWTBOT tests from the workspace
+(it is a SWTBOT Test launch configuration).
+
+EmfComponentsSwtBotAllTests.launch is the launch configuration
+running all SWTBOT tests from Buckminster
+(it is a Junit Plug-in Test launch configuration
+with "Run in UI Thread" unchecked, so that it mimics
+SWTBOT Test launch but it can be run from Buckminster
+where SWTBOT features are not installed).
+
+All launches are based on a single feature,
+org.eclipse.emf.parsley.tests.swtbot.feature,
+which brings all the necessary dependencies.
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/build.properties b/tests/org.eclipse.emf.parsley.tests.swtbot/build.properties
new file mode 100644
index 000000000..35a0341ec
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/build.properties
@@ -0,0 +1,8 @@
+source.. = src/,\
+ xtend-gen/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/,\
+ models/
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/icons/book2.png b/tests/org.eclipse.emf.parsley.tests.swtbot/icons/book2.png
new file mode 100644
index 000000000..1e15d9f6b
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/icons/book2.png
Binary files differ
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/icons/custom_book.png b/tests/org.eclipse.emf.parsley.tests.swtbot/icons/custom_book.png
new file mode 100644
index 000000000..8f80cd4ba
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/icons/custom_book.png
Binary files differ
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/models/My.extlibrary b/tests/org.eclipse.emf.parsley.tests.swtbot/models/My.extlibrary
new file mode 100644
index 000000000..11d3d544f
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/models/My.extlibrary
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<extlib:Library xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:extlib="http:///org/eclipse/emf/parsley/examples/library/extlibrary.ecore/0.1.0" address="Library's address" name="My Library">
+ <stock xsi:type="extlib:Book" title="Lorenzo's Book" author="//@writers.0"/>
+ <stock xsi:type="extlib:Book" title="Another Book" author="//@writers.0"/>
+ <stock xsi:type="extlib:VideoCassette" copies="1" title="My Video" cast="//@writers.0"/>
+ <writers address="writer's address" firstName="Lorenzo" lastName="Bettini" books="//@stock.0 //@stock.1"/>
+ <borrowers address="foo bar's address" firstName="Foo" lastName="Bar"/>
+</extlib:Library>
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/models/My2.extlibrary b/tests/org.eclipse.emf.parsley.tests.swtbot/models/My2.extlibrary
new file mode 100644
index 000000000..625427e99
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/models/My2.extlibrary
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<extlib:Library xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:extlib="http:///org/eclipse/emf/parsley/examples/library/extlibrary.ecore/0.1.0">
+ <stock xsi:type="extlib:Book" borrowers="//@borrowers.0 //@borrowers.1" title="Without Author"/>
+ <stock xsi:type="extlib:Book" borrowers="//@borrowers.0" title="First Author's Book" author="//@writers.0"/>
+ <stock xsi:type="extlib:Book" title="Empty Book"/>
+ <writers firstName="First Author" books="//@stock.1"/>
+ <borrowers firstName="First Borrower" lastName="" borrowed="//@stock.0 //@stock.1"/>
+ <borrowers firstName="Second Borrower" lastName="" borrowed="//@stock.0"/>
+</extlib:Library>
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/models/fowlerdsl.statemachine b/tests/org.eclipse.emf.parsley.tests.swtbot/models/fowlerdsl.statemachine
new file mode 100644
index 000000000..4f2d6c69b
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/models/fowlerdsl.statemachine
@@ -0,0 +1,37 @@
+events
+ doorClosed D1CL
+ drawOpened D2OP
+ lightOn L1ON
+ doorOpened D1OP
+ panelClosed PNCL
+end
+
+commands
+ unlockPanel PNUL
+ lockPanel PNLK
+ lockDoor D1LK
+ unlockDoor D1UL
+end
+
+state idle
+ actions {unlockDoor lockPanel}
+ doorClosed => active
+end
+
+state active
+ drawOpened => waitingForLight
+ lightOn => waitingForDraw
+end
+
+state waitingForLight
+ lightOn => unlockedPanel
+end
+
+state waitingForDraw
+ drawOpened => unlockedPanel
+end
+
+state unlockedPanel
+ actions {unlockPanel lockDoor}
+ panelClosed => idle
+end \ No newline at end of file
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/old/ContextMenuHelper.java b/tests/org.eclipse.emf.parsley.tests.swtbot/old/ContextMenuHelper.java
new file mode 100644
index 000000000..cf4c7f6b8
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/old/ContextMenuHelper.java
@@ -0,0 +1,128 @@
+package org.eclipse.emf.parsley.tests.utils;
+
+import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.withMnemonic;
+import static org.hamcrest.Matchers.allOf;
+import static org.hamcrest.Matchers.instanceOf;
+
+import java.util.Arrays;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable;
+import org.eclipse.swtbot.swt.finder.results.VoidResult;
+import org.eclipse.swtbot.swt.finder.results.WidgetResult;
+import org.eclipse.swtbot.swt.finder.widgets.AbstractSWTBot;
+import org.hamcrest.Matcher;
+
+/**
+ * This helper is a workaround for a bug in SWTBot,
+ * where the bot can't find a dynamically created context menu
+ * @author Stefan Seelmann (initial)
+ * @author Stefan Schaefer (extension)
+ * @author Lorenzo Bettini (extracted method to get the MenuItem)
+ */
+public class ContextMenuHelper {
+
+ /**
+ * Clicks the context menu matching the text.
+ *
+ * @param text
+ * the text on the context menu.
+ * @throws WidgetNotFoundException
+ * if the widget is not found.
+ */
+ public static void clickContextMenu(final AbstractSWTBot<? extends Control> bot,
+ final String... texts) {
+
+ // show
+ final MenuItem menuItem = contextMenu(bot, texts);
+ if (menuItem == null) {
+ throw new WidgetNotFoundException("Could not find menu: "
+ + Arrays.asList(texts));
+ }
+
+ // click
+ click(menuItem);
+
+ // hide
+ UIThreadRunnable.syncExec(new VoidResult() {
+ public void run() {
+ hide(menuItem.getParent());
+ }
+ });
+ }
+
+ public static MenuItem contextMenu(final AbstractSWTBot<? extends Control> bot,
+ final String... texts) {
+ return UIThreadRunnable
+ .syncExec(new WidgetResult<MenuItem>() {
+ public MenuItem run() {
+ MenuItem menuItem = null;
+ Control control = bot.widget;
+
+ //MenuDetectEvent added by Stefan Schaefer
+ Event event = new Event();
+ control.notifyListeners(SWT.MenuDetect, event);
+ if (!event.doit) {
+ return null;
+ }
+
+ Menu menu = control.getMenu();
+ for (String text : texts) {
+ @SuppressWarnings("unchecked")
+ Matcher<?> matcher = allOf(
+ instanceOf(MenuItem.class),
+ withMnemonic(text));
+ menuItem = show(menu, matcher);
+ if (menuItem != null) {
+ menu = menuItem.getMenu();
+ } else {
+ hide(menu);
+ break;
+ }
+ }
+
+ return menuItem;
+ }
+ });
+ }
+
+ private static MenuItem show(final Menu menu, final Matcher<?> matcher) {
+ if (menu != null) {
+ menu.notifyListeners(SWT.Show, new Event());
+ MenuItem[] items = menu.getItems();
+ for (final MenuItem menuItem : items) {
+ if (matcher.matches(menuItem)) {
+ return menuItem;
+ }
+ }
+ menu.notifyListeners(SWT.Hide, new Event());
+ }
+ return null;
+ }
+
+ private static void click(final MenuItem menuItem) {
+ final Event event = new Event();
+ event.time = (int) System.currentTimeMillis();
+ event.widget = menuItem;
+ event.display = menuItem.getDisplay();
+ event.type = SWT.Selection;
+
+ UIThreadRunnable.asyncExec(menuItem.getDisplay(), new VoidResult() {
+ public void run() {
+ menuItem.notifyListeners(SWT.Selection, event);
+ }
+ });
+ }
+
+ private static void hide(final Menu menu) {
+ menu.notifyListeners(SWT.Hide, new Event());
+ if (menu.getParentMenu() != null) {
+ hide(menu.getParentMenu());
+ }
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/plugin.xml b/tests/org.eclipse.emf.parsley.tests.swtbot/plugin.xml
new file mode 100644
index 000000000..3bec8d627
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/plugin.xml
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.emf.parsley.tests.factories.NoMouseEventExecutableExtensionFactory:org.eclipse.emf.parsley.editors.EmfTreeEditor"
+ contributorClass="org.eclipse.emf.parsley.tests.factories.NoMouseEventExecutableExtensionFactory:org.eclipse.emf.parsley.editors.EmfComponentsEditorActionBarContributor"
+ default="false"
+ id="org.eclipse.emf.parsley.noMouseEvents"
+ name="EMF Tree Editor No Mouse Events">
+ <contentTypeBinding
+ contentTypeId="org.eclipse.emf.ecore.xmi">
+ </contentTypeBinding>
+ </editor>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.emf.parsley.tests.factories.CustomLabelExecutableExtensionFactory:org.eclipse.emf.parsley.editors.EmfTreeEditor"
+ contributorClass="org.eclipse.emf.parsley.tests.factories.CustomLabelExecutableExtensionFactory:org.eclipse.emf.parsley.editors.EmfComponentsEditorActionBarContributor"
+ default="false"
+ id="org.eclipse.emf.parsley.customLabel"
+ name="EMF Tree Editor Custom Label">
+ <contentTypeBinding
+ contentTypeId="org.eclipse.emf.ecore.xmi">
+ </contentTypeBinding>
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ category="org.eclipse.emf.parsley"
+ class="org.eclipse.emf.parsley.tests.factories.EmfComponentsTestsExecutableExtensionFactory:org.eclipse.emf.parsley.tests.views.LibraryEmfView"
+ id="org.eclipse.emf.parsley.tests.views.libraryview"
+ name="LibraryEmfView"
+ restorable="true">
+ </view>
+ <view
+ category="org.eclipse.emf.parsley"
+ class="org.eclipse.emf.parsley.tests.factories.CustomLabelExecutableExtensionFactory:org.eclipse.emf.parsley.tests.views.LibraryEmfView"
+ id="org.eclipse.emf.parsley.tests.views.libraryviewcustom"
+ name="LibraryEmfView Custom Label"
+ restorable="true">
+ </view>
+ </extension>
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.emf.parsley.tests.factories.CustomLabelExecutableExtensionFactory:org.eclipse.emf.parsley.tests.editors.TestEditor"
+ contributorClass="org.eclipse.emf.parsley.tests.factories.CustomLabelExecutableExtensionFactory:org.eclipse.emf.parsley.editors.EmfComponentsEditorActionBarContributor"
+ default="false"
+ id="org.eclipse.emf.parsley.customLabel"
+ name="EMF Tree Editor Derived">
+ <contentTypeBinding
+ contentTypeId="org.eclipse.emf.ecore.xmi">
+ </contentTypeBinding>
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.emf.parsley.editors.EmfComponentsEditorsExecutableExtensionFactory:org.eclipse.emf.parsley.editors.EmfTreeEditor"
+ contributorClass="org.eclipse.emf.parsley.editors.EmfComponentsEditorsExecutableExtensionFactory:org.eclipse.emf.parsley.editors.EmfComponentsEditorActionBarContributor"
+ default="false"
+ extensions="statemachine"
+ id="org.eclipse.emf.parsley.statemachine"
+ name="EMF Tree Editor Statemachine">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.emf.parsley.tests.factories.CustomLibraryExecutableExtensionFactory:org.eclipse.emf.parsley.tests.editors.TestEditor"
+ contributorClass="org.eclipse.emf.parsley.tests.factories.CustomLibraryExecutableExtensionFactory:org.eclipse.emf.parsley.editors.EmfComponentsEditorActionBarContributor"
+ default="false"
+ extensions="extlibrary"
+ id="org.eclipse.emf.parsley.customLibrary"
+ name="EMF Custom Library Editor">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ category="org.eclipse.emf.parsley"
+ class="org.eclipse.emf.parsley.tests.factories.CustomLibraryExecutableExtensionFactory:org.eclipse.emf.parsley.views.OnSelectionFormView"
+ id="org.eclipse.emf.parsley.tests.views.librarydetailviewcustom"
+ name="Library Emf Detail View"
+ restorable="true">
+ </view>
+ </extension>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ category="org.eclipse.emf.parsley"
+ class="org.eclipse.emf.parsley.tests.factories.CustomLibraryExecutableExtensionFactory:org.eclipse.emf.parsley.tests.tables.LibraryTestTableView"
+ id="org.eclipse.emf.parsley.tests.views.librarytabletest"
+ name="Library Test Table"
+ restorable="true">
+ </view>
+ </extension>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ category="org.eclipse.emf.parsley"
+ class="org.eclipse.emf.parsley.tests.factories.CustomLibraryExecutableExtensionFactory:org.eclipse.emf.parsley.tests.views.TestSaveableResourceTreeFormView"
+ id="org.eclipse.emf.parsley.tests.views.testsaveableresourcetreeformview"
+ name="Library Test Saveable Resource Tree Form View"
+ restorable="true">
+ </view>
+ <view
+ category="org.eclipse.emf.parsley"
+ class="org.eclipse.emf.parsley.tests.factories.CustomLibraryExecutableExtensionFactory:org.eclipse.emf.parsley.tests.views.TestSaveableResourceTableFormView"
+ id="org.eclipse.emf.parsley.tests.views.testsaveableresourcetableformview"
+ name="Library Test Saveable Resource Table Form View"
+ restorable="true">
+ </view>
+ <view
+ category="org.eclipse.emf.parsley"
+ class="org.eclipse.emf.parsley.tests.factories.CustomLibraryExecutableExtensionFactory:org.eclipse.emf.parsley.tests.views.TestSaveableResourceTableView"
+ id="org.eclipse.emf.parsley.tests.views.testsaveabletableview"
+ name="Library Test Saveable Table View"
+ restorable="true">
+ </view>
+ <view
+ category="org.eclipse.emf.parsley"
+ class="org.eclipse.emf.parsley.tests.factories.CustomLibraryExecutableExtensionFactory:org.eclipse.emf.parsley.tests.views.TestSaveableTreeView"
+ id="org.eclipse.emf.parsley.tests.views.testsaveabletreeview"
+ name="Library Test Saveable Tree View"
+ restorable="true">
+ </view>
+ <view
+ category="org.eclipse.emf.parsley"
+ class="org.eclipse.emf.parsley.tests.factories.CustomLibraryExecutableExtensionFactory:org.eclipse.emf.parsley.tests.views.TestOnSelectionLibraryBooksTableView"
+ id="org.eclipse.emf.parsley.tests.views.librarybookstableview"
+ name="Library Books Table View"
+ restorable="true">
+ </view>
+ <view
+ category="org.eclipse.emf.parsley"
+ class="org.eclipse.emf.parsley.tests.factories.CustomContentProviderLibraryExecutableExtensionFactory:org.eclipse.emf.parsley.tests.views.TestSaveableTreeView2"
+ id="org.eclipse.emf.parsley.tests.views.testsaveabletreeviewcontentprovider"
+ name="Library Tree View With Custom Content Provider"
+ restorable="true">
+ </view>
+ </extension>
+</plugin>
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsAbstractTests.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsAbstractTests.java
new file mode 100644
index 000000000..f9f7d2945
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsAbstractTests.java
@@ -0,0 +1,823 @@
+package org.eclipse.emf.parsley.tests;
+
+import static org.eclipse.swtbot.swt.finder.waits.Conditions.shellCloses;
+import static org.eclipse.xtext.ui.junit.util.IResourcesSetupUtil.cleanWorkspace;
+import static org.eclipse.xtext.ui.junit.util.IResourcesSetupUtil.createFile;
+import static org.eclipse.xtext.ui.junit.util.IResourcesSetupUtil.root;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.text.MessageFormat;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.tests.views.LibraryEmfView;
+import org.eclipse.emf.parsley.util.ActionBarsUtils;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.StatusLineManager;
+import org.eclipse.jface.action.SubStatusLineManager;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.eclipse.swtbot.swt.finder.finders.ContextMenuHelper;
+import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable;
+import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
+import org.eclipse.swtbot.swt.finder.results.WidgetResult;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.ui.junit.util.IResourcesSetupUtil;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.runner.RunWith;
+
+/**
+ * @author bettini
+ *
+ */
+@RunWith(SWTBotJunit4ClassRunner.class)
+public class EmfComponentsAbstractTests {
+
+ protected static final String EMF_PARSLEY_CATEGORY = "Emf Parsley";
+
+ protected static final String WRITER_LABEL = "Writer Lorenzo Bettini";
+
+ protected static final String WRITER_NAME = "Lorenzo Bettini";
+
+ protected static final String BORROWER_LABEL = "Borrower Bar";
+
+ protected static final String CUSTOM_BORROWER_LABEL = "Borrower: Foo";
+
+ protected static final String BOOK_LABEL = "Book Lorenzo's Book";
+
+ protected static final String LIBRARY_LABEL = "Library My Library";
+
+ protected static final String OUTLINE_VIEW = "Outline";
+
+ protected static final String STATEMACHINE_LABEL = "Statemachine";
+
+ protected static final String EVENT_LABEL = "Event doorOpened";
+
+ protected static final String STATE_LABEL = "State idle";
+
+ protected static final String TRANSITION_LABEL = "Transition";
+
+ protected static final String EMF_TREE_EDITOR = "EMF Tree Editor";
+
+ protected static final String EMF_TREE_EDITOR_STATEMACHINE = "EMF Tree Editor Statemachine";
+
+ protected static final String EMF_TREE_EDITOR_NO_MOUSE = "EMF Tree Editor No Mouse Events";
+
+ protected static final String EMF_TREE_EDITOR_CUSTOM_LABEL = "EMF Tree Editor Custom Label";
+
+ protected static final String EMF_CUSTOM_LIBRARY_EDITOR = "EMF Custom Library Editor";
+
+ protected static final String MY_EXTLIBRARY = "My.extlibrary";
+
+ protected static final String MY2_EXTLIBRARY = "My2.extlibrary";
+
+ protected static final String MY_STATEMACHINE = "fowlerdsl.statemachine";
+
+ protected static final String MY_TEST_PROJECT = "MyTestProject";
+
+ public static final String MY_EXTLIBRARY_RELATIVE_PATH = MY_TEST_PROJECT
+ + "/" + MY_EXTLIBRARY;
+
+ public static final String MY2_EXTLIBRARY_RELATIVE_PATH = MY_TEST_PROJECT
+ + "/" + MY2_EXTLIBRARY;
+
+ protected static final String MY_STATEMACHINE_RELATIVE_PATH = MY_TEST_PROJECT
+ + "/" + MY_STATEMACHINE;
+
+ protected static final String MY_EXT_LIBRARY_PLATFORM_URI = "platform:/resource/"
+ + MY_EXTLIBRARY_RELATIVE_PATH;
+
+ protected static final String MY_STATEMACHINE_PLATFORM_URI = "platform:/resource/"
+ + MY_STATEMACHINE_RELATIVE_PATH;
+
+ protected static final String HARDCODED_LIBRARY_PLATFORM_URI = LibraryEmfView.resourceUri;
+
+ protected static final String LIBRARY_EMF_VIEW = "LibraryEmfView";
+
+ protected static final String LIBRARY_EMF_VIEW_CUSTOM_LABEL = "LibraryEmfView Custom Label";
+
+ protected static final String EMF_DETAIL_VIEW = "Emf Form View";
+
+ protected static final String EMF_TREE_FORM_DETAIL_VIEW = "Emf Tree Form View";
+
+ protected static final String LIBRARY_CUSTOM_DETAIL_VIEW = "Library Emf Detail View";
+
+ protected static final String EMF_SHOW_ALL_TABLE_VIEW = "Emf Show All Table View";
+
+ protected static final String LIBRARY_TEST_EMF_TABLE_VIEW = "Library Test Table";
+
+ protected static final String LIBRARY_BOOKS_TABLE_VIEW = "Library Books Table View";
+
+ protected static final String TEST_SAVEABLE_TREE_FORM_VIEW = "Library Test Saveable Resource Tree Form View";
+
+ protected static final String TEST_SAVEABLE_TABLE_FORM_VIEW = "Library Test Saveable Resource Table Form View";
+
+ protected static final String TEST_SAVEABLE_TABLE_VIEW = "Library Test Saveable Table View";
+
+ protected static final String TEST_SAVEABLE_TREE_VIEW = "Library Test Saveable Tree View";
+
+ protected static final String TEST_SAVEABLE_VIEW_WITH_CUSTOM_CONTENT_PROVIDER = "Library Tree View With Custom Content Provider";
+
+ protected static final String WRITER_S_ADDRESS_TEXT = "writer's address";
+
+ protected static final String ADDRESS_LABEL = "address";
+
+ protected static final String BORROWERS_LABEL = "borrowers";
+
+ protected static final String AUTHOR_LABEL = "author";
+
+ protected static final String FIRSTNAME_LABEL = "firstName";
+
+ protected static final String CUSTOM_FIRSTNAME_LABEL = "First name";
+
+ protected static final String CUSTOM_SURNAME_LABEL = "Last name";
+
+ protected static final String LIBRARY_S_ADDRESS_TEXT = "Library's address";
+
+ protected static final String PEOPLE_LABEL = "people";
+
+ protected static final String PEOPLE_TEXT = WRITER_LABEL + ", "
+ + BORROWER_LABEL;
+
+ protected static final String CUSTOM_PEOPLE_TEXT = WRITER_LABEL + ", "
+ + CUSTOM_BORROWER_LABEL;
+
+ protected static final String ACTION_DELETE = "Delete";
+
+ protected static final String ACTION_VALIDATE = "Validate";
+
+ protected static final String ACTION_COPY = "Copy";
+
+ protected static final String ACTION_CUT = "Cut";
+
+ protected static final String ACTION_PASTE = "Paste";
+
+ // they have mnemonic so use a space after the string
+ protected static final String ACTION_REDO = "Redo ";
+
+ protected static final String ACTION_UNDO = "Undo ";
+
+ protected static final String BOOK_ON_TAPE = "Book On Tape";
+
+ protected static final String NEW_CHILD = "New Child";
+
+ protected static final String NEW_SIBLING = "New Sibling";
+
+ protected static final String EMF_COMPONENTS_PROJECT = "EmfComponentsProject";
+
+ protected static final String NEW_EMF_COMPONENTS_PROJECT = "Emf Parsley Project";
+
+ protected static final String NEW_EMF_COMPONENTS_DSL_PROJECT = "Emf Parsley Dsl Based Project";
+
+ protected static final String EMF_COMPONENTS_MAIL_RCP_EXAMPLE = "Emf Parsley Mail RCP Example";
+
+ protected static final String EMF_COMPONENTS_FIRST_EXAMPLE = "Emf Parsley First Example";
+
+ protected static final String EMF_COMPONENTS_VIEWS_EXAMPLES = "Emf Parsley Views Examples";
+
+ protected static SWTWorkbenchBot bot;
+
+ protected static Map<String, String> editorNamesToId;
+
+ @BeforeClass
+ public static void beforeClass() throws Exception {
+ bot = new SWTWorkbenchBot();
+
+ // increase timeout to 10 seconds
+ // SWTBotPreferences.TIMEOUT = 10000;
+
+ // in the launch configuration there will be no welcome view
+ // try {
+ // bot.viewByTitle("Welcome").close();
+ // } catch (WidgetNotFoundException e) {
+ // // OK!
+ // }
+
+ closeWelcomePage();
+
+ editorNamesToId = new HashMap<String, String>();
+ editorNamesToId.put(EMF_TREE_EDITOR,
+ EmfComponentsTestsActivator.EMF_TREE_EDITOR);
+ editorNamesToId.put(EMF_TREE_EDITOR_STATEMACHINE,
+ EmfComponentsTestsActivator.EMF_TREE_EDITOR_FOR_STATEMACHINE);
+ editorNamesToId.put(EMF_TREE_EDITOR_NO_MOUSE,
+ EmfComponentsTestsActivator.EMF_TREE_EDITOR_NO_MOUSE_ID);
+ editorNamesToId.put(EMF_TREE_EDITOR_CUSTOM_LABEL,
+ EmfComponentsTestsActivator.EMF_TREE_EDITOR_CUSTOM_LABEL);
+ editorNamesToId.put(EMF_CUSTOM_LIBRARY_EDITOR,
+ EmfComponentsTestsActivator.EMF_EDITOR_FOR_LIBRARY);
+
+ bot.viewByTitle(OUTLINE_VIEW).show();
+ }
+
+ @AfterClass
+ public static void clean() throws CoreException {
+ bot.resetWorkbench();
+ }
+
+ @After
+ public void runAfterEveryTest() throws CoreException {
+ // bot.sleep(2000);
+ cleanWorkspace();
+ IResourcesSetupUtil.waitForAutoBuild();
+ }
+
+ protected static void closeWelcomePage() throws InterruptedException {
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ if (PlatformUI.getWorkbench().getIntroManager().getIntro() != null) {
+ PlatformUI
+ .getWorkbench()
+ .getIntroManager()
+ .closeIntro(
+ PlatformUI.getWorkbench().getIntroManager()
+ .getIntro());
+ }
+ }
+ });
+ }
+
+ protected void assertPropertyViewIsOpenedAndCloseIt() {
+ SWTBotView propertyView = bot.viewByTitle("Properties");
+ // bot.sleep(2000);
+ propertyView.close();
+ }
+
+ protected SWTBotTreeItem getLibraryWriterNode(SWTBotTreeItem editorTreeRoot) {
+ return getWriterNode(getLibraryNode(editorTreeRoot));
+ }
+
+ protected SWTBotTreeItem getLibraryBookNode(SWTBotTreeItem editorTreeRoot) {
+ return getBookNode(getLibraryNode(editorTreeRoot));
+ }
+
+ protected SWTBotTreeItem getBookNode(SWTBotTreeItem treeItem) {
+ return treeItem.expand().getNode(BOOK_LABEL);
+ }
+
+ protected SWTBotTreeItem accessTreeWithCustomLabels(SWTBotTreeItem rootOfTree) {
+ return rootOfTree.expand().getNode("TEST " + LIBRARY_LABEL + " ENDTEST")
+ .expand().getNode("TEST " + WRITER_LABEL + " ENDTEST");
+ }
+
+ protected SWTBotTreeItem accessTreeWithCustomLibraryLabels(
+ SWTBotTreeItem rootOfTree) {
+ return rootOfTree.expand().getNode(LIBRARY_LABEL).expand()
+ .getNode("Book: Lorenzo's Book");
+ }
+
+ protected SWTBotTreeItem getLibraryNode(final SWTBotTreeItem treeItem) {
+ return treeItem.expand().getNode(LIBRARY_LABEL);
+ }
+
+ protected SWTBotTreeItem getWriterNode(final SWTBotTreeItem treeItem) {
+ return treeItem.expand().getNode(WRITER_LABEL);
+ }
+
+ protected SWTBotTreeItem getStatemachineNode(final SWTBotTreeItem treeItem) {
+ return treeItem.expand().getNode(STATEMACHINE_LABEL);
+ }
+
+ protected SWTBotTreeItem getEventNode(final SWTBotTreeItem treeItem) {
+ return treeItem.expand().getNode(EVENT_LABEL);
+ }
+
+ protected SWTBotTreeItem getStateNode(final SWTBotTreeItem treeItem) {
+ return treeItem.expand().getNode(STATE_LABEL);
+ }
+
+ protected SWTBotTreeItem getTransitionNode(final SWTBotTreeItem treeItem) {
+ return treeItem.expand().getNode(TRANSITION_LABEL);
+ }
+
+ protected void assertPropertyViewIsNotShown() {
+ try {
+ SWTBotView propertyView = bot.viewByTitle("Properties");
+ propertyView.close();
+ fail("Properties view should not show");
+ } catch (WidgetNotFoundException e) {
+ // OK!
+ }
+ }
+
+ protected SWTBotTreeItem getRootOfOutlineViewTree() {
+ SWTBotTree outlineTree = getRootOfTreeFromView(OUTLINE_VIEW);
+ return outlineTree.getTreeItem(MY_EXT_LIBRARY_PLATFORM_URI);
+ }
+
+ protected SWTBotTree getRootOfTreeFromView(String view) {
+ SWTBotView outlineView = bot.viewByTitle(view);
+ SWTBotTree outlineTree = outlineView.bot().tree();
+ return outlineTree;
+ }
+
+ protected SWTBotTreeItem getRootOfEditorTree(
+ String emfEditorContextMenuString, String fileName,
+ String treeRootLabel) throws CoreException,
+ InvocationTargetException, InterruptedException, IOException {
+ SWTBotTree tree = getEditorTree(emfEditorContextMenuString, fileName);
+ SWTBotTreeItem treeItemRoot = tree.getTreeItem(treeRootLabel);
+ return treeItemRoot;
+ }
+
+ protected SWTBotTree getEditorTree(String emfEditorContextMenuString,
+ String fileName) throws CoreException, InvocationTargetException,
+ InterruptedException, IOException {
+ SWTBotEditor editor = openEmfEditorOnTestFile(
+ emfEditorContextMenuString, fileName);
+ SWTBotTree tree = editor.bot().tree();
+ return tree;
+ }
+
+ protected SWTBotEditor openEmfEditorOnTestFile(
+ String emfEditorContextMenuString, String fileName)
+ throws CoreException, InvocationTargetException,
+ InterruptedException, IOException {
+ createProjectAndTestFiles();
+
+ clickOnContextMenu(getFileItemFromTestProject(fileName), "Open With",
+ emfEditorContextMenuString);
+ // ContextMenuHelper.clickContextMenu(projectTree, "Open With",
+ // emfEditorContextMenuString);
+
+ // SWTBotMenu contextMenu = getFileItemFromTestProject(fileName)
+ // .contextMenu("Open With");
+ // getSubMenuItem(contextMenu, emfEditorContextMenuString).click();
+
+ SWTBotEditor editor = getEditor(emfEditorContextMenuString);
+ return editor;
+ }
+
+ protected void clickOnContextMenu(SWTBotTreeItem treeItem,
+ final String... texts) {
+ new SWTBotMenu(contextMenu(treeItem, texts)).click();
+ }
+
+ protected void clickOnContextMenu(SWTBotTable table,
+ final String... texts) {
+ new SWTBotMenu(contextMenu(table, texts)).click();
+ }
+
+ protected MenuItem contextMenu(final SWTBotTreeItem treeItem,
+ final String... texts) {
+ treeItem.select();
+ return contextMenu(getSWTBotTree(treeItem), texts);
+ }
+
+ protected SWTBotTree getSWTBotTree(final SWTBotTreeItem treeItem) {
+ return new SWTBotTree(
+ UIThreadRunnable.syncExec(new WidgetResult<Tree>() {
+ public Tree run() {
+ return treeItem.widget.getParent();
+ }
+ }));
+ }
+
+ protected MenuItem contextMenu(SWTBotTree tree, final String... texts) {
+ return ContextMenuHelper.contextMenu(tree, texts);
+ }
+
+ protected MenuItem contextMenu(SWTBotTable table, final String... texts) {
+ return ContextMenuHelper.contextMenu(table, texts);
+ }
+
+ protected SWTBotEditor getEditor(String emfEditorContextMenuString) {
+ return bot.editorById(editorNamesToId.get(emfEditorContextMenuString));
+ }
+
+ protected SWTBotTreeItem getFileItemFromTestProject(String fileName) {
+ return getProjectTreeItem(MY_TEST_PROJECT).expand().getNode(fileName);
+ }
+
+ protected void createProjectAndTestFile() throws CoreException,
+ InvocationTargetException, InterruptedException, IOException {
+ createMyTestProject();
+ IFile file = createFile(MY_EXTLIBRARY_RELATIVE_PATH,
+ localFileContents(MY_EXTLIBRARY));
+ assertTrue(file.exists());
+ }
+
+ protected void createProjectAndTestFiles() throws CoreException,
+ InvocationTargetException, InterruptedException, IOException {
+ createProjectAndTestFile();
+ IFile file = createFile(MY_STATEMACHINE_RELATIVE_PATH,
+ localFileContents(MY_STATEMACHINE));
+ assertTrue(file.exists());
+ }
+
+ protected String localFileContents(String string) throws IOException {
+ return EmfComponentsTestsActivator.localFileContents(string);
+ }
+
+ protected Library localLibrary(String extlibraryFileName) throws IOException {
+ File file = EmfComponentsTestsActivator.localFile(extlibraryFileName);
+ URI uri = URI.createFileURI(file.getAbsolutePath());
+ ResourceSet resourceSet = new ResourceSetImpl();
+ Resource resource = resourceSet.getResource(uri, true);
+ return (Library) resource.getContents().get(0);
+ }
+
+ protected void createMyTestProject() {
+ createProjectInWorkspace("General", "Project", MY_TEST_PROJECT);
+ }
+
+ protected void createProjectInWorkspace(String category,
+ String projectType, String projectName) {
+ SWTBotShell shell = createNewProjectWizard(category, projectType,
+ projectName);
+
+ bot.button("Finish").click();
+ assertProjectIsCreated(projectName, shell);
+ }
+
+ protected void createExampleProjectsInWorkspace(String exampleDescription,
+ String... expectedProjects) {
+ bot.menu("File").menu("New").menu("Project...").click();
+
+ SWTBotShell shell = bot.shell("New Project");
+ shell.activate();
+ bot.tree().expandNode(EMF_PARSLEY_CATEGORY, "Examples")
+ .select(exampleDescription);
+ bot.button("Next >").click();
+
+ bot.button("Finish").click();
+
+ bot.waitUntil(shellCloses(shell), 50000);
+
+ for (String projectName : expectedProjects) {
+ assertProjectIsCreated(projectName, shell);
+ }
+ }
+
+ protected void createProjectInWorkspaceWithView(String category,
+ String projectType, String projectName, String viewToSelect) {
+ SWTBotShell shell = createNewProjectWizard(category, projectType,
+ projectName);
+
+ // advance to the second page
+ bot.button("Next >").click();
+ if (viewToSelect != null) {
+ bot.radio(viewToSelect).click();
+ }
+
+ bot.button("Finish").click();
+ assertProjectIsCreated(projectName, shell);
+ }
+
+ protected SWTBotShell createNewProjectWizard(String category,
+ String projectType, String projectName) {
+ bot.menu("File").menu("New").menu("Project...").click();
+
+ SWTBotShell shell = bot.shell("New Project");
+ shell.activate();
+ bot.tree().expandNode(category).select(projectType);
+ bot.button("Next >").click();
+
+ bot.textWithLabel("Project name:").setText(projectName);
+ return shell;
+ }
+
+ protected SWTBotShell createNewProjectWizard(String category,
+ String subCategory, String projectType, String projectName) {
+ bot.menu("File").menu("New").menu("Project...").click();
+
+ SWTBotShell shell = bot.shell("New Project");
+ shell.activate();
+ bot.tree().expandNode(category, subCategory).select(projectType);
+ bot.button("Next >").click();
+
+ bot.textWithLabel("Project name:").setText(projectName);
+ return shell;
+ }
+
+ protected void assertProjectIsCreated(String projectName, SWTBotShell shell) {
+ // creation of a project might require some time
+ bot.waitUntil(shellCloses(shell), 50000);
+ assertProjectIsCreated(projectName);
+ }
+
+ protected void assertProjectIsCreated(String projectName) {
+ assertTrue("Project doesn't exist", isProjectCreated(projectName));
+ }
+
+ protected void waitForBuild() throws CoreException {
+ IResourcesSetupUtil.waitForAutoBuild();
+
+ // ensure that all queued workspace operations and locks are released
+ try {
+ ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
+ public void run(IProgressMonitor monitor) throws CoreException {
+ // nothing to do!
+ }
+ }, new NullProgressMonitor());
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ try {
+ IResourcesSetupUtil.cleanBuild();
+ IResourcesSetupUtil.fullBuild();
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ }
+
+ protected static SWTBotView getPackageExplorer() {
+ SWTBotView view = bot.viewByTitle("Package Explorer");
+ return view;
+ }
+
+ protected boolean isProjectCreated(String name) {
+ try {
+ getProjectTreeItem(name);
+ return true;
+ } catch (WidgetNotFoundException e) {
+ return false;
+ }
+ }
+
+ protected static SWTBotTree getProjectTree() {
+ SWTBotView packageExplorer = getPackageExplorer();
+ SWTBotTree tree = packageExplorer.bot().tree();
+ return tree;
+ }
+
+ protected SWTBotTreeItem getProjectTreeItem(String myTestProject) {
+ return getProjectTree().getTreeItem(myTestProject);
+ }
+
+ protected void accessStateMachineNodes(SWTBotTreeItem root) {
+ getEventNode(getStatemachineNode(root));
+ getTransitionNode(getStateNode(getStatemachineNode(root)));
+ }
+
+ protected void assertTreeItemImage(SWTBotTreeItem item,
+ final ImageDescriptor expectedImage) {
+ final TreeItem widget = item.widget;
+ // part of test that requires UI-thread
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ try {
+ Image image = widget.getImage();
+ // System.out.println(image);
+ assertImageDataIs(expectedImage.getImageData(),
+ image.getImageData());
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ fail("due to exception: " + ex.getMessage());
+ }
+ }
+ });
+ }
+
+ protected void assertStatusLine(final String expectedStatusLineText) {
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ IWorkbenchPart activePart = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow().getActivePage()
+ .getActivePart();
+ IActionBars actionBars = ActionBarsUtils
+ .getActionBars(activePart);
+
+ if (actionBars == null) {
+ fail("cannot get action bars from: " + activePart);
+ } else {
+ assertStatusLine(expectedStatusLineText, actionBars);
+ }
+ }
+
+ protected void assertStatusLine(
+ final String expectedStatusLineText, IActionBars actionBars) {
+ IStatusLineManager statusLineManager = actionBars
+ .getStatusLineManager();
+
+ // this is a terrible hack to read the current text of the
+ // status line manager as suggested here:
+ // http://stackoverflow.com/questions/5173838/reading-eclipse-status-line
+ SubStatusLineManager subStatusLineManager = (SubStatusLineManager) statusLineManager;
+ Control control = ((StatusLineManager) subStatusLineManager
+ .getParent()).getControl();
+ Control[] children = ((Composite) control).getChildren();
+
+ for (Control child : children) {
+ if (child instanceof CLabel) {
+ assertEquals(expectedStatusLineText,
+ ((CLabel) child).getText());
+ return;
+ }
+ }
+
+ // if we're here we failed
+ fail("could not find the text of the status line");
+ }
+ });
+ }
+
+ protected ImageDescriptor getImageDescriptorFromLibraryEdit(
+ String imageFileName) {
+ return getImageDescriptorFromPlugin(
+ "org.eclipse.emf.parsley.examples.library.edit",
+ "icons/full/obj16/" + imageFileName);
+ }
+
+ protected ImageDescriptor getImageDescriptorFromTest(String imageFileName) {
+ return getImageDescriptorFromPlugin(
+ "org.eclipse.emf.parsley.tests.swtbot", "icons/"
+ + imageFileName);
+ }
+
+ protected ImageDescriptor getImageDescriptorFromPlugin(String pluginId,
+ String imageFileName) {
+ return AbstractUIPlugin.imageDescriptorFromPlugin(pluginId,
+ imageFileName);
+ }
+
+ protected SWTBotView openTestView(String libraryView) {
+ bot.menu("Window").menu("Show View").menu("Other...").click();
+ SWTBotShell shell = bot.shell("Show View");
+ shell.activate();
+ bot.tree().expandNode(EMF_PARSLEY_CATEGORY).select(libraryView);
+ bot.button("OK").click();
+ bot.waitUntil(shellCloses(shell), 50000);
+ return getLibraryView(libraryView);
+ }
+
+ protected void undo(String undoText) {
+ bot.menu("Edit").menu("Undo " + undoText).click();
+ }
+
+ protected SWTBotView getLibraryView(String libraryView) {
+ return bot.viewByTitle(libraryView);
+ }
+
+ protected void closeLibraryView(String libraryView) {
+ getLibraryView(libraryView).close();
+ }
+
+ protected void getTableHeader(int tableIndex, String tableHeader) {
+ SWTBotTable table = bot.table(tableIndex);
+ table.header(tableHeader);
+ }
+
+ protected void getTableHeader(String tableHeader) {
+ SWTBotTable table = bot.table();
+ table.header(tableHeader);
+ }
+
+ protected void canAccessStandardEditingActions(SWTBotTreeItem libraryNode) {
+ contextMenu(libraryNode, ACTION_UNDO);
+ contextMenu(libraryNode, ACTION_REDO);
+ contextMenu(libraryNode, ACTION_VALIDATE);
+ contextMenu(libraryNode, ACTION_COPY);
+ contextMenu(libraryNode, ACTION_CUT);
+ contextMenu(libraryNode, ACTION_PASTE);
+ contextMenu(libraryNode, ACTION_DELETE);
+ }
+
+ protected static void assertImageDataIs(ImageData expectedImageData,
+ ImageData actualImageData) {
+ if (expectedImageData.width != actualImageData.width
+ || expectedImageData.height != actualImageData.height) {
+ fail(MessageFormat
+ .format("Image data do not have the same dimensions ({0}x{1} expected, got {2}x{3})",
+ expectedImageData.width, expectedImageData.height,
+ actualImageData.width, actualImageData.height));
+ }
+
+ for (int y = 0; y < expectedImageData.height; y++) {
+ for (int x = 0; x < expectedImageData.width; x++) {
+ int actualPixel = actualImageData.getPixel(x, y);
+ int expectedPixel = expectedImageData.getPixel(x, y);
+ RGB actualRGB = actualImageData.palette.getRGB(actualPixel);
+ RGB expectedRGB = expectedImageData.palette
+ .getRGB(expectedPixel);
+ if (!actualRGB.equals(expectedRGB)) {
+ fail(MessageFormat.format(
+ "Image data do not match at ({0},{1})", x, y));
+ }
+ }
+ }
+ }
+
+ /**
+ * Taken from http://www.prait.ch/wordpress/?p=218
+ *
+ * @param parentMenu
+ * @param itemText
+ * @return
+ * @throws WidgetNotFoundException
+ */
+ protected SWTBotMenu getSubMenuItem(final SWTBotMenu parentMenu,
+ final String itemText) throws WidgetNotFoundException {
+
+ MenuItem menuItem = UIThreadRunnable
+ .syncExec(new WidgetResult<MenuItem>() {
+ public MenuItem run() {
+ Menu bar = parentMenu.widget.getMenu();
+ if (bar != null) {
+ for (MenuItem item : bar.getItems()) {
+ if (item.getText().equals(itemText)) {
+ return item;
+ }
+ }
+ }
+ return null;
+ }
+ });
+
+ if (menuItem == null) {
+ throw new WidgetNotFoundException("MenuItem \"" + itemText
+ + "\" not found.");
+ } else {
+ return new SWTBotMenu(menuItem);
+ }
+ }
+
+ protected void assertNoErrorsInProjectAfterAutoBuild() throws CoreException {
+ waitForBuild();
+ assertNoErrorsInProject();
+ }
+
+ protected void assertNoErrorsInProject() throws CoreException {
+ IMarker[] markers = root().findMarkers(IMarker.PROBLEM, true,
+ IResource.DEPTH_INFINITE);
+ List<IMarker> errorMarkers = new LinkedList<IMarker>();
+ for (int i = 0; i < markers.length; i++) {
+ IMarker iMarker = markers[i];
+ if (iMarker.getAttribute(IMarker.SEVERITY).toString()
+ .equals("" + IMarker.SEVERITY_ERROR)) {
+ errorMarkers.add(iMarker);
+ }
+ }
+ assertEquals(
+ "expected no error markers: " + printMarkers(errorMarkers), 0,
+ errorMarkers.size());
+ }
+
+ protected void setEditorContentsSaveAndWaitForAutoBuild(
+ SWTBotEditor editor, CharSequence contents) throws CoreException {
+ editor.toTextEditor().setText(contents.toString());
+ editor.save();
+ assertNoErrorsInProjectAfterAutoBuild();
+ }
+
+ private String printMarkers(List<IMarker> errorMarkers) {
+ StringBuffer buffer = new StringBuffer();
+ for (IMarker iMarker : errorMarkers) {
+ try {
+ buffer.append(iMarker.getAttribute(IMarker.MESSAGE) + "\n");
+ buffer.append(iMarker.getAttribute(IMarker.SEVERITY) + "\n");
+ } catch (CoreException e) {
+ }
+ }
+ return buffer.toString();
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsColumnLabelProviderTests.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsColumnLabelProviderTests.java
new file mode 100644
index 000000000..5747965eb
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsColumnLabelProviderTests.java
@@ -0,0 +1,48 @@
+package org.eclipse.emf.parsley.tests;
+
+import static org.eclipse.emf.parsley.examples.library.EXTLibraryPackage.Literals.WRITER__NAME;
+import static org.junit.Assert.assertEquals;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryFactory;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.examples.library.Writer;
+import org.eclipse.emf.parsley.factories.ColumnLabelProviderFactory;
+import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * @author Francesco Guidieri
+ *
+ */
+@RunWith(SWTBotJunit4ClassRunner.class)
+public class EmfComponentsColumnLabelProviderTests extends
+ EmfComponentsCustomLibraryAbstractTests {
+
+ @Test
+ public void testLabelProviderForAuthorName() {
+ ColumnLabelProvider labelProvider = createLabelProvider(WRITER__NAME);
+
+ Library library = createTestLibraryWithPeople();
+ Writer writer = library.getWriters().get(0);
+
+ assertEquals("Writer My Writer", labelProvider.getText(writer));
+ }
+
+ protected ColumnLabelProvider createLabelProvider(
+ EStructuralFeature eStructuralFeature) {
+ return getInjector().getInstance(ColumnLabelProviderFactory.class)
+ .createColumnLabelProvider(eStructuralFeature);
+ }
+
+ protected Library createTestLibraryWithPeople() {
+ Library library = EXTLibraryFactory.eINSTANCE.createLibrary();
+ library.setName("My Library");
+ Writer writer = EXTLibraryFactory.eINSTANCE.createWriter();
+ writer.setName("My Writer");
+ library.getWriters().add(writer);
+ return library;
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsCustomLibraryAbstractTests.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsCustomLibraryAbstractTests.java
new file mode 100644
index 000000000..51f7777d2
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsCustomLibraryAbstractTests.java
@@ -0,0 +1,47 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.List;
+
+import org.eclipse.emf.parsley.tests.factories.CustomLibraryExecutableExtensionFactory;
+import org.eclipse.jface.viewers.ILabelProvider;
+
+import com.google.inject.Injector;
+
+/**
+ * @author bettini
+ *
+ */
+public class EmfComponentsCustomLibraryAbstractTests extends
+ EmfComponentsAbstractTests {
+
+ protected Injector getInjector() {
+ return EmfComponentsTestsActivator.getDefault().getInjector(
+ CustomLibraryExecutableExtensionFactory.class);
+ }
+
+ protected void assertLabels(String expected, Object[] elements) {
+ ILabelProvider labelProvider = getInjector().getInstance(
+ ILabelProvider.class);
+ StringBuffer buffer = new StringBuffer();
+ for (int i = 0; i < elements.length; i++) {
+ buffer.append(labelProvider.getText(elements[i]) + "; ");
+ }
+ assertEquals(expected, buffer.toString());
+ }
+
+ protected void assertListLabels(String expected, List<?> elements) {
+ ILabelProvider labelProvider = getInjector().getInstance(
+ ILabelProvider.class);
+ StringBuffer buffer = new StringBuffer();
+ for (Object object : elements) {
+ buffer.append(labelProvider.getText(object) + "; ");
+ }
+ assertEquals(expected, buffer.toString());
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsDslWizardsTests.xtend b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsDslWizardsTests.xtend
new file mode 100644
index 000000000..ae1b5966a
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsDslWizardsTests.xtend
@@ -0,0 +1,69 @@
+package org.eclipse.emf.parsley.tests
+
+import org.junit.runner.RunWith
+import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner
+import org.junit.Test
+import org.junit.Assert
+
+import static org.eclipse.emf.parsley.dsl.generator.EmfParsleyDslOutputConfigurationProvider.*
+
+@RunWith(typeof(SWTBotJunit4ClassRunner))
+public class EmfComponentsDslWizardsTests extends EmfComponentsAbstractTests {
+
+ val TEST_PROJ_NAME = "my.emfparsley.proj"
+
+ @Test
+ def canCreateDslProjectWithWizard() {
+ createProjectInWorkspace(EMF_PARSLEY_CATEGORY,
+ NEW_EMF_COMPONENTS_DSL_PROJECT, TEST_PROJ_NAME);
+ //bot.sleep(300000);
+ assertNoErrorsInProjectAfterAutoBuild();
+ }
+
+ @Test
+ def void checkPluginXmlGen() {
+ createProjectInWorkspace(EMF_PARSLEY_CATEGORY,
+ NEW_EMF_COMPONENTS_DSL_PROJECT, TEST_PROJ_NAME);
+ assertNoErrorsInProjectAfterAutoBuild();
+
+ val editor = bot.editorByTitle("module.parsley")
+
+ editor.setEditorContentsSaveAndWaitForAutoBuild(
+'''
+module «TEST_PROJ_NAME» {
+
+ // parts should trigger generation of «PLUGIN_XML_EMFPARSLEY_GEN»
+
+ parts {
+ viewpart id {
+ viewname "View Name"
+ viewclass org.eclipse.emf.parsley.views.AbstractSaveableTreeView
+ // viewcategory my.category
+ }
+ }
+}
+'''
+ )
+
+ // now the generated plugin xml file should be available
+ val projTree = getProjectTreeItem(TEST_PROJ_NAME)
+ projTree.expand.getNode(PLUGIN_XML_EMFPARSLEY_GEN)
+
+ editor.setEditorContentsSaveAndWaitForAutoBuild(
+'''
+module «TEST_PROJ_NAME» {
+ // removed parts
+
+ // «PLUGIN_XML_EMFPARSLEY_GEN» should be removed
+}
+'''
+ )
+
+ // now the generated plugin xml file must have been removed
+ Assert::assertTrue(
+ PLUGIN_XML_EMFPARSLEY_GEN + " still present!",
+ projTree.nodes.forall [ it != PLUGIN_XML_EMFPARSLEY_GEN ]
+ )
+ }
+
+} \ No newline at end of file
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsEditorTests.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsEditorTests.java
new file mode 100644
index 000000000..2c6a80bc1
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsEditorTests.java
@@ -0,0 +1,206 @@
+package org.eclipse.emf.parsley.tests;
+
+import static org.junit.Assert.assertTrue;
+
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * @author bettini
+ *
+ */
+@RunWith(SWTBotJunit4ClassRunner.class)
+public class EmfComponentsEditorTests extends EmfComponentsAbstractTests {
+
+ public void canCreateProject() throws Exception {
+ createMyTestProject();
+ }
+
+ public void canCreateProjectWithFile() throws Exception {
+ createProjectAndTestFile();
+ getProjectTreeItem(MY_TEST_PROJECT).expand();
+ }
+
+ @Test
+ public void canOpenEmfFormEditorOnTestFile() throws Exception {
+ openEmfEditorOnTestFile(EMF_TREE_EDITOR, MY_EXTLIBRARY);
+ }
+
+ @Test
+ public void canAccessEditorTreeOfLibrary() throws Exception {
+ getWriterNode(getLibraryNode(getRootOfEditorTree(EMF_TREE_EDITOR,
+ MY_EXTLIBRARY, MY_EXT_LIBRARY_PLATFORM_URI)));
+ }
+
+ @Test
+ public void canAccessContextMenuOfLibrary() throws Exception {
+ SWTBotTreeItem libraryNode = getLibraryNode(getRootOfEditorTree(
+ EMF_TREE_EDITOR, MY_EXTLIBRARY, MY_EXT_LIBRARY_PLATFORM_URI));
+ clickOnContextMenu(libraryNode, NEW_CHILD, BOOK_ON_TAPE);
+ // check that the new item was created
+ libraryNode.expand().getNode(BOOK_ON_TAPE);
+ SWTBotEditor editor = getEditor(EMF_TREE_EDITOR);
+ assertTrue("editor should be in dirty state", editor.isDirty());
+ undo("New " + BOOK_ON_TAPE);
+ assertTrue("editor should NOT be in dirty state", !editor.isDirty());
+ editor.saveAndClose();
+ }
+
+ @Test
+ public void canAccessStandardEditingActionsOnTreeEditor() throws Exception {
+ SWTBotTreeItem libraryNode = getLibraryNode(getRootOfEditorTree(
+ EMF_TREE_EDITOR, MY_EXTLIBRARY, MY_EXT_LIBRARY_PLATFORM_URI));
+ canAccessStandardEditingActions(libraryNode);
+ }
+
+ @Test
+ public void canAccessEditorTreeOfStatemachine() throws Exception {
+ accessStateMachineNodes(getRootOfEditorTree(
+ EMF_TREE_EDITOR_STATEMACHINE, MY_STATEMACHINE,
+ MY_STATEMACHINE_PLATFORM_URI));
+ }
+
+ @Test
+ public void canPopulateOutlineView() throws Exception {
+ openEmfEditorOnTestFile(EMF_TREE_EDITOR, MY_EXTLIBRARY);
+ getRootOfOutlineViewTree();
+ }
+
+ @Test
+ public void canOpenPropertyViewWithDoubleClick() throws Exception {
+ // double click on Library node on the tree of the editor and outline
+ // view should open the property view
+ getLibraryNode(
+ getRootOfEditorTree(EMF_TREE_EDITOR, MY_EXTLIBRARY,
+ MY_EXT_LIBRARY_PLATFORM_URI)).doubleClick();
+ assertPropertyViewIsOpenedAndCloseIt();
+ getLibraryNode(getRootOfOutlineViewTree()).doubleClick();
+ assertPropertyViewIsOpenedAndCloseIt();
+ }
+
+ //@Test
+ // this takes some time to test (due to timeout)
+ // and it does not make much sense as a test (Lorenzo)
+ public void testEditorWithNoMouseEvents() throws Exception {
+ // double click on Library node on the tree of the editor and outline
+ // view should NOT open the property view
+ getLibraryNode(
+ getRootOfEditorTree(EMF_TREE_EDITOR_NO_MOUSE, MY_EXTLIBRARY,
+ MY_EXT_LIBRARY_PLATFORM_URI)).doubleClick();
+ assertPropertyViewIsNotShown();
+ getLibraryNode(getRootOfOutlineViewTree()).doubleClick();
+ assertPropertyViewIsNotShown();
+ }
+
+ @Test
+ public void testEditorWithCustomLabels() throws Exception {
+ SWTBotTreeItem rootOfTree = getRootOfEditorTree(
+ EMF_TREE_EDITOR_CUSTOM_LABEL, MY_EXTLIBRARY,
+ MY_EXT_LIBRARY_PLATFORM_URI);
+ accessTreeWithCustomLabels(rootOfTree);
+ accessTreeWithCustomLabels(getRootOfOutlineViewTree());
+ }
+
+ @Test
+ public void testEditorWithCustomLibraryLabels() throws Exception {
+ SWTBotTreeItem rootOfTree = getRootOfEditorTree(
+ EMF_CUSTOM_LIBRARY_EDITOR, MY_EXTLIBRARY,
+ MY_EXT_LIBRARY_PLATFORM_URI);
+ SWTBotTreeItem treeItem = accessTreeWithCustomLibraryLabels(rootOfTree);
+ assertTreeItemImage(treeItem, getImageDescriptorFromTest("book2.png"));
+ treeItem = accessTreeWithCustomLibraryLabels(getRootOfOutlineViewTree());
+ assertTreeItemImage(treeItem, getImageDescriptorFromTest("book2.png"));
+ }
+
+ //@Test
+ // TODO this does not seem to work anymore...
+ // the image is the same, but probably some internal modifications
+ // or adjustments make the images differ from the binary point of view...
+ public void testEditorWithCustomLibraryLabelsInEditPlugin() throws Exception {
+ SWTBotTreeItem rootOfTree = getRootOfEditorTree(
+ EMF_TREE_EDITOR_CUSTOM_LABEL, MY_EXTLIBRARY,
+ MY_EXT_LIBRARY_PLATFORM_URI);
+ SWTBotTreeItem treeItem = accessTreeWithCustomLabels(rootOfTree);
+ assertTreeItemImage(treeItem, getImageDescriptorFromTest("custom_book.png"));
+ treeItem = accessTreeWithCustomLabels(getRootOfOutlineViewTree());
+ assertTreeItemImage(treeItem, getImageDescriptorFromTest("custom_book.png"));
+ }
+
+ @Test
+ public void canSelectInOutlineView() throws Exception {
+ SWTBotTreeItem editorTreeRoot = getRootOfEditorTree(EMF_TREE_EDITOR,
+ MY_EXTLIBRARY, MY_EXT_LIBRARY_PLATFORM_URI);
+ getLibraryWriterNode(getRootOfOutlineViewTree()).select();
+ assertTrue("writer node should be selected",
+ getLibraryWriterNode(editorTreeRoot).isSelected());
+ }
+
+ @Test
+ public void statusLineFromOutlineView() throws Exception {
+ getRootOfEditorTree(EMF_TREE_EDITOR, MY_EXTLIBRARY,
+ MY_EXT_LIBRARY_PLATFORM_URI);
+ getLibraryWriterNode(getRootOfOutlineViewTree()).select();
+ assertStatusLine("Selected Object: " + WRITER_LABEL);
+ }
+
+ @Test
+ public void statusLineFromEditor() throws Exception {
+ getLibraryWriterNode(
+ getRootOfEditorTree(EMF_TREE_EDITOR, MY_EXTLIBRARY,
+ MY_EXT_LIBRARY_PLATFORM_URI)).select();
+ assertStatusLine("Selected Object: " + WRITER_LABEL);
+ }
+
+ @Test
+ public void tableViewShowsTablesOnSelection() throws Exception {
+ SWTBotView tableView = openTestView(EMF_SHOW_ALL_TABLE_VIEW);
+ // select on the editor's tree
+ SWTBotTreeItem rootOfEditorTree = getRootOfEditorTree(EMF_TREE_EDITOR,
+ MY_EXTLIBRARY, MY_EXT_LIBRARY_PLATFORM_URI);
+ getLibraryWriterNode(rootOfEditorTree).select();
+ getTableHeader(ADDRESS_LABEL);
+ getTableHeader(FIRSTNAME_LABEL);
+ // select on the outline view
+ getLibraryNode(getRootOfOutlineViewTree()).select();
+ getTableHeader(ADDRESS_LABEL);
+ // the writers table is the second one
+ getTableHeader(1, FIRSTNAME_LABEL);
+ tableView.close();
+ }
+
+ @Test
+ public void selectionViewOnSelection() throws Exception {
+ SWTBotView selectionView = openTestView(LIBRARY_EMF_VIEW);
+ // select on the editor's tree
+ SWTBotTreeItem rootOfEditorTree = getRootOfEditorTree(EMF_TREE_EDITOR,
+ MY_EXTLIBRARY, MY_EXT_LIBRARY_PLATFORM_URI);
+ // we select the library in the editor...
+ getLibraryNode(rootOfEditorTree).select();
+ // and the selection view should show its children (so we must find the
+ // writer)
+ getRootOfTreeFromView(LIBRARY_EMF_VIEW).getTreeItem(WRITER_LABEL);
+ selectionView.close();
+ }
+
+ @Test
+ public void selectionViewOnSelectionOnStatemachine() throws Exception {
+ SWTBotView selectionView = openTestView(LIBRARY_EMF_VIEW);
+ // select on the editor's tree
+ SWTBotTreeItem rootOfEditorTree = getRootOfEditorTree(
+ EMF_TREE_EDITOR_STATEMACHINE, MY_STATEMACHINE,
+ MY_STATEMACHINE_PLATFORM_URI);
+ // we select the statemachine in the editor...
+ getStatemachineNode(rootOfEditorTree).select();
+ // and the selection view should show its children (so we must find the
+ // events)
+ getRootOfTreeFromView(LIBRARY_EMF_VIEW).getTreeItem(EVENT_LABEL);
+ // and states
+ getTransitionNode(getRootOfTreeFromView(LIBRARY_EMF_VIEW).getTreeItem(
+ STATE_LABEL));
+ selectionView.close();
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsExamplesWizardsTests.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsExamplesWizardsTests.java
new file mode 100644
index 000000000..d5a7a87c2
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsExamplesWizardsTests.java
@@ -0,0 +1,38 @@
+package org.eclipse.emf.parsley.tests;
+
+import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+@RunWith(SWTBotJunit4ClassRunner.class)
+public class EmfComponentsExamplesWizardsTests extends
+ EmfComponentsAbstractTests {
+
+ @Test
+ public void canCreateMailExampleProjectWithWizard() throws Exception {
+ createExampleProjectsInWorkspace(EMF_COMPONENTS_MAIL_RCP_EXAMPLE,
+ "org.eclipse.emf.parsley.examples.mail.model");
+ assertNoErrorsInProjectAfterAutoBuild();
+ }
+
+ @Test
+ public void canCreateFirstExampleProjectWithWizard() throws Exception {
+ createExampleProjectsInWorkspace(EMF_COMPONENTS_FIRST_EXAMPLE,
+ "org.eclipse.emf.parsley.examples.firstexample",
+ "org.eclipse.emf.examples.library",
+ "org.eclipse.emf.examples.library.edit");
+ assertNoErrorsInProjectAfterAutoBuild();
+ }
+
+ @Test
+ public void canCreateViewsExamplesProjectWithWizard() throws Exception {
+ createExampleProjectsInWorkspace(EMF_COMPONENTS_VIEWS_EXAMPLES,
+ "org.eclipse.emf.parsley.examples.views");
+ assertNoErrorsInProjectAfterAutoBuild();
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsFormTests.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsFormTests.java
new file mode 100644
index 000000000..3a604582a
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsFormTests.java
@@ -0,0 +1,130 @@
+package org.eclipse.emf.parsley.tests;
+
+import static org.eclipse.swtbot.swt.finder.waits.Conditions.shellCloses;
+
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.forms.finder.SWTFormsBot;
+import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * @author bettini
+ *
+ */
+@RunWith(SWTBotJunit4ClassRunner.class)
+public class EmfComponentsFormTests extends EmfComponentsAbstractTests {
+
+ @Test
+ public void detailViewShowsDetailsOnSelection() throws Exception {
+ SWTBotView detailView = openTestView(EMF_DETAIL_VIEW);
+ // select on the editor's tree
+ SWTBotTreeItem rootOfEditorTree = getRootOfEditorTree(EMF_TREE_EDITOR,
+ MY_EXTLIBRARY, MY_EXT_LIBRARY_PLATFORM_URI);
+ getLibraryWriterNode(rootOfEditorTree).select();
+ SWTFormsBot formbot = formBotFromView(detailView);
+ formbot.label(ADDRESS_LABEL);
+ formbot.text(WRITER_S_ADDRESS_TEXT);
+ formbot.label(FIRSTNAME_LABEL);
+ // select on the outline view
+ getLibraryNode(getRootOfOutlineViewTree()).select();
+ formbot.label(ADDRESS_LABEL);
+ formbot.text(LIBRARY_S_ADDRESS_TEXT);
+ // the label for 'people'
+ formbot.label(PEOPLE_LABEL);
+ // the inner label listing all the people, before the button "..."
+ formbot.label(PEOPLE_TEXT);
+ // now select again on the editor's tree
+ getLibraryWriterNode(rootOfEditorTree).select();
+ formbot.label(ADDRESS_LABEL);
+ formbot.text(WRITER_S_ADDRESS_TEXT);
+ // detailView.close();
+ }
+
+ protected SWTFormsBot formBotFromView(SWTBotView detailView) {
+ return new SWTFormsBot(detailView.getWidget());
+ }
+
+ @Test
+ public void detailViewShowsCustomDetailsOnSelection() throws Exception {
+ SWTBotView detailView = openTestView(LIBRARY_CUSTOM_DETAIL_VIEW);
+ // select on the editor's tree
+ SWTBotTreeItem rootOfEditorTree = getRootOfEditorTree(EMF_TREE_EDITOR,
+ MY_EXTLIBRARY, MY_EXT_LIBRARY_PLATFORM_URI);
+ getLibraryWriterNode(rootOfEditorTree).select();
+ SWTFormsBot formbot = formBotFromView(detailView);
+ formbot.label(ADDRESS_LABEL);
+ formbot.text(WRITER_S_ADDRESS_TEXT);
+ formbot.label(CUSTOM_FIRSTNAME_LABEL);
+ formbot.label(CUSTOM_SURNAME_LABEL);
+ // select on the outline view
+ getLibraryNode(getRootOfOutlineViewTree()).select();
+ formbot.label(ADDRESS_LABEL);
+ formbot.text(LIBRARY_S_ADDRESS_TEXT);
+ // the label for 'people'
+ formbot.label(PEOPLE_LABEL);
+ // the inner label listing all the people, before the button "..."
+ formbot.label(CUSTOM_PEOPLE_TEXT);
+ }
+
+ @Test
+ public void customControlOfWriterNode() throws Exception {
+ SWTBotView detailView = openTestView(LIBRARY_CUSTOM_DETAIL_VIEW);
+ // select on the editor's tree
+ SWTBotTreeItem rootOfEditorTree = getRootOfEditorTree(EMF_TREE_EDITOR,
+ MY_EXTLIBRARY, MY_EXT_LIBRARY_PLATFORM_URI);
+ getLibraryWriterNode(rootOfEditorTree).select();
+ SWTFormsBot formbot = formBotFromView(detailView);
+ formbot.label(ADDRESS_LABEL);
+ formbot.text(WRITER_NAME);
+ }
+
+ @Test
+ public void treeFormViewShowsOnSelection() throws Exception {
+ SWTBotView view = openTestView(EMF_TREE_FORM_DETAIL_VIEW);
+ // select on the editor's tree
+ SWTBotTreeItem rootOfEditorTree = getRootOfEditorTree(EMF_TREE_EDITOR,
+ MY_EXTLIBRARY, MY_EXT_LIBRARY_PLATFORM_URI);
+ // select on the editor
+ getLibraryNode(rootOfEditorTree).select();
+
+ // now select on the tree inside the view
+ view.bot().tree().getTreeItem(WRITER_LABEL).select();
+
+ SWTFormsBot formbot = formBotFromView(view);
+ formbot.label(ADDRESS_LABEL);
+ formbot.text(WRITER_S_ADDRESS_TEXT);
+ formbot.label(FIRSTNAME_LABEL);
+ }
+
+ @Test
+ public void testMultipleFeatureControlDialog() throws Exception {
+ SWTBotView detailView = openTestView(LIBRARY_CUSTOM_DETAIL_VIEW);
+ // select on the editor's tree
+ SWTBotTreeItem rootOfEditorTree = getRootOfEditorTree(EMF_TREE_EDITOR,
+ MY_EXTLIBRARY, MY_EXT_LIBRARY_PLATFORM_URI);
+ getLibraryBookNode(rootOfEditorTree).select();
+ SWTFormsBot formbot = formBotFromView(detailView);
+ formbot.button("...").click();
+ SWTBotShell shell = bot.shell("Select -- Book: Lorenzo's Book");
+ shell.activate();
+ // simulate the addition of a borrower in the dialog
+ bot.table(0).select("Borrower: Foo"); // left table
+ bot.button("Add").click();
+
+ // is the additional proposal there?
+ bot.table(0).select("Borrower: Fake Borrower"); // left table
+
+ // now the borrower should be in the right table
+ bot.table(1).select("Borrower: Foo"); // right table
+ bot.button("OK").click();
+ bot.waitUntil(shellCloses(shell), 50000);
+
+ // check that the selected borrower has been added
+ formbot.label("Borrower: Foo");
+
+ getEditor(EMF_TREE_EDITOR).close();
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsLabelProviderTests.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsLabelProviderTests.java
new file mode 100644
index 000000000..fe37b2100
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsLabelProviderTests.java
@@ -0,0 +1,44 @@
+package org.eclipse.emf.parsley.tests;
+
+import static org.junit.Assert.assertEquals;
+
+import org.eclipse.emf.ecore.util.FeatureMap.Entry;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryFactory;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.examples.library.Writer;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * @author bettini
+ *
+ */
+@RunWith(SWTBotJunit4ClassRunner.class)
+public class EmfComponentsLabelProviderTests extends
+ EmfComponentsCustomLibraryAbstractTests {
+
+ @Test
+ public void testFeatureMapEntryLabelProvider() {
+ ILabelProvider labelProvider = createLabelProvider();
+
+ Library library = createTestLibraryWithPeople();
+ Entry person = library.getPeople().get(0);
+
+ assertEquals("Writer My Writer", labelProvider.getText(person));
+ }
+
+ protected ILabelProvider createLabelProvider() {
+ return getInjector().getInstance(ILabelProvider.class);
+ }
+
+ protected Library createTestLibraryWithPeople() {
+ Library library = EXTLibraryFactory.eINSTANCE.createLibrary();
+ library.setName("My Library");
+ Writer writer = EXTLibraryFactory.eINSTANCE.createWriter();
+ writer.setName("My Writer");
+ library.getWriters().add(writer);
+ return library;
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsMavenTestsSuite.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsMavenTestsSuite.java
new file mode 100644
index 000000000..d2597630f
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsMavenTestsSuite.java
@@ -0,0 +1,24 @@
+package org.eclipse.emf.parsley.tests;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+/**
+ * @author bettini
+ *
+ */
+@RunWith(Suite.class)
+@Suite.SuiteClasses({
+ EmfComponentsColumnLabelProviderTests.class,
+ EmfComponentsLabelProviderTests.class,
+ EmfComponentsProvidersTests.class,
+ EmfComponentsViewTests.class,
+ EmfComponentsSaveableViewTests.class,
+ EmfComponentsEditorTests.class,
+ EmfComponentsFormTests.class
+ // for the moment wizard tests does not work
+ // when built with maven...
+ // EmfComponentsWizardsTests.class
+})
+public class EmfComponentsMavenTestsSuite {
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsProvidersBasedOnViewTests.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsProvidersBasedOnViewTests.java
new file mode 100644
index 000000000..f9ed3986a
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsProvidersBasedOnViewTests.java
@@ -0,0 +1,277 @@
+package org.eclipse.emf.parsley.tests;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+import org.eclipse.emf.parsley.tests.utils.EmfComponentsTestsUtils;
+
+import java.util.List;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.parsley.binding.FormControlFactory;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.Borrower;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryFactory;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Writer;
+import org.eclipse.emf.parsley.tests.labeling.CustomLibraryFormFeatureLabelProvider;
+import org.eclipse.emf.parsley.ui.provider.FormPropertyDescriptionProvider;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
+import org.eclipse.ui.forms.IFormColors;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+@RunWith(SWTBotJunit4ClassRunner.class)
+public class EmfComponentsProvidersBasedOnViewTests extends EmfComponentsCustomLibraryAbstractTests {
+
+ protected EXTLibraryFactory libFactory = EXTLibraryFactory.eINSTANCE;
+
+ protected EmfComponentsTestsUtils utils = new EmfComponentsTestsUtils();
+
+ @Test
+ public void testLibraryFeatureLabelProviderForLabelWidget() {
+ final FormPropertyDescriptionProvider formPropertyDescriptionProvider = getInjector()
+ .getInstance(CustomLibraryFormFeatureLabelProvider.class);
+ final SWTBotView view = openTestView(LIBRARY_EMF_VIEW);
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ try {
+ // we need a non-null display and parent so we use
+ // those in the view and in the tree
+ FormToolkit formToolkit = createFormToolkit(view);
+ formPropertyDescriptionProvider.setFormToolkit(formToolkit);
+ Label label = formPropertyDescriptionProvider.getLabel(
+ createCompositeParent(view),
+ EXTLibraryPackage.Literals.WRITER__NAME);
+ assertEquals(
+ formToolkit.getColors().getColor(IFormColors.TITLE),
+ label.getBackground());
+ } catch (Exception ex) {
+ fail(ex.getMessage());
+ }
+ }
+ });
+ closeLibraryView(LIBRARY_EMF_VIEW);
+ }
+
+ @Test
+ public void testFormFeatureControlFactoryMethodWithTwoParams() {
+ final FormControlFactory bindingFactory = getInjector().getInstance(
+ FormControlFactory.class);
+ final Writer writer = createTestResourceAndWriter();
+ final SWTBotView view = openTestView(LIBRARY_EMF_VIEW);
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ try {
+ // we need a non-null display and parent so we use
+ // those in the view and in the tree
+ FormToolkit formToolkit = createFormToolkit(view);
+ bindingFactory.init(null, writer,
+ createCompositeParent(view), formToolkit);
+ Control control = bindingFactory
+ .create(EXTLibraryPackage.Literals.WRITER__NAME);
+ assertEquals(
+ formToolkit.getColors().getColor(IFormColors.TITLE),
+ control.getBackground());
+ } catch (Exception ex) {
+ fail(ex.getMessage());
+ }
+ }
+ });
+ closeLibraryView(LIBRARY_EMF_VIEW);
+ }
+
+ @Test
+ public void testFormFeatureControlFactoryMethodWithOneParam() {
+ final FormControlFactory bindingFactory = getInjector().getInstance(
+ FormControlFactory.class);
+ final Writer writer = createTestResourceAndWriter();
+ final SWTBotView view = openTestView(LIBRARY_EMF_VIEW);
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ try {
+ // we need a non-null display and parent so we use
+ // those in the view and in the tree
+ FormToolkit formToolkit = createFormToolkit(view);
+ bindingFactory.init(null, writer,
+ createCompositeParent(view), formToolkit);
+ Control control = bindingFactory
+ .create(EXTLibraryPackage.Literals.WRITER__BOOKS);
+ assertEquals("Test Book 1, Test Book 1",
+ ((Label)control).getText());
+ } catch (Exception ex) {
+ fail(ex.getMessage());
+ }
+ }
+ });
+ closeLibraryView(LIBRARY_EMF_VIEW);
+ }
+
+ @Test
+ public void testFormControlFactoryDefaultProposals() {
+ final FormControlFactory bindingFactory = getInjector().getInstance(
+ FormControlFactory.class);
+ final Writer writer = createTestResourceAndWriter();
+ final SWTBotView view = openTestView(LIBRARY_EMF_VIEW);
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ try {
+ // we need a non-null display and parent so we use
+ // those in the view and in the tree
+ FormToolkit formToolkit = createFormToolkit(view);
+ bindingFactory.init(null, writer,
+ createCompositeParent(view), formToolkit);
+ List<?> proposals = bindingFactory
+ .createProposals(EXTLibraryPackage.Literals.WRITER__BOOKS);
+ assertEquals("Book: Test Book 1, Book: Test Book 1",
+ utils.toStringRep(proposals));
+ } catch (Exception ex) {
+ fail(ex.getMessage());
+ }
+ }
+ });
+ closeLibraryView(LIBRARY_EMF_VIEW);
+ }
+
+ @Test
+ public void testFormControlFactoryCustomProposals() {
+ final FormControlFactory bindingFactory = getInjector().getInstance(
+ FormControlFactory.class);
+ final Writer writer = createTestResourceAndWriter();
+ final SWTBotView view = openTestView(LIBRARY_EMF_VIEW);
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ try {
+ // we need a non-null display and parent so we use
+ // those in the view and in the tree
+ FormToolkit formToolkit = createFormToolkit(view);
+ bindingFactory.init(null, writer.getBooks().get(0),
+ createCompositeParent(view), formToolkit);
+ List<?> proposals = bindingFactory
+ .createProposals(EXTLibraryPackage.Literals.BOOK__AUTHOR);
+ assertEquals("Writer: Fake Writer, Writer: Fake Writer2",
+ utils.toStringRep(proposals));
+ } catch (Exception ex) {
+ fail(ex.getMessage());
+ }
+ }
+ });
+ closeLibraryView(LIBRARY_EMF_VIEW);
+ }
+
+ @Test
+ public void testFormControlFactoryCustomAndDefaultProposals() {
+ final FormControlFactory bindingFactory = getInjector().getInstance(
+ FormControlFactory.class);
+ final Writer writer = createTestResourceAndWriter();
+ final SWTBotView view = openTestView(LIBRARY_EMF_VIEW);
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ try {
+ // we need a non-null display and parent so we use
+ // those in the view and in the tree
+ FormToolkit formToolkit = createFormToolkit(view);
+
+ Borrower borrower = EXTLibraryFactory.eINSTANCE
+ .createBorrower();
+ writer.eResource().getContents().add(borrower);
+
+ bindingFactory.init(null, borrower,
+ createCompositeParent(view), formToolkit);
+ List<?> proposals = bindingFactory
+ .createProposals(EXTLibraryPackage.Literals.BORROWER__BORROWED);
+ assertEquals("Book: Test Book 1, Book: Test Book 1, Book: Fake Book",
+ utils.toStringRep(proposals));
+ } catch (Exception ex) {
+ fail(ex.getMessage());
+ }
+ }
+ });
+ closeLibraryView(LIBRARY_EMF_VIEW);
+ }
+
+ @Test
+ public void testFormControlFactoryCustomProposalsForFeatureDefinedInBaseClass() {
+ final FormControlFactory bindingFactory = getInjector().getInstance(
+ FormControlFactory.class);
+ final Writer writer = createTestResourceAndWriter();
+ final SWTBotView view = openTestView(LIBRARY_EMF_VIEW);
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ try {
+ // we need a non-null display and parent so we use
+ // those in the view and in the tree
+ FormToolkit formToolkit = createFormToolkit(view);
+ bindingFactory.init(null, writer.getBooks().get(0),
+ createCompositeParent(view), formToolkit);
+ List<?> proposals = bindingFactory
+ .createProposals(EXTLibraryPackage.Literals.LENDABLE__BORROWERS);
+ assertEquals("Borrower: Fake Borrower",
+ utils.toStringRep(proposals));
+ } catch (Exception ex) {
+ fail(ex.getMessage());
+ }
+ }
+ });
+ closeLibraryView(LIBRARY_EMF_VIEW);
+ }
+
+ protected Writer createTestResourceAndWriter() {
+ ResourceSet resourceSet = new ResourceSetImpl();
+ Resource resource = resourceSet.createResource(URI
+ .createURI("http:///My.extlibrary"));
+ final Writer writer = EXTLibraryFactory.eINSTANCE.createWriter();
+ writer.setFirstName("Test");
+ writer.setLastName("Writer");
+ createTestBook(resource, writer);
+ createTestBook(resource, writer);
+ resource.getContents().add(writer);
+ return writer;
+ }
+
+ protected void createTestBook(Resource resource, Writer writer) {
+ Book book = EXTLibraryFactory.eINSTANCE.createBook();
+ book.setTitle("Test Book 1");
+ writer.getBooks().add(book);
+ resource.getContents().add(book);
+ }
+
+ protected void assertFeatureNames(Iterable<EStructuralFeature> expected,
+ Iterable<EStructuralFeature> actual) {
+ assertEquals(utils.toStringNameBased(expected),
+ utils.toStringNameBased(actual));
+ }
+
+ protected void assertFeatureNames(String expected,
+ Iterable<EStructuralFeature> actual) {
+ assertEquals(expected, utils.toStringNameBased(actual));
+ }
+
+ protected void assertLabelForFeature(
+ FormPropertyDescriptionProvider formPropertyDescriptionProvider, String expected,
+ EStructuralFeature feature) {
+ String labelText = formPropertyDescriptionProvider.getText(feature);
+ assertEquals(expected, labelText);
+ }
+
+ protected FormToolkit createFormToolkit(final SWTBotView view) {
+ return new FormToolkit(view.getWidget().getDisplay());
+ }
+
+ protected Composite createCompositeParent(final SWTBotView view) {
+ return view.bot().tree().widget.getParent();
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsProvidersTests.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsProvidersTests.java
new file mode 100644
index 000000000..e687d70e0
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsProvidersTests.java
@@ -0,0 +1,197 @@
+package org.eclipse.emf.parsley.tests;
+
+import static org.eclipse.emf.parsley.examples.library.EXTLibraryPackage.Literals.AUDIO_VISUAL_ITEM;
+import static org.eclipse.emf.parsley.examples.library.EXTLibraryPackage.Literals.LENDABLE;
+import static org.eclipse.emf.parsley.examples.library.EXTLibraryPackage.Literals.LIBRARY;
+import static org.eclipse.emf.parsley.examples.library.EXTLibraryPackage.Literals.PERIODICAL;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import org.eclipse.emf.parsley.tests.utils.EmfComponentsTestsUtils;
+
+import java.io.IOException;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.parsley.edit.ui.provider.ViewerContentProvider;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryFactory;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.examples.library.Writer;
+import org.eclipse.emf.parsley.tests.labeling.CustomLibraryFormFeatureLabelProvider;
+import org.eclipse.emf.parsley.tests.providers.CustomLibraryViewerContentProvider;
+import org.eclipse.emf.parsley.tests.providers.LibraryEStructuralFeaturesAsStringsProvider;
+import org.eclipse.emf.parsley.tests.providers.LibraryEStructuralFeaturesProvider;
+import org.eclipse.emf.parsley.tests.providers.OrderedEStructuralFeaturesProvider;
+import org.eclipse.emf.parsley.ui.provider.FeaturesColumnProvider;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+import org.eclipse.emf.parsley.ui.provider.FormPropertyDescriptionProvider;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+@RunWith(SWTBotJunit4ClassRunner.class)
+public class EmfComponentsProvidersTests extends EmfComponentsCustomLibraryAbstractTests {
+
+ protected EXTLibraryFactory libFactory = EXTLibraryFactory.eINSTANCE;
+
+ protected EmfComponentsTestsUtils utils = new EmfComponentsTestsUtils();
+
+ @Test
+ public void testLibraryFeatureLabelProvider() {
+ FormPropertyDescriptionProvider formPropertyDescriptionProvider = getInjector()
+ .getInstance(CustomLibraryFormFeatureLabelProvider.class);
+ assertLabelForFeature(formPropertyDescriptionProvider, "First name",
+ EXTLibraryPackage.Literals.PERSON__FIRST_NAME);
+ assertLabelForFeature(formPropertyDescriptionProvider, "Last name",
+ EXTLibraryPackage.Literals.PERSON__LAST_NAME);
+ }
+
+ protected Writer createTestResourceAndWriter() {
+ ResourceSet resourceSet = new ResourceSetImpl();
+ Resource resource = resourceSet.createResource(URI
+ .createURI("http:///My.extlibrary"));
+ final Writer writer = EXTLibraryFactory.eINSTANCE.createWriter();
+ createTestBook(writer);
+ createTestBook(writer);
+ resource.getContents().add(writer);
+ return writer;
+ }
+
+ protected void createTestBook(Writer writer) {
+ Book book = EXTLibraryFactory.eINSTANCE.createBook();
+ book.setTitle("Test Book 1");
+ writer.getBooks().add(book);
+ }
+
+ @Test
+ public void testEClassFeatureProviderGetAllFeatures() {
+ EClass test = LIBRARY;
+ assertFeatureNames(test.getEAllStructuralFeatures(),
+ getInjector().getInstance(FeaturesProvider.class)
+ .getFeatures(test));
+ }
+
+ @Test
+ public void testEClassFeatureProviderOrdered() {
+ EClass test = LIBRARY;
+ assertFeatureNames(
+ "address, books, borrowers, branches, employees, name, parentBranch, people, stock, writers",
+ getInjector().getInstance(
+ OrderedEStructuralFeaturesProvider.class).getFeatures(
+ test));
+ }
+
+ @Test
+ public void testEClassFeatureProviderPolymorphic() {
+ FeaturesProvider provider = getInjector().getInstance(
+ LibraryEStructuralFeaturesProvider.class);
+ assertFeatureNames("name, address", provider.getFeatures(LIBRARY));
+ assertFeatureNames("firstName, lastName, address",
+ provider.getFeatures(EXTLibraryPackage.Literals.PERSON));
+ assertFeatureNames("firstName, lastName, books",
+ provider.getFeatures(EXTLibraryPackage.Literals.WRITER));
+ }
+
+ @Test
+ public void testEClassFeatureProviderAsStringsPolymorphic() {
+ FeaturesProvider provider = getInjector().getInstance(
+ LibraryEStructuralFeaturesAsStringsProvider.class);
+ assertFeatureNames("name, address", provider.getFeatures(LIBRARY));
+ assertFeatureNames("firstName, lastName, address",
+ provider.getFeatures(EXTLibraryPackage.Literals.PERSON));
+ assertFeatureNames("firstName, lastName, books",
+ provider.getFeatures(EXTLibraryPackage.Literals.WRITER));
+ }
+
+ @Test
+ public void testFeaturesColumnProviderDelegated() {
+ FeaturesProvider provider = getInjector().getInstance(
+ FeaturesColumnProvider.class);
+ // this is actually defined in FeaturesProvider
+ // and we delegate to it if there's no customization
+ assertFeatureNames("copies", provider.getFeatures(LENDABLE));
+ }
+
+ @Test
+ public void testFeaturesColumnProviderAsStringsDelegated() {
+ FeaturesProvider provider = getInjector().getInstance(
+ FeaturesColumnProvider.class);
+ // this is actually defined in FeaturesProvider
+ // and we delegate to it if there's no customization
+ assertFeatureNames("title", provider.getFeatures(PERIODICAL));
+ }
+
+ @Test
+ public void testFeaturesColumnProvider() {
+ FeaturesProvider provider = getInjector().getInstance(
+ FeaturesColumnProvider.class);
+ // this is actually defined in FeaturesColumnProvider
+ assertFeatureNames("damaged", provider.getFeatures(AUDIO_VISUAL_ITEM));
+ }
+
+ @Test
+ public void testFeaturesColumnProviderAsStrings() {
+ FeaturesProvider provider = getInjector().getInstance(
+ FeaturesColumnProvider.class);
+ // this is actually defined in FeaturesColumnProvider
+ assertFeatureNames("reader",
+ provider.getFeatures(EXTLibraryPackage.Literals.BOOK_ON_TAPE));
+ }
+
+ @Test
+ public void testCustomViewerContentProvider() throws IOException {
+ Library library = localLibrary("My2.extlibrary");
+ ViewerContentProvider viewerContentProvider = getInjector()
+ .getInstance(CustomLibraryViewerContentProvider.class);
+ Object[] libraryChildren = viewerContentProvider.getChildren(library);
+ assertLabels(
+ "Book: Without Author; Book: First Author's Book; Book: Empty Book; ",
+ libraryChildren);
+ // the first book has no author, but two borrowers
+ assertLabels("Borrower: First Borrower; Borrower: Second Borrower; ",
+ viewerContentProvider.getChildren(libraryChildren[0]));
+ // the second book has author, and one borrower
+ assertLabels("Writer First Author; Borrower: First Borrower; ",
+ viewerContentProvider.getChildren(libraryChildren[1]));
+ // the third book has neither an author nor s borrower
+ assertFalse(viewerContentProvider.hasChildren(libraryChildren[2]));
+ }
+
+ protected void assertFeatureNames(Iterable<EStructuralFeature> expected,
+ Iterable<EStructuralFeature> actual) {
+ assertEquals(utils.toStringNameBased(expected),
+ utils.toStringNameBased(actual));
+ }
+
+ protected void assertFeatureNames(String expected,
+ Iterable<EStructuralFeature> actual) {
+ assertEquals(expected, utils.toStringNameBased(actual));
+ }
+
+ protected void assertLabelForFeature(
+ FormPropertyDescriptionProvider formPropertyDescriptionProvider, String expected,
+ EStructuralFeature feature) {
+ String labelText = formPropertyDescriptionProvider.getText(feature);
+ assertEquals(expected, labelText);
+ }
+
+ protected FormToolkit createFormToolkit(final SWTBotView view) {
+ return new FormToolkit(view.getWidget().getDisplay());
+ }
+
+ protected Composite createCompositeParent(final SWTBotView view) {
+ return view.bot().tree().widget.getParent();
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsSaveableViewTests.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsSaveableViewTests.java
new file mode 100644
index 000000000..e5d438334
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsSaveableViewTests.java
@@ -0,0 +1,226 @@
+package org.eclipse.emf.parsley.tests;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.eclipse.ui.ISaveablePart;
+import org.eclipse.ui.IViewPart;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * @author bettini
+ *
+ */
+@RunWith(SWTBotJunit4ClassRunner.class)
+public class EmfComponentsSaveableViewTests extends EmfComponentsAbstractTests {
+
+ boolean treeFormViewOpened = false;
+
+ boolean tableFormViewOpened = false;
+
+ boolean tableViewOpened = false;
+
+ boolean treeViewOpened = false;
+
+ @Before
+ public void runBefore() {
+ treeFormViewOpened = false;
+ tableViewOpened = false;
+ treeViewOpened = false;
+ tableFormViewOpened = false;
+ }
+
+ @After
+ public void runAfterEveryTest() throws CoreException {
+ if (treeFormViewOpened)
+ closeLibraryView(TEST_SAVEABLE_TREE_FORM_VIEW);
+ if (tableFormViewOpened)
+ closeLibraryView(TEST_SAVEABLE_TABLE_FORM_VIEW);
+ if (tableViewOpened)
+ closeLibraryView(TEST_SAVEABLE_TABLE_VIEW);
+ if (treeViewOpened)
+ closeLibraryView(TEST_SAVEABLE_TREE_VIEW);
+ super.runAfterEveryTest();
+ }
+
+ @Test
+ public void canAccessEditingActionsOnSaveableResourceTreeFormView()
+ throws Exception {
+ SWTBotTreeItem libraryNode = prepareSaveableViewAndGetLibraryNode();
+ canAccessStandardEditingActions(libraryNode);
+ }
+
+ @Test
+ public void canPerformNewChildActionOnSaveableResourceTreeFormView()
+ throws Exception {
+ SWTBotTreeItem libraryNode = prepareSaveableViewAndGetLibraryNode();
+ createNewChild(libraryNode, BOOK_ON_TAPE);
+ assertDirtyThenSaveAndAssertNotDirty(TEST_SAVEABLE_TREE_FORM_VIEW);
+ }
+
+ @Test
+ public void canPerformDeleteActionOnSaveableResourceTreeFormView()
+ throws Exception {
+ clickOnContextMenu(
+ getWriterNode(prepareSaveableViewAndGetLibraryNode()),
+ ACTION_DELETE);
+ assertDirtyThenSaveAndAssertNotDirty(TEST_SAVEABLE_TREE_FORM_VIEW);
+ }
+
+ @Test
+ public void canPerformUndoDeleteActionOnSaveableResourceTreeFormView()
+ throws Exception {
+ SWTBotTreeItem libraryNode = prepareSaveableViewAndGetLibraryNode();
+ clickOnContextMenu(getWriterNode(libraryNode), ACTION_DELETE);
+ assertSaveableViewIsDirty(true, TEST_SAVEABLE_TREE_FORM_VIEW);
+ undo(ACTION_DELETE);
+ // make sure the writer is back
+ getWriterNode(libraryNode);
+ saveViewAndAssertNotDirty(TEST_SAVEABLE_TREE_FORM_VIEW);
+ }
+
+ @Test
+ public void canPerformDeleteActionOnSaveableTableView() throws Exception {
+ SWTBotTable table = prepareSaveableTableView();
+ table.select(0); // otherwise context menu might not be created
+ clickOnContextMenu(table, ACTION_DELETE);
+ assertDirtyThenSaveAndAssertNotDirty(TEST_SAVEABLE_TABLE_VIEW);
+ }
+
+ @Test
+ public void canPerformNewSiblingActionOnSaveableTableView()
+ throws Exception {
+ SWTBotTable table = prepareSaveableTableView();
+ assertTableItemsSize(table, 2);
+ table.select(0); // otherwise context menu might not be created
+ clickOnContextMenu(table, NEW_SIBLING, "Book");
+ assertTableItemsSize(table, 3);
+ assertDirtyThenSaveAndAssertNotDirty(TEST_SAVEABLE_TABLE_VIEW);
+ }
+
+ @Test
+ public void canPerformDeleteActionOnSaveableTableFormView() throws Exception {
+ SWTBotTable table = prepareSaveableTableFormView();
+ table.select(0); // otherwise context menu might not be created
+ clickOnContextMenu(table, ACTION_DELETE);
+ assertDirtyThenSaveAndAssertNotDirty(TEST_SAVEABLE_TABLE_FORM_VIEW);
+ }
+
+ @Test
+ public void canPerformNewSiblingActionOnSaveableTableFormView()
+ throws Exception {
+ SWTBotTable table = prepareSaveableTableFormView();
+ assertTableItemsSize(table, 2);
+ table.select(0); // otherwise context menu might not be created
+ clickOnContextMenu(table, NEW_SIBLING, "Book");
+ assertTableItemsSize(table, 3);
+ assertDirtyThenSaveAndAssertNotDirty(TEST_SAVEABLE_TABLE_FORM_VIEW);
+ }
+
+ @Test
+ public void canPerformUndoDeleteActionOnSaveableTreeView() throws Exception {
+ SWTBotTreeItem libraryNode = prepareSaveableTreeViewAndGetLibraryNode();
+ clickOnContextMenu(getWriterNode(libraryNode), ACTION_DELETE);
+ assertSaveableViewIsDirty(true, TEST_SAVEABLE_TREE_VIEW);
+ undo(ACTION_DELETE);
+ // make sure the writer is back
+ getWriterNode(libraryNode);
+ saveViewAndAssertNotDirty(TEST_SAVEABLE_TREE_VIEW);
+ }
+
+ protected void createNewChild(SWTBotTreeItem libraryNode, String childType) {
+ clickOnContextMenu(libraryNode, NEW_CHILD, childType);
+ // check that the new item was created
+ libraryNode.expand().getNode(childType);
+ }
+
+ protected void assertDirtyThenSaveAndAssertNotDirty(String viewName) {
+ assertSaveableViewIsDirty(true, viewName);
+ saveViewAndAssertNotDirty(viewName);
+ }
+
+ protected void assertSaveableViewIsDirty(boolean isDirty, String viewName) {
+ ISaveablePart viewAsSaveablePart = getViewAsSaveablePart(viewName);
+ assertEquals(isDirty, viewAsSaveablePart.isDirty());
+ }
+
+ protected ISaveablePart getViewAsSaveablePart(String viewName) {
+ SWTBotView view = getLibraryView(viewName);
+ IViewPart viewPart = view.getViewReference().getView(false);
+ ISaveablePart viewAsSaveablePart = (ISaveablePart) viewPart;
+ return viewAsSaveablePart;
+ }
+
+ protected void saveViewAndAssertNotDirty(final String viewName) {
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ getViewAsSaveablePart(viewName).doSave(
+ new NullProgressMonitor());
+ }
+ });
+ assertSaveableViewIsDirty(false, viewName);
+ }
+
+ protected void assertTableItemsSize(final SWTBotTable table,
+ final int expectedSize) {
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ assertEquals(expectedSize, table.widget.getItems().length);
+ }
+ });
+ }
+
+ protected SWTBotTreeItem prepareSaveableViewAndGetLibraryNode()
+ throws CoreException, InvocationTargetException,
+ InterruptedException, IOException {
+ createProjectAndTestFiles();
+ openTestView(TEST_SAVEABLE_TREE_FORM_VIEW);
+ treeFormViewOpened = true;
+ SWTBotTreeItem libraryNode = getRootOfTreeFromView(
+ TEST_SAVEABLE_TREE_FORM_VIEW).getTreeItem(LIBRARY_LABEL);
+ return libraryNode;
+ }
+
+ protected SWTBotTable prepareSaveableTableView() throws CoreException,
+ InvocationTargetException, InterruptedException, IOException {
+ createProjectAndTestFiles();
+ openTestView(TEST_SAVEABLE_TABLE_VIEW);
+ SWTBotTable table = bot.table();
+ tableViewOpened = true;
+ return table;
+ }
+
+ protected SWTBotTable prepareSaveableTableFormView() throws CoreException,
+ InvocationTargetException, InterruptedException, IOException {
+ createProjectAndTestFiles();
+ openTestView(TEST_SAVEABLE_TABLE_FORM_VIEW);
+ SWTBotTable table = bot.table();
+ tableFormViewOpened = true;
+ return table;
+ }
+
+
+ protected SWTBotTreeItem prepareSaveableTreeViewAndGetLibraryNode()
+ throws CoreException, InvocationTargetException,
+ InterruptedException, IOException {
+ createProjectAndTestFiles();
+ openTestView(TEST_SAVEABLE_TREE_VIEW);
+ treeViewOpened = true;
+ SWTBotTreeItem libraryNode = getRootOfTreeFromView(
+ TEST_SAVEABLE_TREE_VIEW).getTreeItem(LIBRARY_LABEL);
+ return libraryNode;
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsTestsActivator.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsTestsActivator.java
new file mode 100644
index 000000000..7aaf44a2c
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsTestsActivator.java
@@ -0,0 +1,138 @@
+package org.eclipse.emf.parsley.tests;
+
+import static com.google.inject.Guice.createInjector;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.parsley.EmfComponentsExtensionFactory;
+import org.eclipse.emf.parsley.tests.factories.CustomContentProviderLibraryExecutableExtensionFactory;
+import org.eclipse.emf.parsley.tests.factories.CustomContentProviderLibraryModule;
+import org.eclipse.emf.parsley.tests.factories.CustomLibraryExecutableExtensionFactory;
+import org.eclipse.emf.parsley.tests.factories.CustomLibraryModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+import com.google.inject.Injector;
+
+public class EmfComponentsTestsActivator extends AbstractUIPlugin {
+
+ // The shared instance
+ private static EmfComponentsTestsActivator plugin;
+
+ public static final String EMF_TREE_EDITOR = "org.eclipse.emf.parsley.editors.treeEditor";
+
+ public static final String EMF_TREE_EDITOR_NO_MOUSE_ID = "org.eclipse.emf.parsley.noMouseEvents";
+
+ public static final String EMF_TREE_EDITOR_CUSTOM_LABEL = "org.eclipse.emf.parsley.customLabel";
+
+ public static final String EMF_TREE_EDITOR_FOR_STATEMACHINE = "org.eclipse.emf.parsley.statemachine";
+
+ public static final String EMF_EDITOR_FOR_LIBRARY = "org.eclipse.emf.parsley.customLibrary";
+
+ /**
+ * This will only simulate generated code by the wizard to make sure a
+ * singleton injector is used.
+ */
+ private Map<String, Injector> injectorsMap = new HashMap<String, Injector>();
+
+ public EmfComponentsTestsActivator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext
+ * )
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static EmfComponentsTestsActivator getDefault() {
+ return plugin;
+ }
+
+ public Injector getInjector(
+ Class<? extends EmfComponentsExtensionFactory> cName) {
+ Injector injector = injectorsMap.get(cName.getCanonicalName());
+ if (injector == null) {
+ if (CustomLibraryExecutableExtensionFactory.class.equals(cName)) {
+ injector = createInjector(new CustomLibraryModule(this));
+ injectorsMap.put(cName.getCanonicalName(), injector);
+ } else if (CustomContentProviderLibraryExecutableExtensionFactory.class
+ .equals(cName)) {
+ injector = createInjector(new CustomContentProviderLibraryModule(
+ this));
+ injectorsMap.put(cName.getCanonicalName(), injector);
+ }
+ }
+
+ if (injector != null)
+ return injector;
+
+ throw new IllegalArgumentException(cName.getCanonicalName());
+ }
+
+ public static String localFileContents(String filename) throws IOException {
+ File f = localFile(filename);
+ if (f.exists()) {
+ return readFileAsString(f);
+ }
+ return f.getAbsolutePath();
+ }
+
+ protected static File localFile(String filename) throws IOException {
+ IPath path = new Path("models/" + filename);
+ URL url = FileLocator.find(getDefault().getBundle(), path, null);
+ url = FileLocator.resolve(url);
+ url.toExternalForm();
+ File f = new File(url.getFile());
+ return f;
+ }
+
+ private static String readFileAsString(File file) throws IOException {
+ byte[] buffer = new byte[(int) file.length()];
+ BufferedInputStream f = null;
+ try {
+ f = new BufferedInputStream(new FileInputStream(file));
+ f.read(buffer);
+ } finally {
+ if (f != null)
+ try {
+ f.close();
+ } catch (IOException ignored) {
+ }
+ }
+ return new String(buffer);
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsTestsSuite.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsTestsSuite.java
new file mode 100644
index 000000000..64a7d8a4b
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsTestsSuite.java
@@ -0,0 +1,28 @@
+package org.eclipse.emf.parsley.tests;
+
+import org.eclipse.emf.parsley.tests.EmfComponentsDslWizardsTests;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+/**
+ * @author bettini
+ *
+ */
+@RunWith(Suite.class)
+@Suite.SuiteClasses({
+ EmfComponentsUtilTests.class,
+ EmfComponentsColumnLabelProviderTests.class,
+ EmfComponentsLabelProviderTests.class,
+ EmfComponentsProvidersTests.class,
+ EmfComponentsProvidersBasedOnViewTests.class,
+ EmfComponentsViewTests.class,
+ EmfComponentsSaveableViewTests.class,
+ EmfComponentsEditorTests.class,
+ EmfComponentsFormTests.class,
+ EmfComponentsWizardsTests.class,
+ EmfComponentsExamplesWizardsTests.class,
+ EmfComponentsDslWizardsTests.class
+})
+public class EmfComponentsTestsSuite {
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsUtilTests.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsUtilTests.java
new file mode 100644
index 000000000..5539f0db5
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsUtilTests.java
@@ -0,0 +1,40 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryFactory;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.util.EmfComponentsUtil;
+import org.junit.Test;
+
+import com.google.common.collect.Iterables;
+
+/**
+ * @author bettini
+ *
+ */
+public class EmfComponentsUtilTests {
+ @Test
+ public void testEnsureCollection() {
+ assertNotNull(EmfComponentsUtil.ensureCollection(null));
+ assertEquals(1, EmfComponentsUtil.ensureCollection(new Integer(0))
+ .size());
+
+ assertEquals(2, EmfComponentsUtil.ensureCollection(createIterable())
+ .size());
+ }
+
+ protected Iterable<EObject> createIterable() {
+ Library library = EXTLibraryFactory.eINSTANCE.createLibrary();
+ library.getBooks().add(EXTLibraryFactory.eINSTANCE.createBook());
+ library.getWriters().add(EXTLibraryFactory.eINSTANCE.createWriter());
+ Iterable<EObject> iterable = Iterables.<EObject> concat(
+ library.getBooks(), library.getWriters());
+ return iterable;
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsViewTests.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsViewTests.java
new file mode 100644
index 000000000..3696c2148
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsViewTests.java
@@ -0,0 +1,107 @@
+package org.eclipse.emf.parsley.tests;
+
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * @author bettini
+ *
+ */
+@RunWith(SWTBotJunit4ClassRunner.class)
+public class EmfComponentsViewTests extends EmfComponentsAbstractTests {
+
+ @Test
+ public void canOpenEmfTestView() throws Exception {
+ openTestView(LIBRARY_EMF_VIEW);
+ // bot.sleep(2000);
+ closeLibraryView(LIBRARY_EMF_VIEW);
+ }
+
+ @Test
+ public void emfTestViewHasTree() throws Exception {
+ SWTBotView view = openTestView(LIBRARY_EMF_VIEW);
+ getWriterNode(getLibraryNode(view.bot().tree()
+ .getTreeItem(HARDCODED_LIBRARY_PLATFORM_URI)));
+ // bot.sleep(2000);
+ view.close();
+ }
+
+ @Test
+ public void emfTestViewHasTreeWithCustomLabels() throws Exception {
+ SWTBotView view = openTestView(LIBRARY_EMF_VIEW_CUSTOM_LABEL);
+ accessTreeWithCustomLabels(view.bot().tree()
+ .getTreeItem(HARDCODED_LIBRARY_PLATFORM_URI));
+ // bot.sleep(2000);
+ view.close();
+ }
+
+ // FIXME this does not work anymore since we do not react on
+ // selection on files
+ // @Test
+ public void emfViewShowsSelectedFile() throws Exception {
+ SWTBotView view = openTestView(LIBRARY_EMF_VIEW);
+ createProjectAndTestFiles();
+ getFileItemFromTestProject(MY_EXTLIBRARY).select();
+ // bot.sleep(2000);
+ getWriterNode(getLibraryNode(getRootOfTreeFromView(LIBRARY_EMF_VIEW)
+ .getTreeItem(MY_EXT_LIBRARY_PLATFORM_URI)));
+ getFileItemFromTestProject(MY_STATEMACHINE).select();
+ // bot.sleep(2000);
+ SWTBotTreeItem root = getRootOfTreeFromView(LIBRARY_EMF_VIEW)
+ .getTreeItem(MY_STATEMACHINE_PLATFORM_URI);
+ accessStateMachineNodes(root);
+ view.close();
+ }
+
+ // FIXME this does not work anymore since we do not react on
+ // selection on files
+ // @Test
+ public void testCustomBookImage() throws Exception {
+ SWTBotView view = openTestView(LIBRARY_EMF_VIEW);
+ createProjectAndTestFiles();
+ getFileItemFromTestProject(MY_EXTLIBRARY).select();
+ SWTBotTreeItem item = getLibraryBookNode(getRootOfTreeFromView(
+ LIBRARY_EMF_VIEW).getTreeItem(MY_EXT_LIBRARY_PLATFORM_URI));
+
+ // if org.eclipse.swt.internal.gtk.cairoGraphics is not false
+ // then the test for equality of image will fail, since the image
+ // from the TreeItem will be preprocessed and then it will
+ // be different from the expected one
+ // then set the vm arg
+ // -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false
+ // in the launch.
+ System.err.println(System
+ .getProperty("org.eclipse.swt.internal.gtk.cairoGraphics"));
+
+ assertTreeItemImage(item,
+ getImageDescriptorFromLibraryEdit("custom_book.png"));
+ view.close();
+ }
+
+ @Test
+ public void testLibraryTestTableView() throws Exception {
+ SWTBotView view = openTestView(LIBRARY_TEST_EMF_TABLE_VIEW);
+ getTableHeader(ADDRESS_LABEL);
+ // the writers table is the third one
+ getTableHeader(2, CUSTOM_FIRSTNAME_LABEL);
+ view.close();
+ }
+
+ @Test
+ public void testOnSelectionLibraryBooksTableView() throws Exception {
+ final SWTBotView view = openTestView(LIBRARY_BOOKS_TABLE_VIEW);
+ SWTBotTreeItem libraryNode = getLibraryNode(getRootOfEditorTree(
+ EMF_TREE_EDITOR, MY_EXTLIBRARY, MY_EXT_LIBRARY_PLATFORM_URI));
+ libraryNode.select();
+ // the table should show the books
+ getTableHeader(AUTHOR_LABEL);
+
+ getWriterNode(libraryNode).select();
+ // the table won't show anything
+
+ view.close();
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsWizardsTests.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsWizardsTests.java
new file mode 100644
index 000000000..e69cb8441
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/EmfComponentsWizardsTests.java
@@ -0,0 +1,48 @@
+package org.eclipse.emf.parsley.tests;
+
+
+import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+@RunWith(SWTBotJunit4ClassRunner.class)
+public class EmfComponentsWizardsTests extends EmfComponentsAbstractTests {
+
+ @Test
+ public void canCreateProjectWithWizard() throws Exception {
+ createProjectInWorkspace(EMF_PARSLEY_CATEGORY,
+ NEW_EMF_COMPONENTS_PROJECT, EMF_COMPONENTS_PROJECT);
+ // bot.sleep(300000);
+ assertNoErrorsInProjectAfterAutoBuild();
+ }
+
+ @Test
+ public void canCreateProjectWithWizardWithNoSelectedView() throws Exception {
+ createProjectInWorkspaceWithView(EMF_PARSLEY_CATEGORY,
+ NEW_EMF_COMPONENTS_PROJECT, EMF_COMPONENTS_PROJECT, null);
+ assertNoErrorsInProjectAfterAutoBuild();
+ }
+
+ @Test
+ public void canCreateProjectWithWizardWithSelectedTreeFormView()
+ throws Exception {
+ createProjectInWorkspaceWithView(EMF_PARSLEY_CATEGORY,
+ NEW_EMF_COMPONENTS_PROJECT, EMF_COMPONENTS_PROJECT,
+ "Create a TreeFormView");
+ assertNoErrorsInProjectAfterAutoBuild();
+ }
+
+ @Test
+ public void canCreateProjectWithWizardWithSelectedTableView()
+ throws Exception {
+ createProjectInWorkspaceWithView(EMF_PARSLEY_CATEGORY,
+ NEW_EMF_COMPONENTS_PROJECT, EMF_COMPONENTS_PROJECT,
+ "Create a TableView");
+ assertNoErrorsInProjectAfterAutoBuild();
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/binding/CustomLibraryFormControlFactory.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/binding/CustomLibraryFormControlFactory.java
new file mode 100644
index 000000000..1ed1f798a
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/binding/CustomLibraryFormControlFactory.java
@@ -0,0 +1,71 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.binding;
+
+import static org.eclipse.xtext.xbase.lib.IterableExtensions.join;
+import static org.eclipse.xtext.xbase.lib.IterableExtensions.map;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.parsley.binding.FormControlFactory;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryFactory;
+import org.eclipse.emf.parsley.examples.library.Writer;
+import org.eclipse.jface.databinding.swt.SWTObservables;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.IFormColors;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+public class CustomLibraryFormControlFactory extends FormControlFactory {
+
+// public ControlObservablePair control_Writer_name(EStructuralFeature feature) {
+// Text t = getToolkit().createText(getParent(), "");
+// t.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TREE_BORDER);
+// t.setBackground(getToolkit().getColors().getColor(IFormColors.TITLE));
+// return new ControlObservablePair(t, SWTObservables.observeText(t,
+// SWT.Modify));
+// }
+
+ public Control control_Writer_name(DataBindingContext dbc,
+ IObservableValue featureObservable) {
+ Text text = getToolkit().createText(getParent(), "");
+ text.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TREE_BORDER);
+ text.setBackground(getToolkit().getColors().getColor(IFormColors.TITLE));
+ dbc.bindValue(SWTObservables.observeText(text, SWT.Modify),
+ featureObservable);
+ return text;
+ }
+
+ public Control control_Writer_books(Writer writer) {
+ return getToolkit().createLabel(getParent(),
+ join(map(writer.getBooks(), new Function1<Book, String>() {
+ public String apply(Book book) {
+ return book.getTitle();
+ }
+ }), ", "));
+ }
+
+ public List<?> proposals_Book_author(Book book) {
+ List<Object> proposals = new LinkedList<Object>();
+ Writer writer = EXTLibraryFactory.eINSTANCE.createWriter();
+ writer.setFirstName("Fake");
+ writer.setLastName("Writer");
+ proposals.add(writer);
+ writer = EXTLibraryFactory.eINSTANCE.createWriter();
+ writer.setFirstName("Fake");
+ writer.setLastName("Writer2");
+ proposals.add(writer);
+ return proposals;
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/binding/CustomLibraryProposalCreator.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/binding/CustomLibraryProposalCreator.java
new file mode 100644
index 000000000..4f322b8a1
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/binding/CustomLibraryProposalCreator.java
@@ -0,0 +1,57 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.binding;
+
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.binding.ProposalCreator;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.Borrower;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryFactory;
+import org.eclipse.emf.parsley.examples.library.Writer;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+public class CustomLibraryProposalCreator extends ProposalCreator {
+
+ public List<? extends Object> proposals_Book_author(Book book) {
+ List<Object> proposals = new LinkedList<Object>();
+ Writer writer = EXTLibraryFactory.eINSTANCE.createWriter();
+ writer.setFirstName("Fake");
+ writer.setLastName("Writer");
+ proposals.add(writer);
+ writer = EXTLibraryFactory.eINSTANCE.createWriter();
+ writer.setFirstName("Fake");
+ writer.setLastName("Writer2");
+ proposals.add(writer);
+ return proposals;
+ }
+
+ public List<?> proposals_Borrower_borrowed(Borrower b,
+ EStructuralFeature feature) {
+ List<Object> proposals = defaultProposals(feature);
+
+ Book fakeBook = EXTLibraryFactory.eINSTANCE.createBook();
+ fakeBook.setTitle("Fake Book");
+ proposals.add(fakeBook);
+
+ return proposals;
+ }
+
+ public List<?> proposals_Book_borrowers(Book b,
+ EStructuralFeature feature) {
+ List<Object> proposals = defaultProposals(feature);
+
+ Borrower fakeBorrower = EXTLibraryFactory.eINSTANCE.createBorrower();
+ fakeBorrower.setFirstName("Fake Borrower");
+ proposals.add(fakeBorrower);
+
+ return proposals;
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/editors/TestEditor.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/editors/TestEditor.java
new file mode 100644
index 000000000..534617952
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/editors/TestEditor.java
@@ -0,0 +1,20 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.editors;
+
+import org.eclipse.emf.parsley.editors.EmfTreeEditor;
+
+/**
+ * @author bettini
+ *
+ */
+public class TestEditor extends EmfTreeEditor {
+
+ /**
+ *
+ */
+ public TestEditor() {
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomContentProviderLibraryExecutableExtensionFactory.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomContentProviderLibraryExecutableExtensionFactory.java
new file mode 100644
index 000000000..fa971af82
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomContentProviderLibraryExecutableExtensionFactory.java
@@ -0,0 +1,25 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.factories;
+
+import org.eclipse.emf.parsley.tests.EmfComponentsTestsActivator;
+
+import com.google.inject.Injector;
+
+/**
+ * Uses a custom label provider
+ *
+ * @author bettini
+ *
+ */
+public class CustomContentProviderLibraryExecutableExtensionFactory extends
+ EmfComponentsTestsExecutableExtensionFactory {
+
+ @Override
+ public Injector getInjector() {
+ return EmfComponentsTestsActivator.getDefault().getInjector(
+ this.getClass());
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomContentProviderLibraryModule.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomContentProviderLibraryModule.java
new file mode 100644
index 000000000..2a0f357b5
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomContentProviderLibraryModule.java
@@ -0,0 +1,18 @@
+package org.eclipse.emf.parsley.tests.factories;
+
+
+import org.eclipse.emf.parsley.tests.providers.CustomLibraryViewerContentProvider;
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+public final class CustomContentProviderLibraryModule extends
+ CustomLibraryModule {
+ public CustomContentProviderLibraryModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends IContentProvider> bindIContentProvider() {
+ return CustomLibraryViewerContentProvider.class;
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomLabelExecutableExtensionFactory.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomLabelExecutableExtensionFactory.java
new file mode 100644
index 000000000..ccc6948a6
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomLabelExecutableExtensionFactory.java
@@ -0,0 +1,52 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.factories;
+
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.tests.EmfComponentsTestsActivator;
+import org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+
+import com.google.inject.Inject;
+
+/**
+ * Uses a custom label provider
+ *
+ * @author bettini
+ *
+ */
+public class CustomLabelExecutableExtensionFactory extends
+ EmfComponentsTestsExecutableExtensionFactory {
+
+ public static class CustomLabelProvider extends ViewerLabelProvider {
+ @Inject
+ public CustomLabelProvider(AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+
+ @Override
+ public String getText(Object element) {
+ if (element instanceof XMLResource) {
+ return super.getText(element);
+ }
+ return "TEST " + super.getText(element) + " ENDTEST";
+ }
+ }
+
+ @Override
+ protected EmfComponentsGuiceModule getModule() {
+ return new EmfComponentsGuiceModule(EmfComponentsTestsActivator.getDefault()) {
+
+ @Override
+ public Class<? extends ILabelProvider> bindILabelProvider() {
+ return CustomLabelProvider.class;
+ }
+
+ };
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomLibraryExecutableExtensionFactory.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomLibraryExecutableExtensionFactory.java
new file mode 100644
index 000000000..211fd3975
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomLibraryExecutableExtensionFactory.java
@@ -0,0 +1,25 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.factories;
+
+import org.eclipse.emf.parsley.tests.EmfComponentsTestsActivator;
+
+import com.google.inject.Injector;
+
+/**
+ * Uses a custom label provider
+ *
+ * @author bettini
+ *
+ */
+public class CustomLibraryExecutableExtensionFactory extends
+ EmfComponentsTestsExecutableExtensionFactory {
+
+ @Override
+ public Injector getInjector() {
+ return EmfComponentsTestsActivator.getDefault().getInjector(
+ this.getClass());
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomLibraryModule.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomLibraryModule.java
new file mode 100644
index 000000000..d2ca37bf5
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/CustomLibraryModule.java
@@ -0,0 +1,74 @@
+package org.eclipse.emf.parsley.tests.factories;
+
+
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.binding.FormControlFactory;
+import org.eclipse.emf.parsley.binding.ProposalCreator;
+import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+import org.eclipse.emf.parsley.tests.binding.CustomLibraryFormControlFactory;
+import org.eclipse.emf.parsley.tests.binding.CustomLibraryProposalCreator;
+import org.eclipse.emf.parsley.tests.labeling.CustomLibraryFeatureLabelProvider;
+import org.eclipse.emf.parsley.tests.labeling.CustomLibraryFormFeatureLabelProvider;
+import org.eclipse.emf.parsley.tests.labeling.CustomLibraryLabelProvider;
+import org.eclipse.emf.parsley.tests.labeling.CustomLibraryTableColumnLabelProvider;
+import org.eclipse.emf.parsley.tests.providers.TestFeaturesColumnProvider;
+import org.eclipse.emf.parsley.tests.providers.TestFeaturesProvider;
+import org.eclipse.emf.parsley.tests.resource.TestEmptyLibraryResourceInitializer;
+import org.eclipse.emf.parsley.ui.provider.FeaturesColumnProvider;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+import org.eclipse.emf.parsley.ui.provider.FormPropertyDescriptionProvider;
+import org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider;
+import org.eclipse.emf.parsley.ui.provider.TableColumnLabelProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+public class CustomLibraryModule extends EmfComponentsGuiceModule {
+ public CustomLibraryModule(AbstractUIPlugin plugin) {
+ super(plugin);
+ }
+
+ @Override
+ public Class<? extends ILabelProvider> bindILabelProvider() {
+ return CustomLibraryLabelProvider.class;
+ }
+
+ @Override
+ public Class<? extends PropertyDescriptionProvider> bindPropertyDescriptionProvider() {
+ return CustomLibraryFeatureLabelProvider.class;
+ }
+
+ @Override
+ public Class<? extends FormPropertyDescriptionProvider> bindFormPropertyDescriptionProvider() {
+ return CustomLibraryFormFeatureLabelProvider.class;
+ }
+
+ @Override
+ public Class<? extends FormControlFactory> bindFormControlFactory() {
+ return CustomLibraryFormControlFactory.class;
+ }
+
+ @Override
+ public Class<? extends ProposalCreator> bindProposalCreator() {
+ return CustomLibraryProposalCreator.class;
+ }
+
+ @Override
+ public Class<? extends TableColumnLabelProvider> bindTableColumnLabelProvider() {
+ return CustomLibraryTableColumnLabelProvider.class;
+ }
+
+ @Override
+ public Class<? extends EmptyResourceInitializer> bindEmptyResourceInitializer() {
+ return TestEmptyLibraryResourceInitializer.class;
+ }
+
+ @Override
+ public Class<? extends FeaturesProvider> bindFeaturesProvider() {
+ return TestFeaturesProvider.class;
+ }
+
+ @Override
+ public Class<? extends FeaturesColumnProvider> bindFeaturesColumnProvider() {
+ return TestFeaturesColumnProvider.class;
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/EmfComponentsTestsExecutableExtensionFactory.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/EmfComponentsTestsExecutableExtensionFactory.java
new file mode 100644
index 000000000..cd16d8e19
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/EmfComponentsTestsExecutableExtensionFactory.java
@@ -0,0 +1,37 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.factories;
+
+
+import org.eclipse.emf.parsley.EmfComponentsExtensionFactory;
+import org.eclipse.emf.parsley.tests.EmfComponentsTestsActivator;
+import org.osgi.framework.Bundle;
+
+import com.google.inject.Injector;
+
+/**
+ * Uses a custom label provider
+ *
+ * @author bettini
+ *
+ */
+public class EmfComponentsTestsExecutableExtensionFactory extends
+ EmfComponentsExtensionFactory {
+
+ /**
+ * We override it since we use guice to load a class from this very plugin.
+ *
+ * @see org.eclipse.emf.parsley.EmfComponentsExtensionFactory#getBundle()
+ */
+ @Override
+ protected Bundle getBundle() {
+ return EmfComponentsTestsActivator.getDefault().getBundle();
+ }
+
+ @Override
+ public Injector getInjector() {
+ return super.getInjector();
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/NoMouseEventExecutableExtensionFactory.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/NoMouseEventExecutableExtensionFactory.java
new file mode 100644
index 000000000..ad6eb61a7
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/factories/NoMouseEventExecutableExtensionFactory.java
@@ -0,0 +1,35 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.factories;
+
+import org.eclipse.emf.parsley.EmfComponentsGuiceModule;
+import org.eclipse.emf.parsley.listeners.ViewerMouseAdapter;
+import org.eclipse.emf.parsley.listeners.ViewerNoOpMouseAdapter;
+import org.eclipse.emf.parsley.tests.EmfComponentsTestsActivator;
+
+
+
+/**
+ * Uses a mouse adapter that does not react to mouse events.
+ *
+ * @author bettini
+ *
+ */
+public class NoMouseEventExecutableExtensionFactory extends
+ EmfComponentsTestsExecutableExtensionFactory {
+
+ @Override
+ protected EmfComponentsGuiceModule getModule() {
+ return new EmfComponentsGuiceModule(
+ EmfComponentsTestsActivator.getDefault()) {
+
+ @Override
+ public Class<? extends ViewerMouseAdapter> bindViewerMouseAdapter() {
+ return ViewerNoOpMouseAdapter.class;
+ }
+
+ };
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/labeling/CustomLibraryFeatureLabelProvider.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/labeling/CustomLibraryFeatureLabelProvider.java
new file mode 100644
index 000000000..5aab510ad
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/labeling/CustomLibraryFeatureLabelProvider.java
@@ -0,0 +1,24 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.labeling;
+
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.ui.provider.PropertyDescriptionProvider;
+
+/**
+ * @author bettini
+ *
+ */
+public class CustomLibraryFeatureLabelProvider extends PropertyDescriptionProvider {
+
+ public String text_Person_firstName(EStructuralFeature feature) {
+ return "First name";
+ }
+
+ public String text_Person_lastName(EStructuralFeature feature) {
+ return "Cognome";
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/labeling/CustomLibraryFormFeatureLabelProvider.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/labeling/CustomLibraryFormFeatureLabelProvider.java
new file mode 100644
index 000000000..a4f8270d5
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/labeling/CustomLibraryFormFeatureLabelProvider.java
@@ -0,0 +1,37 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.labeling;
+
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.ui.provider.FormPropertyDescriptionProvider;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.forms.IFormColors;
+
+/**
+ * Note that we will bind also a {@link CustomLibraryFeatureLabelProvider} so we
+ * will use automatically also its customizations.
+ *
+ * @author bettini
+ *
+ */
+public class CustomLibraryFormFeatureLabelProvider extends
+ FormPropertyDescriptionProvider {
+
+ /**
+ * This will have the precedence over the one in
+ * {@link CustomLibraryFeatureLabelProvider}
+ */
+ public String text_Person_lastName(EStructuralFeature feature) {
+ return "Last name";
+ }
+
+ public Label label_Writer_name(Composite parent, EStructuralFeature feature) {
+ Label label = defaultLabel(parent, feature);
+ label.setBackground(getFormToolkit().getColors().getColor(
+ IFormColors.TITLE));
+ return label;
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/labeling/CustomLibraryLabelProvider.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/labeling/CustomLibraryLabelProvider.java
new file mode 100644
index 000000000..d5797ae84
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/labeling/CustomLibraryLabelProvider.java
@@ -0,0 +1,37 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.labeling;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.Borrower;
+import org.eclipse.emf.parsley.ui.provider.ViewerLabelProvider;
+
+import com.google.inject.Inject;
+
+
+
+/**
+ * @author bettini
+ *
+ */
+public class CustomLibraryLabelProvider extends ViewerLabelProvider {
+
+ @Inject
+ public CustomLibraryLabelProvider(AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+
+ public String text(Book book) {
+ return "Book: " + book.getTitle();
+ }
+
+ public String image(Book book) {
+ return "book2.png";
+ }
+
+ public String text(Borrower b) {
+ return "Borrower: " + b.getFirstName();
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/labeling/CustomLibraryTableColumnLabelProvider.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/labeling/CustomLibraryTableColumnLabelProvider.java
new file mode 100644
index 000000000..2bc5b647f
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/labeling/CustomLibraryTableColumnLabelProvider.java
@@ -0,0 +1,18 @@
+package org.eclipse.emf.parsley.tests.labeling;
+
+import org.eclipse.emf.parsley.examples.library.Writer;
+import org.eclipse.emf.parsley.ui.provider.TableColumnLabelProvider;
+
+
+public class CustomLibraryTableColumnLabelProvider extends
+ TableColumnLabelProvider {
+
+ public String text_Writer_name(Object element) {
+ if (element instanceof Writer) {
+ Writer writer = (Writer) element;
+ return "Writer " + writer.getName();
+ }
+ return null;
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/CustomLibraryViewerContentProvider.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/CustomLibraryViewerContentProvider.java
new file mode 100644
index 000000000..f1003f8e7
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/CustomLibraryViewerContentProvider.java
@@ -0,0 +1,43 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.providers;
+
+
+import java.util.ArrayList;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.parsley.edit.ui.provider.ViewerContentProvider;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.examples.library.Writer;
+
+import com.google.inject.Inject;
+
+/**
+ * A custom content provider for Library
+ *
+ * @author Lorenzo Bettini
+ *
+ */
+public class CustomLibraryViewerContentProvider extends ViewerContentProvider {
+
+ @Inject
+ public CustomLibraryViewerContentProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ public Object children(Library library) {
+ return library.getBooks();
+ }
+
+ public Object children(Book book) {
+ ArrayList<Object> children = new ArrayList<Object>();
+ Writer author = book.getAuthor();
+ if (author != null) {
+ children.add(author);
+ }
+ children.addAll(book.getBorrowers());
+ return children;
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/LibraryEStructuralFeaturesAsStringsProvider.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/LibraryEStructuralFeaturesAsStringsProvider.java
new file mode 100644
index 000000000..c76f7880a
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/LibraryEStructuralFeaturesAsStringsProvider.java
@@ -0,0 +1,35 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.providers;
+
+import static org.eclipse.emf.parsley.examples.library.EXTLibraryPackage.Literals.*;
+
+import org.eclipse.emf.parsley.ui.provider.EClassToEStructuralFeatureAsStringsMap;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+
+/**
+ * @author bettini
+ *
+ */
+public class LibraryEStructuralFeaturesAsStringsProvider extends
+ FeaturesProvider {
+
+ @Override
+ protected void buildMap(EClassToEStructuralFeatureMap map) {
+ super.buildMap(map);
+ map.mapTo(LIBRARY, LIBRARY__NAME, ADDRESSABLE__ADDRESS);
+ }
+
+ @Override
+ protected void buildStringMap(
+ EClassToEStructuralFeatureAsStringsMap stringMap) {
+ super.buildStringMap(stringMap);
+ stringMap.mapTo(PERSON.getInstanceClassName(), "firstName", "lastName",
+ "address");
+ stringMap.mapTo(WRITER.getInstanceClassName(), "firstName", "lastName",
+ "books");
+
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/LibraryEStructuralFeaturesProvider.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/LibraryEStructuralFeaturesProvider.java
new file mode 100644
index 000000000..5dd6ec97e
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/LibraryEStructuralFeaturesProvider.java
@@ -0,0 +1,30 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.providers;
+
+import static org.eclipse.emf.parsley.examples.library.EXTLibraryPackage.Literals.*;
+
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+
+/**
+ * @author bettini
+ *
+ */
+public class LibraryEStructuralFeaturesProvider extends
+ FeaturesProvider {
+
+ @Override
+ protected void buildMap(EClassToEStructuralFeatureMap map) {
+ super.buildMap(map);
+ map.mapTo(LIBRARY,
+ LIBRARY__NAME, ADDRESSABLE__ADDRESS);
+ map.mapTo(PERSON,
+ PERSON__FIRST_NAME, PERSON__LAST_NAME,
+ ADDRESSABLE__ADDRESS);
+ map.mapTo(WRITER,
+ PERSON__FIRST_NAME, PERSON__LAST_NAME,
+ WRITER__BOOKS);
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/OrderedEStructuralFeaturesProvider.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/OrderedEStructuralFeaturesProvider.java
new file mode 100644
index 000000000..db91e5368
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/OrderedEStructuralFeaturesProvider.java
@@ -0,0 +1,33 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.providers;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+import org.eclipse.emf.parsley.util.EStructuralFeatureNameComparator;
+
+import com.google.inject.Inject;
+
+
+/**
+ * @author bettini
+ *
+ */
+public class OrderedEStructuralFeaturesProvider extends FeaturesProvider {
+
+ @Inject
+ EStructuralFeatureNameComparator comparator;
+
+ @Override
+ public List<EStructuralFeature> getFeatures(EClass eClass) {
+ List<EStructuralFeature> features = super.getFeatures(eClass);
+ Collections.sort(features, new EStructuralFeatureNameComparator());
+ return features;
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/TestFeaturesColumnProvider.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/TestFeaturesColumnProvider.java
new file mode 100644
index 000000000..619ca8e19
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/TestFeaturesColumnProvider.java
@@ -0,0 +1,32 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.providers;
+
+import static org.eclipse.emf.parsley.examples.library.EXTLibraryPackage.Literals.AUDIO_VISUAL_ITEM;
+import static org.eclipse.emf.parsley.examples.library.EXTLibraryPackage.Literals.AUDIO_VISUAL_ITEM__DAMAGED;
+
+import org.eclipse.emf.parsley.examples.library.BookOnTape;
+import org.eclipse.emf.parsley.ui.provider.EClassToEStructuralFeatureAsStringsMap;
+import org.eclipse.emf.parsley.ui.provider.FeaturesColumnProvider;
+
+
+/**
+ * @author bettini
+ *
+ */
+public class TestFeaturesColumnProvider extends FeaturesColumnProvider {
+
+ @Override
+ protected void buildMap(EClassToEStructuralFeatureMap map) {
+ super.buildMap(map);
+ map.mapTo(AUDIO_VISUAL_ITEM, AUDIO_VISUAL_ITEM__DAMAGED);
+ }
+
+ @Override
+ protected void buildStringMap(
+ EClassToEStructuralFeatureAsStringsMap stringMap) {
+ super.buildStringMap(stringMap);
+ stringMap.mapTo(BookOnTape.class.getName(), "reader");
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/TestFeaturesProvider.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/TestFeaturesProvider.java
new file mode 100644
index 000000000..58b9a1dda
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/providers/TestFeaturesProvider.java
@@ -0,0 +1,31 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.providers;
+
+import static org.eclipse.emf.parsley.examples.library.EXTLibraryPackage.Literals.*;
+
+import org.eclipse.emf.parsley.examples.library.Periodical;
+import org.eclipse.emf.parsley.ui.provider.EClassToEStructuralFeatureAsStringsMap;
+import org.eclipse.emf.parsley.ui.provider.FeaturesProvider;
+
+
+/**
+ * @author bettini
+ *
+ */
+public class TestFeaturesProvider extends FeaturesProvider {
+
+ @Override
+ protected void buildMap(EClassToEStructuralFeatureMap map) {
+ super.buildMap(map);
+ map.mapTo(LENDABLE, LENDABLE__COPIES);
+ }
+
+ @Override
+ protected void buildStringMap(
+ EClassToEStructuralFeatureAsStringsMap stringMap) {
+ super.buildStringMap(stringMap);
+ stringMap.mapTo(Periodical.class.getName(), "title");
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/resource/TestEmptyLibraryResourceInitializer.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/resource/TestEmptyLibraryResourceInitializer.java
new file mode 100644
index 000000000..cb6941506
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/resource/TestEmptyLibraryResourceInitializer.java
@@ -0,0 +1,49 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.resource;
+
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryFactory;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.examples.library.Writer;
+import org.eclipse.emf.parsley.resource.EmptyResourceInitializer;
+
+/**
+ * @author bettini
+ *
+ */
+public class TestEmptyLibraryResourceInitializer extends
+ EmptyResourceInitializer {
+
+ @Override
+ public void initialize(Resource resource) {
+ super.initialize(resource);
+
+ if (resource.getURI().lastSegment().endsWith("extlibrary")) {
+ Library library = EXTLibraryFactory.eINSTANCE.createLibrary();
+ resource.getContents().add(library);
+ createBook(library, "First Book", null);
+ createBook(library, "Second Book", createWriter("A Writer"));
+ createBook(library, "Third Book", null);
+ }
+ }
+
+ protected void createBook(Library library, String title, Writer writer) {
+ Book book = EXTLibraryFactory.eINSTANCE.createBook();
+ book.setTitle(title);
+ library.getBooks().add(book);
+ if (writer != null) {
+ library.getWriters().add(writer);
+ book.setAuthor(writer);
+ }
+ }
+
+ protected Writer createWriter(String name) {
+ Writer writer = EXTLibraryFactory.eINSTANCE.createWriter();
+ writer.setName(name);
+ return writer;
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/tables/LibraryTestTableView.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/tables/LibraryTestTableView.java
new file mode 100644
index 000000000..4a044afb0
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/tables/LibraryTestTableView.java
@@ -0,0 +1,102 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.tables;
+
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.parsley.builders.TableViewerBuilder;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.examples.library.VideoCassette;
+import org.eclipse.emf.parsley.resource.ResourceLoader;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.ui.part.ViewPart;
+import org.eclipse.xtext.EcoreUtil2;
+
+import com.google.inject.Inject;
+
+/**
+ * OnSelectionTreeView with hardcoded resource URI
+ *
+ * @author bettini
+ *
+ */
+public class LibraryTestTableView extends ViewPart {
+
+ public static final String resourceUri = "platform:/plugin/org.eclipse.emf.parsley.tests.swtbot/models/My.extlibrary";
+
+ @Inject
+ protected TableViewerBuilder tableViewerBuilder;
+
+ @Inject
+ protected ResourceLoader resourceLoader;
+
+ private Composite composite;
+
+ public LibraryTestTableView() {
+
+ }
+
+ @Override
+ public void createPartControl(Composite parent) {
+ ResourceSet resourceSet = new ResourceSetImpl();
+ Resource resource = resourceLoader.getResource(resourceSet,
+ URI.createURI(resourceUri));
+
+ Library library = (Library) resource.getContents().get(0);
+
+ ScrolledComposite scrolledComposite = new ScrolledComposite(parent,
+ SWT.V_SCROLL | SWT.BORDER);
+ scrolledComposite.setExpandHorizontal(true);
+
+ composite = new Composite(scrolledComposite, SWT.BORDER);
+ scrolledComposite.setContent(composite);
+ composite.setLayout(new GridLayout(1, false));
+ composite.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+ buildTable("Library", library, library.eClass());
+ buildTable("Books", library.getBooks(), EXTLibraryPackage.Literals.BOOK);
+ buildTable("Writers", library.getWriters(),
+ EXTLibraryPackage.Literals.WRITER);
+ buildTable("Videos",
+ EcoreUtil2.getAllContentsOfType(library, VideoCassette.class),
+ EXTLibraryPackage.Literals.VIDEO_CASSETTE);
+
+ composite.setSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+ composite.layout(true);
+ }
+
+ /**
+ * @param object
+ */
+ protected void buildTable(String label, Object object, EClass eClass) {
+ Label lblNewLabel = new Label(composite, SWT.NONE);
+ lblNewLabel.setText(label);
+
+ TableViewer tableViewer = new TableViewer(composite, SWT.BORDER
+ | SWT.FULL_SELECTION);
+
+ tableViewerBuilder.buildAndFill(tableViewer, object, eClass);
+
+ Table table = tableViewer.getTable();
+ table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+ }
+
+ @Override
+ public void setFocus() {
+ composite.setFocus();
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/utils/EmfComponentsTestsUtils.xtend b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/utils/EmfComponentsTestsUtils.xtend
new file mode 100644
index 000000000..394a85ae7
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/utils/EmfComponentsTestsUtils.xtend
@@ -0,0 +1,35 @@
+package org.eclipse.emf.parsley.tests.utils
+
+import org.eclipse.emf.ecore.EStructuralFeature
+import java.util.List
+import org.eclipse.emf.parsley.examples.library.Book
+import org.eclipse.emf.parsley.examples.library.Writer
+import org.eclipse.emf.parsley.examples.library.Borrower
+
+class EmfComponentsTestsUtils {
+
+ def toStringNameBased(Iterable<EStructuralFeature> features) {
+ features.map[ it.name ].join(", ")
+ }
+
+ def toStringRep(List<?> elements) {
+ elements.map[stringRep].join(", ")
+ }
+
+ def dispatch stringRep(Object o) {
+ o.toString
+ }
+
+ def dispatch stringRep(Book book) {
+ "Book: " + book.title
+ }
+
+ def dispatch stringRep(Writer writer) {
+ "Writer: " + writer.name
+ }
+
+ def dispatch stringRep(Borrower b) {
+ "Borrower: " + b.firstName +
+ (if (b.lastName != null) " " + b.lastName else "")
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/utils/WaitForBuildCondition.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/utils/WaitForBuildCondition.java
new file mode 100644
index 000000000..87f03260d
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/utils/WaitForBuildCondition.java
@@ -0,0 +1,52 @@
+package org.eclipse.emf.parsley.tests.utils;
+
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.swtbot.swt.finder.waits.DefaultCondition;
+
+public class WaitForBuildCondition extends DefaultCondition {
+ boolean done = false;
+ private IWorkspace workspace;
+ private MyResourceChangeListener myResourceChangeListener;
+
+ public WaitForBuildCondition() {
+ myResourceChangeListener = new MyResourceChangeListener(this);
+ this.workspace = ResourcesPlugin.getWorkspace();
+ }
+
+ public boolean test() {
+ return done;
+ }
+
+ void done() {
+ this.done = true;
+ }
+
+ public void removeListener() {
+ workspace.removeResourceChangeListener(myResourceChangeListener);
+ }
+
+ public void addListener() {
+ workspace.addResourceChangeListener(myResourceChangeListener);
+ }
+
+ @Override
+ public String getFailureMessage() {
+ return "failed waiting for building";
+ }
+}
+
+class MyResourceChangeListener implements IResourceChangeListener {
+ private WaitForBuildCondition condition;
+
+ MyResourceChangeListener(WaitForBuildCondition condition) {
+ this.condition = condition;
+ }
+
+ public void resourceChanged(IResourceChangeEvent event) {
+ if (event.getBuildKind() == IResourceChangeEvent.POST_BUILD)
+ condition.done();
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/LibraryEmfView.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/LibraryEmfView.java
new file mode 100644
index 000000000..7439fd230
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/LibraryEmfView.java
@@ -0,0 +1,32 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.views;
+
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.parsley.views.OnSelectionTreeView;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * OnSelectionTreeView with hardcoded resource URI
+ *
+ * @author bettini
+ *
+ */
+public class LibraryEmfView extends OnSelectionTreeView {
+
+ public static final String resourceUri = "platform:/plugin/org.eclipse.emf.parsley.tests.swtbot/models/My.extlibrary";
+
+ public LibraryEmfView() {
+
+ }
+
+ @Override
+ public void createPartControl(Composite parent) {
+ super.createPartControl(parent);
+ showEmfViewer();
+ init(URI.createURI(resourceUri));
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestOnSelectionLibraryBooksTableView.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestOnSelectionLibraryBooksTableView.java
new file mode 100644
index 000000000..8f93a9bb1
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestOnSelectionLibraryBooksTableView.java
@@ -0,0 +1,29 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests.views;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.views.AbstractOnSelectionTableView;
+
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+public class TestOnSelectionLibraryBooksTableView extends
+ AbstractOnSelectionTableView {
+
+ @Override
+ protected EStructuralFeature getEStructuralFeature() {
+ return EXTLibraryPackage.Literals.LIBRARY__BOOKS;
+ }
+
+ @Override
+ protected EClass getEClass() {
+ return EXTLibraryPackage.Literals.BOOK;
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableResourceTableFormView.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableResourceTableFormView.java
new file mode 100644
index 000000000..532e8e9f3
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableResourceTableFormView.java
@@ -0,0 +1,31 @@
+package org.eclipse.emf.parsley.tests.views;
+
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.tests.EmfComponentsAbstractTests;
+import org.eclipse.emf.parsley.views.AbstractSaveableTableFormView;
+
+public class TestSaveableResourceTableFormView extends AbstractSaveableTableFormView {
+
+ @Override
+ protected Object getContents(Resource resource) {
+ Library library=(Library) resource.getContents().get(0);
+ return library.getBooks();
+ }
+
+ @Override
+ protected EClass getEClass() {
+ return EXTLibraryPackage.Literals.BOOK;
+ }
+
+ @Override
+ protected URI createResourceURI() {
+ return URI.createPlatformResourceURI(
+ EmfComponentsAbstractTests.MY_EXTLIBRARY_RELATIVE_PATH, true);
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableResourceTableView.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableResourceTableView.java
new file mode 100644
index 000000000..5f1f2f396
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableResourceTableView.java
@@ -0,0 +1,31 @@
+package org.eclipse.emf.parsley.tests.views;
+
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.tests.EmfComponentsAbstractTests;
+import org.eclipse.emf.parsley.views.AbstractSaveableTableView;
+
+public class TestSaveableResourceTableView extends AbstractSaveableTableView {
+
+ @Override
+ protected Object getContents(Resource resource) {
+ Library library=(Library) resource.getContents().get(0);
+ return library.getBooks();
+ }
+
+ @Override
+ protected EClass getEClass() {
+ return EXTLibraryPackage.Literals.BOOK;
+ }
+
+ @Override
+ protected URI createResourceURI() {
+ return URI.createPlatformResourceURI(
+ EmfComponentsAbstractTests.MY_EXTLIBRARY_RELATIVE_PATH, true);
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableResourceTreeFormView.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableResourceTreeFormView.java
new file mode 100644
index 000000000..2686c3547
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableResourceTreeFormView.java
@@ -0,0 +1,17 @@
+package org.eclipse.emf.parsley.tests.views;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.parsley.tests.EmfComponentsAbstractTests;
+import org.eclipse.emf.parsley.views.AbstractSaveableTreeFormView;
+
+
+public class TestSaveableResourceTreeFormView extends
+ AbstractSaveableTreeFormView {
+
+ @Override
+ protected URI createResourceURI() {
+ return URI.createPlatformResourceURI(
+ EmfComponentsAbstractTests.MY_EXTLIBRARY_RELATIVE_PATH, true);
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableTreeView.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableTreeView.java
new file mode 100644
index 000000000..1228f7899
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableTreeView.java
@@ -0,0 +1,16 @@
+package org.eclipse.emf.parsley.tests.views;
+
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.parsley.tests.EmfComponentsAbstractTests;
+import org.eclipse.emf.parsley.views.AbstractSaveableTreeView;
+
+public class TestSaveableTreeView extends AbstractSaveableTreeView {
+
+ @Override
+ protected URI createResourceURI() {
+ return URI.createPlatformResourceURI(
+ EmfComponentsAbstractTests.MY_EXTLIBRARY_RELATIVE_PATH, true);
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableTreeView2.java b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableTreeView2.java
new file mode 100644
index 000000000..6276c83eb
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/src/org/eclipse/emf/parsley/tests/views/TestSaveableTreeView2.java
@@ -0,0 +1,16 @@
+package org.eclipse.emf.parsley.tests.views;
+
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.parsley.tests.EmfComponentsAbstractTests;
+import org.eclipse.emf.parsley.views.AbstractSaveableTreeView;
+
+public class TestSaveableTreeView2 extends AbstractSaveableTreeView {
+
+ @Override
+ protected URI createResourceURI() {
+ return URI.createPlatformResourceURI(
+ EmfComponentsAbstractTests.MY2_EXTLIBRARY_RELATIVE_PATH, true);
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/xtend-gen/org/eclipse/emf/parsley/tests/EmfComponentsDslWizardsTests.java b/tests/org.eclipse.emf.parsley.tests.swtbot/xtend-gen/org/eclipse/emf/parsley/tests/EmfComponentsDslWizardsTests.java
new file mode 100644
index 000000000..eae4eba29
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/xtend-gen/org/eclipse/emf/parsley/tests/EmfComponentsDslWizardsTests.java
@@ -0,0 +1,113 @@
+package org.eclipse.emf.parsley.tests;
+
+import com.google.common.base.Objects;
+import java.util.List;
+import org.eclipse.emf.parsley.dsl.generator.EmfParsleyDslOutputConfigurationProvider;
+import org.eclipse.emf.parsley.tests.EmfComponentsAbstractTests;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
+import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Exceptions;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(SWTBotJunit4ClassRunner.class)
+@SuppressWarnings("all")
+public class EmfComponentsDslWizardsTests extends EmfComponentsAbstractTests {
+ private final String TEST_PROJ_NAME = "my.emfparsley.proj";
+
+ @Test
+ public void canCreateDslProjectWithWizard() {
+ try {
+ this.createProjectInWorkspace(EmfComponentsAbstractTests.EMF_PARSLEY_CATEGORY,
+ EmfComponentsAbstractTests.NEW_EMF_COMPONENTS_DSL_PROJECT, this.TEST_PROJ_NAME);
+ this.assertNoErrorsInProjectAfterAutoBuild();
+ } catch (Throwable _e) {
+ throw Exceptions.sneakyThrow(_e);
+ }
+ }
+
+ @Test
+ public void checkPluginXmlGen() {
+ try {
+ this.createProjectInWorkspace(EmfComponentsAbstractTests.EMF_PARSLEY_CATEGORY,
+ EmfComponentsAbstractTests.NEW_EMF_COMPONENTS_DSL_PROJECT, this.TEST_PROJ_NAME);
+ this.assertNoErrorsInProjectAfterAutoBuild();
+ final SWTBotEditor editor = EmfComponentsAbstractTests.bot.editorByTitle("module.parsley");
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("module ");
+ _builder.append(this.TEST_PROJ_NAME, "");
+ _builder.append(" {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("// parts should trigger generation of ");
+ _builder.append(EmfParsleyDslOutputConfigurationProvider.PLUGIN_XML_EMFPARSLEY_GEN, " ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("parts {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("viewpart id {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("viewname \"View Name\"");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("viewclass org.eclipse.emf.parsley.views.AbstractSaveableTreeView");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("// viewcategory my.category");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ this.setEditorContentsSaveAndWaitForAutoBuild(editor, _builder);
+ final SWTBotTreeItem projTree = this.getProjectTreeItem(this.TEST_PROJ_NAME);
+ SWTBotTreeItem _expand = projTree.expand();
+ _expand.getNode(EmfParsleyDslOutputConfigurationProvider.PLUGIN_XML_EMFPARSLEY_GEN);
+ StringConcatenation _builder_1 = new StringConcatenation();
+ _builder_1.append("module ");
+ _builder_1.append(this.TEST_PROJ_NAME, "");
+ _builder_1.append(" {");
+ _builder_1.newLineIfNotEmpty();
+ _builder_1.append("\t");
+ _builder_1.append("// removed parts");
+ _builder_1.newLine();
+ _builder_1.append("\t");
+ _builder_1.newLine();
+ _builder_1.append("\t");
+ _builder_1.append("// ");
+ _builder_1.append(EmfParsleyDslOutputConfigurationProvider.PLUGIN_XML_EMFPARSLEY_GEN, " ");
+ _builder_1.append(" should be removed");
+ _builder_1.newLineIfNotEmpty();
+ _builder_1.append("}");
+ _builder_1.newLine();
+ this.setEditorContentsSaveAndWaitForAutoBuild(editor, _builder_1);
+ String _plus = (EmfParsleyDslOutputConfigurationProvider.PLUGIN_XML_EMFPARSLEY_GEN + " still present!");
+ List<String> _nodes = projTree.getNodes();
+ final Function1<String,Boolean> _function = new Function1<String,Boolean>() {
+ public Boolean apply(final String it) {
+ boolean _notEquals = (!Objects.equal(it, EmfParsleyDslOutputConfigurationProvider.PLUGIN_XML_EMFPARSLEY_GEN));
+ return Boolean.valueOf(_notEquals);
+ }
+ };
+ boolean _forall = IterableExtensions.<String>forall(_nodes, _function);
+ Assert.assertTrue(_plus, _forall);
+ } catch (Throwable _e) {
+ throw Exceptions.sneakyThrow(_e);
+ }
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests.swtbot/xtend-gen/org/eclipse/emf/parsley/tests/utils/EmfComponentsTestsUtils.java b/tests/org.eclipse.emf.parsley.tests.swtbot/xtend-gen/org/eclipse/emf/parsley/tests/utils/EmfComponentsTestsUtils.java
new file mode 100644
index 000000000..6729cf085
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests.swtbot/xtend-gen/org/eclipse/emf/parsley/tests/utils/EmfComponentsTestsUtils.java
@@ -0,0 +1,88 @@
+package org.eclipse.emf.parsley.tests.utils;
+
+import com.google.common.base.Objects;
+import java.util.Arrays;
+import java.util.List;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.Borrower;
+import org.eclipse.emf.parsley.examples.library.Writer;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.ListExtensions;
+
+@SuppressWarnings("all")
+public class EmfComponentsTestsUtils {
+ public String toStringNameBased(final Iterable<EStructuralFeature> features) {
+ final Function1<EStructuralFeature,String> _function = new Function1<EStructuralFeature,String>() {
+ public String apply(final EStructuralFeature it) {
+ String _name = it.getName();
+ return _name;
+ }
+ };
+ Iterable<String> _map = IterableExtensions.<EStructuralFeature, String>map(features, _function);
+ String _join = IterableExtensions.join(_map, ", ");
+ return _join;
+ }
+
+ public String toStringRep(final List<? extends Object> elements) {
+ final Function1<Object,String> _function = new Function1<Object,String>() {
+ public String apply(final Object it) {
+ String _stringRep = EmfComponentsTestsUtils.this.stringRep(it);
+ return _stringRep;
+ }
+ };
+ List<String> _map = ListExtensions.map(elements, _function);
+ String _join = IterableExtensions.join(_map, ", ");
+ return _join;
+ }
+
+ protected String _stringRep(final Object o) {
+ String _string = o.toString();
+ return _string;
+ }
+
+ protected String _stringRep(final Book book) {
+ String _title = book.getTitle();
+ String _plus = ("Book: " + _title);
+ return _plus;
+ }
+
+ protected String _stringRep(final Writer writer) {
+ String _name = writer.getName();
+ String _plus = ("Writer: " + _name);
+ return _plus;
+ }
+
+ protected String _stringRep(final Borrower b) {
+ String _firstName = b.getFirstName();
+ String _plus = ("Borrower: " + _firstName);
+ String _xifexpression = null;
+ String _lastName = b.getLastName();
+ boolean _notEquals = (!Objects.equal(_lastName, null));
+ if (_notEquals) {
+ String _lastName_1 = b.getLastName();
+ String _plus_1 = (" " + _lastName_1);
+ _xifexpression = _plus_1;
+ } else {
+ _xifexpression = "";
+ }
+ String _plus_2 = (_plus + _xifexpression);
+ return _plus_2;
+ }
+
+ public String stringRep(final Object book) {
+ if (book instanceof Book) {
+ return _stringRep((Book)book);
+ } else if (book instanceof Borrower) {
+ return _stringRep((Borrower)book);
+ } else if (book instanceof Writer) {
+ return _stringRep((Writer)book);
+ } else if (book != null) {
+ return _stringRep(book);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(book).toString());
+ }
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests/.classpath b/tests/org.eclipse.emf.parsley.tests/.classpath
new file mode 100644
index 000000000..5bb0a9645
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/org.eclipse.emf.parsley.tests/.project b/tests/org.eclipse.emf.parsley.tests/.project
new file mode 100644
index 000000000..4b4a4973f
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.parsley.tests</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/tests/org.eclipse.emf.parsley.tests/.settings/org.eclipse.core.resources.prefs b/tests/org.eclipse.emf.parsley.tests/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 000000000..99f26c020
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/tests/org.eclipse.emf.parsley.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.emf.parsley.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/tests/org.eclipse.emf.parsley.tests/.settings/org.eclipse.jdt.launching.prefs b/tests/org.eclipse.emf.parsley.tests/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..96809758d
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Aug 12 21:10:17 CEST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/tests/org.eclipse.emf.parsley.tests/EmfComponentsAllTests.launch b/tests/org.eclipse.emf.parsley.tests/EmfComponentsAllTests.launch
new file mode 100644
index 000000000..77b6d5d05
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests/EmfComponentsAllTests.launch
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/EmfComponentsAllTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.parsley.tests.EmfComponentsAllTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.parsley.tests"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.emf.parsley.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.parsley.tests/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..b8861b4b7
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,22 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Emf Components Tests
+Bundle-SymbolicName: org.eclipse.emf.parsley.tests
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.eclipse.emf.parsley.tests.Activator
+Bundle-Vendor: RCP Vision
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.parsley.examples.library;bundle-version="0.1.0",
+ org.eclipse.emf.parsley;bundle-version="0.1.0",
+ com.google.guava,
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.4.2,2.5.0)"
+Import-Package: org.junit;version="4.5.0",
+ org.junit.runner;version="4.5.0",
+ org.junit.runner.manipulation;version="4.5.0",
+ org.junit.runner.notification;version="4.5.0",
+ org.junit.runners;version="4.5.0",
+ org.junit.runners.model;version="4.5.0",
+ org.hamcrest.core
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+
diff --git a/tests/org.eclipse.emf.parsley.tests/build.properties b/tests/org.eclipse.emf.parsley.tests/build.properties
new file mode 100644
index 000000000..d8e2f0e92
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests/build.properties
@@ -0,0 +1,5 @@
+source.. = src/,\
+ xtend-gen/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/Activator.java b/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/Activator.java
new file mode 100644
index 000000000..c305a29e4
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/Activator.java
@@ -0,0 +1,30 @@
+package org.eclipse.emf.parsley.tests;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+ private static BundleContext context;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ Activator.context = null;
+ }
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/EmfComponentsAllTests.java b/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/EmfComponentsAllTests.java
new file mode 100644
index 000000000..00d7052cd
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/EmfComponentsAllTests.java
@@ -0,0 +1,22 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests;
+
+import org.eclipse.emf.parsley.tests.FeatureResolverTest;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+/**
+ * @author Lorenzo Bettini
+ *
+ */
+@RunWith(Suite.class)
+@Suite.SuiteClasses({
+ FeatureNamePathTest.class,
+ FeatureResolverTest.class
+})
+public class EmfComponentsAllTests {
+
+}
diff --git a/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/FeatureNamePathTest.java b/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/FeatureNamePathTest.java
new file mode 100644
index 000000000..910f0af77
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/FeatureNamePathTest.java
@@ -0,0 +1,18 @@
+/**
+ *
+ */
+package org.eclipse.emf.parsley.tests;
+
+import org.junit.Test;
+
+/**
+ * @author bettini
+ *
+ */
+public class FeatureNamePathTest {
+
+ @Test
+ public void testFeaturePath() {
+
+ }
+}
diff --git a/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/FeatureResolverTest.xtend b/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/FeatureResolverTest.xtend
new file mode 100644
index 000000000..1a1e3f8c8
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests/src/org/eclipse/emf/parsley/tests/FeatureResolverTest.xtend
@@ -0,0 +1,119 @@
+package org.eclipse.emf.parsley.tests
+
+import org.junit.Test
+
+import static org.eclipse.emf.parsley.examples.library.EXTLibraryFactory.*
+import org.eclipse.emf.parsley.ecore.FeatureNamePath
+import org.eclipse.emf.parsley.ecore.FeatureResolver
+import java.util.List
+import org.eclipse.emf.ecore.EStructuralFeature
+import static extension org.junit.Assert.*
+import org.eclipse.emf.ecore.EClass
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage
+
+class FeatureResolverTest {
+
+ FeatureResolver resolver = new FeatureResolver;
+
+ @Test def void testResolver1() {
+ val paths = newArrayList(
+ new FeatureNamePath("title"),
+ new FeatureNamePath("author",
+ newArrayList(
+ new FeatureNamePath("firstName"),
+ new FeatureNamePath("lastName")
+ )
+ )
+ )
+ EXTLibraryPackage::eINSTANCE.book.
+ assertFeatureList(paths, "title, firstName, lastName")
+ }
+
+ @Test def void testResolver2() {
+ val paths = newArrayList(
+ new FeatureNamePath("title"),
+ new FeatureNamePath("minutesLength"),
+ new FeatureNamePath("reader",
+ newArrayList(
+ new FeatureNamePath("firstName"),
+ new FeatureNamePath("lastName")
+ )
+ ),
+ new FeatureNamePath("author",
+ newArrayList(
+ new FeatureNamePath("name"),
+ new FeatureNamePath("books")
+ )
+ )
+ )
+ EXTLibraryPackage::eINSTANCE.bookOnTape.
+ assertFeatureList(paths, "title, minutesLength, firstName, lastName, name, books")
+ }
+
+ @Test def void testResolver3() {
+ // Employee:manager is an Employee
+ val paths = newArrayList(
+ new FeatureNamePath("firstName"),
+ new FeatureNamePath("lastName"),
+ new FeatureNamePath("manager",
+ newArrayList(
+ new FeatureNamePath("firstName"),
+ new FeatureNamePath("lastName"),
+ new FeatureNamePath("manager",
+ newArrayList(
+ new FeatureNamePath("firstName"),
+ new FeatureNamePath("lastName")
+ )
+ )
+ )
+ )
+ )
+ EXTLibraryPackage::eINSTANCE.employee.
+ assertFeatureList(paths, "firstName, lastName, firstName, lastName, firstName, lastName")
+ }
+
+ def createModel() {
+ eINSTANCE.createLibrary => [
+ val writer = eINSTANCE.createWriter => [
+ firstName = "Test"
+ lastName = "Writer"
+ ]
+ val writer2 = eINSTANCE.createWriter => [
+ firstName = "Test2"
+ lastName = "Writer2"
+ ]
+ writers += writer
+ writers += writer2
+ books += eINSTANCE.createBook => [
+ title = "Test Book"
+ author = writer
+ ]
+
+ stock += eINSTANCE.createBookOnTape => [
+ reader = writer
+ author = writer2
+ ]
+
+ val employee1 = eINSTANCE.createEmployee => [
+ firstName = "E"
+ lastName = "1"
+ ]
+ val employee2 = eINSTANCE.createEmployee => [
+ firstName = "E"
+ lastName = "2"
+ manager = employee1
+ ]
+ employees += employee1
+ employees += employee2
+ ]
+ }
+
+ def assertFeatureList(EClass eClass, List<FeatureNamePath> paths, CharSequence expected) {
+ resolver.getFeatures(eClass, paths).assertFeatureList(expected)
+ }
+
+
+ def assertFeatureList(List<EStructuralFeature> features, CharSequence expected) {
+ expected.toString.assertEquals(features.map[name].join(", "))
+ }
+} \ No newline at end of file
diff --git a/tests/org.eclipse.emf.parsley.tests/xtend-gen/org/eclipse/emf/parsley/tests/FeatureResolverTest.java b/tests/org.eclipse.emf.parsley.tests/xtend-gen/org/eclipse/emf/parsley/tests/FeatureResolverTest.java
new file mode 100644
index 000000000..d8520b120
--- /dev/null
+++ b/tests/org.eclipse.emf.parsley.tests/xtend-gen/org/eclipse/emf/parsley/tests/FeatureResolverTest.java
@@ -0,0 +1,171 @@
+package org.eclipse.emf.parsley.tests;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.parsley.ecore.FeatureNamePath;
+import org.eclipse.emf.parsley.ecore.FeatureResolver;
+import org.eclipse.emf.parsley.examples.library.Book;
+import org.eclipse.emf.parsley.examples.library.BookOnTape;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryFactory;
+import org.eclipse.emf.parsley.examples.library.EXTLibraryPackage;
+import org.eclipse.emf.parsley.examples.library.Employee;
+import org.eclipse.emf.parsley.examples.library.Item;
+import org.eclipse.emf.parsley.examples.library.Library;
+import org.eclipse.emf.parsley.examples.library.Writer;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+import org.eclipse.xtext.xbase.lib.Functions.Function0;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.ListExtensions;
+import org.eclipse.xtext.xbase.lib.ObjectExtensions;
+import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
+import org.junit.Assert;
+import org.junit.Test;
+
+@SuppressWarnings("all")
+public class FeatureResolverTest {
+ private FeatureResolver resolver = new Function0<FeatureResolver>() {
+ public FeatureResolver apply() {
+ FeatureResolver _featureResolver = new FeatureResolver();
+ return _featureResolver;
+ }
+ }.apply();
+
+ @Test
+ public void testResolver1() {
+ FeatureNamePath _featureNamePath = new FeatureNamePath("title");
+ FeatureNamePath _featureNamePath_1 = new FeatureNamePath("firstName");
+ FeatureNamePath _featureNamePath_2 = new FeatureNamePath("lastName");
+ ArrayList<FeatureNamePath> _newArrayList = CollectionLiterals.<FeatureNamePath>newArrayList(_featureNamePath_1, _featureNamePath_2);
+ FeatureNamePath _featureNamePath_3 = new FeatureNamePath("author", _newArrayList);
+ final ArrayList<FeatureNamePath> paths = CollectionLiterals.<FeatureNamePath>newArrayList(_featureNamePath, _featureNamePath_3);
+ EClass _book = EXTLibraryPackage.eINSTANCE.getBook();
+ this.assertFeatureList(_book, paths, "title, firstName, lastName");
+ }
+
+ @Test
+ public void testResolver2() {
+ FeatureNamePath _featureNamePath = new FeatureNamePath("title");
+ FeatureNamePath _featureNamePath_1 = new FeatureNamePath("minutesLength");
+ FeatureNamePath _featureNamePath_2 = new FeatureNamePath("firstName");
+ FeatureNamePath _featureNamePath_3 = new FeatureNamePath("lastName");
+ ArrayList<FeatureNamePath> _newArrayList = CollectionLiterals.<FeatureNamePath>newArrayList(_featureNamePath_2, _featureNamePath_3);
+ FeatureNamePath _featureNamePath_4 = new FeatureNamePath("reader", _newArrayList);
+ FeatureNamePath _featureNamePath_5 = new FeatureNamePath("name");
+ FeatureNamePath _featureNamePath_6 = new FeatureNamePath("books");
+ ArrayList<FeatureNamePath> _newArrayList_1 = CollectionLiterals.<FeatureNamePath>newArrayList(_featureNamePath_5, _featureNamePath_6);
+ FeatureNamePath _featureNamePath_7 = new FeatureNamePath("author", _newArrayList_1);
+ final ArrayList<FeatureNamePath> paths = CollectionLiterals.<FeatureNamePath>newArrayList(_featureNamePath, _featureNamePath_1, _featureNamePath_4, _featureNamePath_7);
+ EClass _bookOnTape = EXTLibraryPackage.eINSTANCE.getBookOnTape();
+ this.assertFeatureList(_bookOnTape, paths, "title, minutesLength, firstName, lastName, name, books");
+ }
+
+ @Test
+ public void testResolver3() {
+ FeatureNamePath _featureNamePath = new FeatureNamePath("firstName");
+ FeatureNamePath _featureNamePath_1 = new FeatureNamePath("lastName");
+ FeatureNamePath _featureNamePath_2 = new FeatureNamePath("firstName");
+ FeatureNamePath _featureNamePath_3 = new FeatureNamePath("lastName");
+ FeatureNamePath _featureNamePath_4 = new FeatureNamePath("firstName");
+ FeatureNamePath _featureNamePath_5 = new FeatureNamePath("lastName");
+ ArrayList<FeatureNamePath> _newArrayList = CollectionLiterals.<FeatureNamePath>newArrayList(_featureNamePath_4, _featureNamePath_5);
+ FeatureNamePath _featureNamePath_6 = new FeatureNamePath("manager", _newArrayList);
+ ArrayList<FeatureNamePath> _newArrayList_1 = CollectionLiterals.<FeatureNamePath>newArrayList(_featureNamePath_2, _featureNamePath_3, _featureNamePath_6);
+ FeatureNamePath _featureNamePath_7 = new FeatureNamePath("manager", _newArrayList_1);
+ final ArrayList<FeatureNamePath> paths = CollectionLiterals.<FeatureNamePath>newArrayList(_featureNamePath, _featureNamePath_1, _featureNamePath_7);
+ EClass _employee = EXTLibraryPackage.eINSTANCE.getEmployee();
+ this.assertFeatureList(_employee, paths, "firstName, lastName, firstName, lastName, firstName, lastName");
+ }
+
+ public Library createModel() {
+ Library _createLibrary = EXTLibraryFactory.eINSTANCE.createLibrary();
+ final Procedure1<Library> _function = new Procedure1<Library>() {
+ public void apply(final Library it) {
+ Writer _createWriter = EXTLibraryFactory.eINSTANCE.createWriter();
+ final Procedure1<Writer> _function = new Procedure1<Writer>() {
+ public void apply(final Writer it) {
+ it.setFirstName("Test");
+ it.setLastName("Writer");
+ }
+ };
+ final Writer writer = ObjectExtensions.<Writer>operator_doubleArrow(_createWriter, _function);
+ Writer _createWriter_1 = EXTLibraryFactory.eINSTANCE.createWriter();
+ final Procedure1<Writer> _function_1 = new Procedure1<Writer>() {
+ public void apply(final Writer it) {
+ it.setFirstName("Test2");
+ it.setLastName("Writer2");
+ }
+ };
+ final Writer writer2 = ObjectExtensions.<Writer>operator_doubleArrow(_createWriter_1, _function_1);
+ EList<Writer> _writers = it.getWriters();
+ _writers.add(writer);
+ EList<Writer> _writers_1 = it.getWriters();
+ _writers_1.add(writer2);
+ EList<Book> _books = it.getBooks();
+ Book _createBook = EXTLibraryFactory.eINSTANCE.createBook();
+ final Procedure1<Book> _function_2 = new Procedure1<Book>() {
+ public void apply(final Book it) {
+ it.setTitle("Test Book");
+ it.setAuthor(writer);
+ }
+ };
+ Book _doubleArrow = ObjectExtensions.<Book>operator_doubleArrow(_createBook, _function_2);
+ _books.add(_doubleArrow);
+ EList<Item> _stock = it.getStock();
+ BookOnTape _createBookOnTape = EXTLibraryFactory.eINSTANCE.createBookOnTape();
+ final Procedure1<BookOnTape> _function_3 = new Procedure1<BookOnTape>() {
+ public void apply(final BookOnTape it) {
+ it.setReader(writer);
+ it.setAuthor(writer2);
+ }
+ };
+ BookOnTape _doubleArrow_1 = ObjectExtensions.<BookOnTape>operator_doubleArrow(_createBookOnTape, _function_3);
+ _stock.add(_doubleArrow_1);
+ Employee _createEmployee = EXTLibraryFactory.eINSTANCE.createEmployee();
+ final Procedure1<Employee> _function_4 = new Procedure1<Employee>() {
+ public void apply(final Employee it) {
+ it.setFirstName("E");
+ it.setLastName("1");
+ }
+ };
+ final Employee employee1 = ObjectExtensions.<Employee>operator_doubleArrow(_createEmployee, _function_4);
+ Employee _createEmployee_1 = EXTLibraryFactory.eINSTANCE.createEmployee();
+ final Procedure1<Employee> _function_5 = new Procedure1<Employee>() {
+ public void apply(final Employee it) {
+ it.setFirstName("E");
+ it.setLastName("2");
+ it.setManager(employee1);
+ }
+ };
+ final Employee employee2 = ObjectExtensions.<Employee>operator_doubleArrow(_createEmployee_1, _function_5);
+ EList<Employee> _employees = it.getEmployees();
+ _employees.add(employee1);
+ EList<Employee> _employees_1 = it.getEmployees();
+ _employees_1.add(employee2);
+ }
+ };
+ Library _doubleArrow = ObjectExtensions.<Library>operator_doubleArrow(_createLibrary, _function);
+ return _doubleArrow;
+ }
+
+ public void assertFeatureList(final EClass eClass, final List<FeatureNamePath> paths, final CharSequence expected) {
+ List<EStructuralFeature> _features = this.resolver.getFeatures(eClass, paths);
+ this.assertFeatureList(_features, expected);
+ }
+
+ public void assertFeatureList(final List<EStructuralFeature> features, final CharSequence expected) {
+ String _string = expected.toString();
+ final Function1<EStructuralFeature,String> _function = new Function1<EStructuralFeature,String>() {
+ public String apply(final EStructuralFeature it) {
+ String _name = it.getName();
+ return _name;
+ }
+ };
+ List<String> _map = ListExtensions.<EStructuralFeature, String>map(features, _function);
+ String _join = IterableExtensions.join(_map, ", ");
+ Assert.assertEquals(_string, _join);
+ }
+}

Back to the top